Содержание
- 2. Препроцессор Препроцессор – программа, осуществляющая обработку текста программы перед ее непосредственной компиляцией. Обработка осуществляется согласно специальным
- 3. Препроцессор Описание директивы препроцессора всегда начинается с новой строки и заканчивается в конце строки. Поэтому: на
- 4. Директива include Директива include осуществляет вставку в программу текста из другого файла. В основном эта директива
- 5. Директива include Имя файла указывается заключенным в двойные кавычки, если файл находится в произвольном месте, а
- 6. Директива define Директива define предназначена для проведения замен и создания макросов. Создание автозамен: #define идентификатор строка-подстановка
- 7. Директива define Создание макросов #define идентификатор([параметр-идентификатор[, …]]) строка-подстановка перевод_строки Пример #define sqr(x) pow(x,2.0) sqr(a) → pow(a,2.0)
- 8. Директива define Параметр макроса может быть преобразован к строке (stringizing). Для этого используется специальный формат записи
- 9. Директива define Можно создавать макросы в которых параметр становится частью лексемы программы (token-pasting). Для этого в
- 10. Директива define В макрос можно передавать неограниченное количество параметров. Для этого в описании заголовка макроса в
- 11. Директива define Примеры: #define ver(maj,min) #maj "." #min char *version=ver(1,0); → char *version=“1.0”; #define var(type, name,
- 12. Директива define Автозамены, макросы и простые определения, сделанные с помощью директивы #define можно отменять с помощью
- 13. Директива error Директива error используется для создания сообщения об ошибке во время компиляции. Формат: #error строка_описания_ошибки
- 14. Директива pragma Директива pragma осуществляет указание некоторых особенностей компилятору. #pragma optimize( [ { time | size
- 15. Директива pragma void start(void) { printf("START function!\n"); } void finish(void) { printf("FINISH function!\n"); } #pragma startup
- 16. Директива pragma void start1(void) { printf("START1 function!\n"); } void start2(void) { printf("START2 function!\n"); } void finish1(void)
- 17. Директивы условной компиляции
- 18. Директивы условной компиляции Примеры: #define A 5 #if A>10 puts(“Message 1”); #else puts(“Message 2”); #endif #define
- 19. Директивы условной компиляции #ifndef идентификатор … #endif #ifdef идентификатор … #endif
- 20. Директивы условной компиляции Примеры: #define DEBUG_MODE … #ifdef DEBUG_MODE puts(“Режим отладки”); #endif #define TEST_MODE int main(int
- 21. Диагностика Библиотека void assert(int выражение) Отмена действия – определить имя NDEBUG до подключения библиотеки assert.h
- 22. Диагностика Ввести два целых числа. Разделить первое число на второе. Если второе число – ноль, то
- 23. Модуль Модуль (библиотека) – совокупность типов данных, переменных, констант и функций для работы с этими типами
- 24. Структура модуля Две основные части: интерфейс (заголовок модуля – файл .h); реализация (реализация модуля файл .с).
- 25. Заголовок модуля Заголовок модуля – интерфейсная часть, представленная в виде файла с расширением .h. Основное содержание:
- 26. Реализация модуля Реализация модуля – файл с расширением .c Основное содержание: описание внутренних типов данных; описание
- 27. Правила описания внешних переменных Объявление внешней переменной с возможной ее инициализацией осуществляется в файле текста программы
- 28. Подключение модулей Подключение модуля в программу осуществляется двумя действиями: подключение файла заголовка модуля с помощью директивы
- 29. Частные случаи модулей Модуль содержит только часть реализацию: единственный модуль в программе, содержащий только функцию main.
- 31. Скачать презентацию