Trình em vẫn còn gà nên có chỗ vẫn chưa thông, người ta bảo là không nên dùng #define vì nó khó kiểm soát và debug, với kinh nghiệm debug cái chương trình bé tí thì em vẫn chưa thể hiểu là nó khó chỗ nào. Mong được chỉ bảo thêm ạ.
Nên sử dụng #define hay const để định nghĩa hằng trong C?
Bạn thử đoán xem output của 2 dòng sau là gì:
#define D_TEN 5+5
const int C_TEN = 5+5;
printf("%d\n", D_TEN * D_TEN);
printf("%d\n", C_TEN * C_TEN);
6 Likes
Dòng 1 là 35
Dòng 2 là 100
Chuẩn chưa ạ
À em thông hơn được tí rồi
Một ví dụ nghịch ngợm khác:
#define true false
int main() {
if (true) {
printf("You're smart\n");
} else {
printf("You're dumb\n");
}
}
Đổi lại
const bool true = false; // có ổn không ta?
3 Likes
Hahaaaa. Cái này là thua luôn
cái const nó có lẽ nó không cho làm vậy vì trùng từ khoá. Em thông hơn lúc nãy rồi. Cám ơn anh nhiều nha
1 Like
Cú pháp khai báo const
là
const <kiểu> <tên_biến> = <giá_trị>;
tên biến phải tuân thủ đúng quy tắc (trong đó không được trùng các từ khoá cho trước), không thể dùng “có lẽ” ở đây được.
5 Likes
Yepp