Коли використовувати #undef?
2024Ви можете застосувати директиву #undef до ідентифікатора, який не має попереднього визначення; це гарантує, що ідентифікатор не визначений. Заміна макросу не виконується в операторах #undef. 24 жовтня 2019 р
' #undef ' приймає єдиний аргумент, назву макросу, який потрібно скасувати. Ви використовуєте чисту назву макросу, навіть якщо макрос схожий на функцію. Це помилка, якщо щось з’являється в рядку після назви макросу. ' #undef ' не має ефекту, якщо назва не є макросом.
Директива #undef видаляє поточне визначення ідентифікатора. Отже, наступні входження ідентифікатора ігноруються препроцесором. Щоб видалити визначення макросу за допомогою #undef, укажіть лише ідентифікатор макросу, а не список параметрів.
Зазвичай використовується #undef щоб охопити константу препроцесора в дуже обмеженій області–це робиться, щоб уникнути витоку константи (наприклад, зміна однієї літери, як-от E, була б небезпечною у великій програмі, але в короткому діапазоні це відносно безпечно.
#undef: Він скасовує певний макрос препроцесора. #ifdef: повертає істину, якщо визначено певний макрос. #ifndef: повертає істину, якщо певний макрос не визначено.
#define і #undef. Директиву #define можна використовувати для заміни тексту у вихідному файлі. Потім можна використовувати директиву #undef для обмеження діапазону заміни. Директиву #define також можна використовувати для визначення ідентифікаторів, значення яких можна перевірити в #if…
Щоб уникнути попередження та перевизначити макрос, спершу скасуйте визначення макросу (використовуючи #undef)..