Директиви #ifdef і #ifndef можна використовувати в будь-якому місці, в якому може використовуватися директива #if. Якщо параметр ідентифікатор був визначений, то оператор # ifdefідентіфікатор еквівалентний оператору #if 1. Якщо ж параметр ідентифікатор не було визначено або його ухвала скасована за допомогою директиви #undef. то він еквівалентний оператору #if 0. Ці директиви перевіряють наявність або відсутність тільки ідентифікаторів, визначених до директиви #define. а не ідентифікаторів, оголошених в вихідному коді C або C ++.
Ці директиви призначені тільки для сумісності з попередніми версіями мови. Переважно використовувати константний вираз defined (ідентифікатор) до директиви #if.
Директива #ifndef перевіряє протилежність умови, що перевіряється директивою #ifdef. Якщо ідентифікатор не визначений (або його визначення було видалено директивою #undef), то умова виконується (true, нульове значення). В іншому випадку умова не виконується (false, значення дорівнює 0).
Блок, що відноситься тільки до систем Microsoft
Значення ідентифікатора можна передати з командного рядка за допомогою параметра / D. Він дозволяє визначити до 30 макросів.
Це дозволяє перевірити, чи існує визначення, оскільки визначення можна передавати з командного рядка. наприклад:
Завершення блоку, що відноситься тільки до систем Microsoft
Показ: успадкувала Захищений
Чи була ця сторінка корисною? Та ні
1500 символів Якого залишилося
Дякуємо! Дякуємо за відгук. Ваша думка дуже важлива для нас.