Đơn vị riêng lẻ nhỏ nhất trong chương trình được gọi là mã thông báo. Có năm loại mã thông báo được phép trong Python. họ đang
từ khóa. cho, del, elif, khác, v.v.
định danh. Tên biến như số dư, tên lớp như Xe, v.v.
chữ. Chuỗi, Số, Boolean như 'abcd', Không có, v.v.
nhà điều hành. Unary, Binary, Bitwise như '+', '&', '^', v.v.
dấu câu. Các ký hiệu như '#', '[', '[', '=', v.v.
Dấu ngoặc đơn
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */6 được sử dụng để nhóm các biểu thức, tách biệt các biểu thức điều kiện và chỉ ra các lệnh gọi hàm và tham số của hàm
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */
Dấu ngoặc đơn được khuyến nghị trong các định nghĩa macro để tránh các vấn đề ưu tiên tiềm ẩn trong quá trình mở rộng
#define CUBE[x] [[x] * [x] * [x]]
Để biết thêm thông tin, hãy tham khảo Ưu tiên toán tử và tính liên kết và biểu thức
Niềng răng
Dấu ngoặc nhọn
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */7 biểu thị phần đầu và phần cuối của một câu lệnh ghép
if [d == z] { ++x; func[]; }
Dấu ngoặc nhọn đóng vai trò là dấu kết thúc cho câu lệnh ghép, vì vậy không cần có dấu chấm phẩy sau
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */8, ngoại trừ trong khai báo cấu trúc. Đôi khi, dấu chấm phẩy có thể là bất hợp pháp, như trong
if [statement] { .. }; /* illegal semicolon! */ else { .. };
Để biết thêm thông tin, hãy tham khảo Câu lệnh ghép
dấu phẩy
Dấu phẩy [_______0_______9] phân tách các phần tử của danh sách đối số hàm
________số 8_______Dấu phẩy cũng được sử dụng như một toán tử trong biểu thức dấu phẩy. Kết hợp hai cách sử dụng dấu phẩy là hợp pháp, nhưng bạn phải sử dụng dấu ngoặc đơn để phân biệt chúng. Lưu ý rằng [exp1, exp2] đánh giá cả hai nhưng bằng giá trị thứ hai
func[i, j]; /* call func with two args */ func[[exp1, exp2], [exp3, exp4, exp5]]; /* also calls func with two args! */
dấu chấm phẩy
Dấu chấm phẩy [
#define CUBE[x] [[x] * [x] * [x]]0] là dấu kết thúc câu lệnh. Bất kỳ biểu thức C hợp pháp nào [bao gồm cả biểu thức trống] theo sau bởi dấu chấm phẩy đều được hiểu là một câu lệnh, được gọi là câu lệnh biểu thức. Biểu thức được đánh giá và giá trị của nó bị loại bỏ. Nếu câu lệnh biểu thức không có tác dụng phụ, mikroC PRO cho PIC có thể bỏ qua nó
a + b; /* Evaluate a + b, but discard value */ ++a; /* Side effect on a, but discard value of ++a */ ; /* Empty expression, or a null statement */
Dấu chấm phẩy đôi khi được sử dụng để tạo một câu lệnh trống
for [i = 0; i < n; i++];
Để biết thêm thông tin, hãy xem Tuyên bố
Đại tràng
Sử dụng dấu hai chấm [
#define CUBE[x] [[x] * [x] * [x]]1] để biểu thị tuyên bố được dán nhãn
start: x = 0; ... goto start;
Nhãn được thảo luận trong Báo cáo được dán nhãn
Dấu hoa thị [Khai báo con trỏ]
Dấu hoa thị [
#define CUBE[x] [[x] * [x] * [x]]2] trong khai báo biến biểu thị việc tạo một con trỏ tới một kiểu
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */0
Con trỏ có nhiều cấp độ gián tiếp có thể được khai báo bằng cách chỉ ra một số dấu hoa thị thích hợp
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */1
Bạn cũng có thể sử dụng dấu hoa thị làm toán tử để hủy đăng ký con trỏ hoặc làm toán tử nhân
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */2
Để biết thêm thông tin, xem Con trỏ
Dấu bằng
Dấu bằng [
#define CUBE[x] [[x] * [x] * [x]]3] ngăn cách khai báo biến với danh sách khởi tạo
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */3
Dấu bằng cũng được dùng làm toán tử gán trong biểu thức
d = c * [a + b]; /* override normal precedence */ if [d == z] ++x; /* essential with conditional statement */ func[]; /* function call, no args */ void func2[int n]; /* function declaration with parameters */4
Để biết thêm thông tin, xem Toán tử gán
Pound Sign [Chỉ thị tiền xử lý]
Dấu thăng [
#define CUBE[x] [[x] * [x] * [x]]4] biểu thị chỉ thị tiền xử lý khi nó xuất hiện dưới dạng ký tự không phải khoảng trắng đầu tiên trên một dòng. Nó biểu thị một hành động của trình biên dịch, không nhất thiết phải liên quan đến việc tạo mã. Xem Chỉ thị tiền xử lý để biết thêm thông tin
#define CUBE[x] [[x] * [x] * [x]]4 và
#define CUBE[x] [[x] * [x] * [x]]6 cũng được sử dụng làm toán tử để thực hiện thay thế và hợp nhất mã thông báo trong giai đoạn quét tiền xử lý. Xem Toán tử tiền xử lý