Ifndef là gì

  -  
Hằng số ( Constant )# define được dùng để định nghĩa hằng số trong preprocessor. Cách sử dụng như sau :

#define THREE 3Sau câu lệnh này thì bất cứ chỗ nào có THREE trong code của bạn thì compiler sẽ thay nó thành 3 hết. Tuy nhiên, vì trình biên dịch ko hiểu cái 3 trên là số hay là chữ, là int hay float, nó chỉ đơn giản làm công việc copypaste những gì đã được định nghĩa mà thôi. Thử xét tiếp ví dụ sau.

Bạn đang xem: Ifndef là gì

Bạn đang xem: Ifndef là gì

#define FOUR 3 + 1Giả sử sau đó bạn dùng FOUR này như sau.


x = FOUR * 5;thì kết quả của x lúc này sẽ không phải là 4 *5 mà sẽ là 3 + 1 * 5 và kết quả trả về sẽ là 8 thay vì là 20, khác hẳn dự định của chúng ta. Vì thế lúc dùng define để định nghĩa hằng số, thì tốt hơn hết là chúng ta nên thêm dấu ngoặc tròn () vào phần định nghĩa.

#define FOUR (3 +1)thì lúc này câu lệnh sẽ an toàn hơn.

Các directive điều kiện (#ifdef, #ifndef, #if, #endif, #else and #elif)


ifdef và ifndef là viết tắt của if definedvà if not defined, nghĩa là chúng sẽ kiểm tra xem có thực thi 1 đoạn code hay là bỏ lỡ nó bằng cách trải qua việc kiểm tra thực trạng của 1 cái macro nào đó đã được định nghĩa hay chưa. Ví dụ :# ifdef SIZEint table ; # endif Ở ví dụ trên. Đoạn code int table chỉ được dịch nếu như macro SIZE đã được định nghĩa trước đó, nếu không thì compiler sẽ bỏ lỡ và nhảy thằng đến endif .

Xem thêm: Chơi Game Danh Cau Lông 2 Nguoi Choi Game Cầu Lông 2 Người Online


Cách dùng của ifndef thì ngược lại hoàn toàn.


#if, #else và #elif

#if, #else and #elif (else if). Được dùng tương tự với các câu lệnh if else bình thường. Nhưng hãy nhớ rằng, vì đây là những câu lệnh ở Preprocessor nên các điều kiện theo sau if hoặc elif chỉ đánh giá được các constant expression mà thôi. (Xem cụ thể về constant expression ở đây). 1 ví dụ về các directive trên:

#if SIZE > 200#undef SIZE#define SIZE 200#elif SIZE Thử đoán xem chuyện gì sẽ xảy ra với đoạn code trên. Khi mà bạn cố đưa 1 macro chưa được định nghĩa là SIZE vào phần điều kiện của câu lệnh if đầu tiên. Sự thực là nếu 1 macro chưa được định nghĩa, compiler sẽ thay thế nó bằng 0. Vậy nên kết quả cuối cùng của các câu lệnh trên. Câu lệnh #define SIZE 100 sẽ được thực hiện và nhảy về câu lệnh endif ngay sau đó.


Phần 1 của series bài về Preprocessor kết thúc tại đây do tác giả cảm thấy đã hết khoái cảm. Hẹn các bạn ở bài tiếp theo về Preprocessor – bài tiếp theo mình sẽ trình bày về phần quan trọng nhất của Preprocessor đó là Macro.

Xem thêm: Bật Mí #3 Cách Chọn Gà Chọi Con Trở Thành Chiến Kê Lợi Hại, Cách Chọn Gà Chọi Con Chiến Đấu Hay Khỏi Phải Bàn


*

Nguyễn Văn Minh Sáng

Xin chào, tôi là Nguyễn Văn Minh Sáng, người sáng lập và biên tập trang tin tức dnppower.com.vn. Hi vọng với lượng kiến thức tôi mang đến sẽ giúp ích nhiều cho bạn. Cảm ơn bạn đã ghé thăm trang web chúng tôi.