Читайте: Директивы препроцессора в C - Часть 1
В последнем уроке я рассказал вам о некоторых директивах препроцессора, таких как макросы и включение файлов. Осталось еще две директивы препроцессора, которые я завершу в этом уроке.
- Условная компиляция
- Разные директивы
Условная компиляция
Использование этой директивы препроцессора аналогично ее названию. Он часто используется для исключения некоторого набора утверждений в процессе компиляции. Один вопрос, который поразит вас.
Зачем мне писать те утверждения, которые я не хочу компилировать?
- Ну, программисты часто пишут программы для некоторых клиентов. Предположим, что на одном этапе клиент требует старую версию программы, которую вы удалили. Тогда в тех случаях это используется очень широко. Поэтому он часто используется для того, чтобы упростить работу определенных функций, не касаясь кода. Это самый безопасный способ удалить определенный код из программы.
- Он также используется для проверки работоспособности программы. При написании сложных программ на С нередко в последний момент программа на Си дает неверные результаты. Таким образом, мы можем использовать условную компиляцию для исправления ошибок, используя метод проб и ошибок.
- Портативность - одна из главных особенностей, которая довольно известна в наши дни. С помощью условной компиляции мы также можем сделать программу переносимой.
Теперь давайте возьмем один пример, чтобы объяснить условную компиляцию.
#ifdef MACRONAME
Statement 1;
Заявление 2;
И так далее…
#endif
Statement 1;
Заявление 2;
И так далее…
#endif
Это означает, что операторы 1, 2 и т. Д. Будут работать, только если в программе определен макрос с MACRONAME. Вы также можете использовать #ifndef, это как раз напротив #ifdef. Здесь #else может использоваться, чтобы показать еще часть #ifdef или #ifndef. #endif показывает конец директивы препроцессора условной компиляции.
Выход
объяснение
- Как видите, второй printf () не работает. Это потому, что мы не определили макрос с WORK.
- Чтобы заставить работать второй printf (), мне просто нужно добавить #define WORK перед функцией main (). После этого он также напечатает сообщение внутри второго printf ().
Разные Директивы
Две редко используемые директивы препроцессора попадают в категорию разных директив.
1. #undef
2. #pragma
2. #pragma
#undef
Эта директива препроцессора обычно используется для отмены определения определенных макросов на некотором этапе. Обычно он не используется, но мы можем отменить определение любого макроса, используя #undef, за которым следует имя макроса.
#pragma
Эта директива препроцессора обычно используется тремя способами, которые
а. #pragma автозагрузка
б. #pragma выход
c. #pragma warn
б. #pragma выход
c. #pragma warn
#pragma startup: используется для вызова некоторой функции с самого начала (до выполнения функции main ()). Мы можем вызвать любую функцию, используя эту директиву препроцессора.
Синтаксис: #pragma при запуске funcall
В приведенном выше коде функция «funcall» будет вызываться при запуске программы.
#pragma exit: это противоположная часть запуска. Он используется для вызова некоторой функции после завершения программы.
Синтаксис: #pragma exit funcall
В приведенном выше коде функция «funcall» вызывается при выходе из программы.
#pragma warn: эта директива препроцессора используется очень редко. Обычно используется для подавления определенного предупреждения внутри программы.
Комментариев нет:
Отправить комментарий