»
3 năm ago
3 năm ago
C Token là gì? Cú pháp trong lập trình C/C++
(Xem thêm: Tự học lập trình C, C++ qua code ví dụ)
Tóm Tắt
C Token là gì?
C token là đơn vị nhỏ nhất có thể đứng một mình trong một câu lệnh, một khai báo.
Mỗi token có thể là một từ khóa, một định danh, biến, hằng số, ký tự có nghĩa trong lập trình C
Ví dụ 1: mình có câu lệnh sau:
printf("Hello World \n");
Đoạn code trên gồm 5 token:
printf // token 1 ( // token 2 "Hello World \n" // token 3 ) // token 4 ; // token 5
Ví dụ 2:
int age = 10;
Đoạn code trên có thể viết thành:
int age = 10 ;
Dấu chấm phẩy (semicolons)
Trong lập trình C, dấu chấm phẩy ;
được dùng để kết thúc một câu lệnh (trong trường hợp này, dấu ;
cũng được coi là một token)
Ví dụ:
printf("Hello World \n"); int age = 10;
Chú thích, chú giải (comment)
Phần chú thích trong lập trình C là phần bị bỏ qua khi thực hiện compile. Chỉ có ý nghĩa về mặt text hiển thị giúp lập trình viên hiểu hơn về đoạn code.
Phần chú thích nằm sau dấu gạch chéo //
(trường hợp comment trong 1 dòng) hoặc nằm trong /* */
(trường hợp comment nằm trên nhiều dòng)
Ví dụ:
/* * in ra màn hình dòng chữ * Hello World! */ printf("Hello World \n"); // khai báo tuổi bằng 10 int age = 10;
Định danh (identifier)
Định danh trong C là một cái tên dùng để xác định một biến, một hàm (tên biến, tên hàm).
Định danh có thể bao gồm các ký tự a-z
, A-Z
, 0-9
hoặc dấu gạch dưới _
. Tuy nhiên định danh không được bắt đầu bằng 0-9.
Đặc biệt, định danh không được trùng với các từ khóa của ngôn ngữ C.
Ví dụ một số định danh hợp lệ: name
, _age
, address1
, firstName
Từ khóa (keyword) trong C
Từ khóa là các từ được định nghĩa sẵn trong ngôn ngữ C, mang một ý nghĩa nào đó. Không thể dùng từ khóa để làm định danh, tên biến hay hằng số.
Các từ khóa trong C gồm:
auto
else
long
switch
break
enum
register
typedef
case
extern
return
union
char
float
short
unsigned
const
for
signed
void
continue
goto
sizeof
volatile
default
if
static
while
do
int
struct
_Packed
double
Ngoài những từ khóa trong C thì C++ còn bổ sung thêm một số từ khóa khác:
asm
else
new
this
auto
enum
operator
throw
bool
explicit
private
true
break
export
protected
try
case
extern
public
typedef
catch
false
register
typeid
char
float
reinterpret_cast
typename
class
for
return
union
const
friend
short
unsigned
const_cast
goto
signed
using
continue
if
sizeof
virtual
default
inline
static
void
delete
int
static_cast
volatile
do
long
struct
wchar_t
double
mutable
switch
while
dynamic_cast
namespace
template
And
And
bitor
not_eq
xor
and_eq
compl
or
xor_eq
bitand
not
or_eq