Hủy thay thế macro (#undef)
Các thay thế được đăng ký bằng #define
có thể được hủy bỏ nếu chúng không còn cần thiết sau một đoạn mã cụ thể. Để thực hiện điều này, chỉ thị #undef
được sử dụng.
#undef macro_identifier
Cụ thể, điều này hữu ích nếu bạn cần định nghĩa cùng một macro theo các cách khác nhau trong các phần khác nhau của mã. Nếu định danh được chỉ định trong #define
đã được đăng ký ở đâu đó trong các dòng mã trước đó (bằng một chỉ thị #define
khác), thì định nghĩa cũ sẽ được thay thế bằng định nghĩa mới, và tiền xử lý sẽ tạo ra cảnh báo "macro redefinition" (định nghĩa lại macro). Việc sử dụng #undef
giúp tránh cảnh báo này đồng thời thể hiện rõ ý định của lập trình viên không sử dụng macro cụ thể đó trong phần mã tiếp theo.
#undef
không thể hủy định nghĩa của các macro được định nghĩa sẵn.