Tên trong C là sao?
Tên được dùng để xác định các đại
lượng khác nhau trong chương trình
như tên hằng, tên biến, tên hàm, …
Quy tắc: Tên phải là một dãy các ký tự
bắt đầu bằng chữ cái hoặc ký tự gạch
dưới, theo sau là chữ cái, chữ số hoặc
ký tự gạch dưới.
Ví dụ:
Tên đúng:
_abc, delta_1
Tên sai:
1xyz (vì bắt đầu bằng chữ số)
A#B (vì có dấu #)
al pha (vì có khoảng trắng)
Em có đọc một tài liệu về C và đoạn trên là đoạn mà em không hiểu? Tên trong hàm, biến, hằng không được đặt bắt đầu bằng chữ số? Nhưng khi vào Visual Studio thì em vẫn viết được
printf(“1caunoi”); . Chẳng phải 1caunoi là 1 biến hay sao mà khi em đặt 1caunoi thì nó vẫn debug được vào không báo lỗi? Có bác nào đưa em ví dụ sai và đúng trong 1 hàm, biến và hằng được kh ạ? Em xin cảm ơn các bác!
“1caunoi” là string literal nên không phải.
Bác có thể đưa em một vài ví dụ đúng và sai được kh ạ? Em xin cảm ơn trước
Thực ra có thêm quy tắc nữa là những tên bắt đầu bằng _ (VS) hay __ đều có thể bị reserved cho compiler.
Còn “1caunoi” không phải là tên, vả lại nếu giải thích thì nó nằm giữa hai dấu ngoặc kép nên chẳng sao cả.
Sorry bác Em vẫn chưa hiểu lắm :(((
Quy tắc đặt tên biến, tên hàm, tên hằng v.v
Đây là những cái quy tắc khi đặt tên.
Nếu đặt tên sai sẽ lỗi ngay từ lúc biên dịch chương trình
printf(“1caunoi”); hàm này xuất ra chuỗi “1cauhoi” ra màn hình. “1cauhoi” là text bình thường, không phải tên biến, tên hàm, tên hằng v.v
chẳng hạn giờ em đặt int 1caunoi; thì kh được đúng kh ạ? vì nó là 1 biến?
Cách tốt nhất vẫn là thực hành: Mở IDE lên gõ độ 10 cái định danh biên dịch, nếu sai đọc lỗi tự sửa sẽ nhớ
Không được. Biến phải bắt đầu bằng kí tự chữ, hoặc kí tự _. Có thể 1 số ide không cho phép dùng _ ở đầu biến.
Xin đính chính 1 ý nhỏ việc cho phép dấu “_” hay không không phải do ide quyết định mà là compiler quyết định.
IDE chỉ giúp cho biên tập mã nguồn thôi
Đôi khi IDE quyết định cho phép đặt tên biến.
Ví dụ trong VS, bác có thể thoải mái đặt tên biến, tên hàm, tên namespace… bằng tiếng Việt, nhưng nhiều IDE khác thì không.
Không hẳn như vây. vì VS cái IDE có nó tương thích với compiler luôn nên IDE bắt lỗi sẳn và hiện luôn cho dev dễ sửa. Vì nó biết là nếu cho compiler chạy cũng lỗi y như vậy.
Về cơ bàn có thể compile mà chỉ cần dùng command line như sau:
VD: tạo 1 file hello.cpp bằng notepad và lưu ở đường dẫn C:\Users\ …\Desktop như sau:
#include <stdio.h>
#include <conio.h>
int main()
{
printf("%s\n", “Hello word”);
getch();
return 1;
}
Mở tool Developer Command Prompt for VS 2017
dùng lệnh cd di chuyển đến thư muc C:\Users\ …\Desktop
dùng lệnh cl C:\Users\ …\Desktop\hello.cpp
*Như vây la đã có thể compile 1 app c++ không cần mở VS làm gi cả
Vậy cho mình hỏi
trong một số IDE online mình thử thì không cho đặt tên biến kiểu
int Biến1
mà chỉ có thể làint Bien1
, còn VS thì cho phép, như vậy cái đó là do compiler hay do text editor vậy?Mà đặt kiểu đó chắc cũng ko được xài vì commit lên xong người ta pull về biên dịch ko được thì auto gạch
Để mình giải thích tại sao VS lai có thể cho phép đặt tên biến bằng tiếng việt có dấu:
vấn đề nằm ở Encoding của file (*.cpp)
À, việc save file dưới encode không chứa Unicode thì ký tự đó sẽ tự bị chuyển thành ‘?’ hoặc mấy cái như trái tim, mặt cười… trong bảng ASCII cho nên khi biên dịch sẽ gây lỗi. Còn Intellisense thì không báo lỗi với ký tự Unicode. Mình biết nó không chuẩn, mình chỉ thắc mắc là việc không chấp nhận ký tự Unicode trong tên biến là do compiler hay do text editor thôi.
Khi code thì mình cũng không đặt tên như vậy bao giờ, chỉ là mình có lần đặt thử và bất ngờ với việc nó chạy được. Tiện có topic này hỏi luôn í mà.