- •4. Идентификаторы. Ключевые слова. Алфавит языка.
- •5. Этапы получения загрузочного файла. Понятие консольного приложения.
- •6.Стандартные типы данных. Типы данных для представления целых чисел.
- •20.Операторы цикла while, do … while. Варианты выражений. Бесконечные циклы.
- •21.Оператор цикла for. Варианты выражений. Тело цикла. Пустой оператор for. Оператор без тела цикла.
- •22. Операторы goto, break, continue, return. Варианты использования.
- •23.Массивы. Индексация, инициализация, размещение элементов в памяти. Определение размера массива.
- •24.Многомерные массивы. Инициализация многомерных массивов. Размещение элементов в памяти.
- •25.Строки. Представление строк. Длина строки. Варианты инициализации строк.
- •31.Область существования имени. Виды областей существования имени
- •32.Область видимости имени. Операция разрешения контекста.
- •33. Классы памяти.
- •34.Структуры. Элементы структуры. Массивы структур.
- •35.Структуры. Передача структур в функции.
- •36.Структуры. Битовые поля в структурах.
- •37.Объединения.
- •38.Перечисления.
- •39.Работа с файлами. Потоки. Буфер.
- •40.Библиотека stdio. Связь с файлами. Открытие и закрытие файла.
- •41.Библиотека stdio. Текстовые файлы – чтение и запись.
- •42.Библиотека stdio. Форматированный ввод/вывод.
- •43.Библиотека stdio. Функция fseek().
- •44.Работа с файлами. Переключение ввода/вывода.
- •45.Операторы времени компиляции inline и typedef.
- •46.Директива препроцессора #define. Макросы с формальными параметрами.
- •47.Директивы условной компиляции. Директивы #if, #else, #elif и #endif
46.Директива препроцессора #define. Макросы с формальными параметрами.
#define — задаёт макроопределение (макрос) или символическую константу
Макросы в языке Си используются для определения небольших фрагментов кода. Во время обработки кода, каждый макрос заменяется соответствующим ему определением. Если макрос имеет параметры, то они указываются в теле макроса; таким образом, макросы могут походить на функции
Например:
#define max(a,b) ((a) > (b) ? (a) : (b))
определяет макрос max, использующий два аргумента a и b. Этот макрос можно вызывать как любую Си-функцию, используя схожий синтаксис. То есть, после обработки препроцессором,
z = max(x,y);
становится
z = ((x) > (y) ? (x) : (y));
47.Директивы условной компиляции. Директивы #if, #else, #elif и #endif
Имеется несколько директив, которые дают возможность выборочно компилировать части исходного кода вашей программы. Этот процесс называется условной компиляцией.
1)Если находящееся за #if константное выражение истинно, то компилируется код, который находится между этим выражением и #endif. В противном случае этот промежуточный код пропускается.
2)Директива #else работает в основном так, как else — ключевое слово языка С: задает альтернативу на тот случай, если не выполнено условие #if.
3)Директива #elif означает "else if" и устанавливает для множества вариантов компиляции цепочку if-else-if. После #elif находится константное выражение. Если это выражение истинно, то компилируется находящийся за ним блок кода, и больше не проверяются никакие другие выражения #elif. В противном же случае проверяется следующий блок этой последовательности.
4)Директива #endif обозначает конец блока #if.
48.Директивы препроцессора #ifdef, #ifndef, #undef, defined.
#ifdef — осуществляет условную компиляцию при определённости символической константы
#ifndef — осуществляет условную компиляцию при неопределённости символической константы
#undef — отменяет предыдущее определение
defined -с его помощью можно узнать, определено ли имя макроса.
49.Директивы препроцессора #include, #line, #error.
#line — препроцессор изменяет номер текущей строки и имя компилируемого файла
#include — вставляет текст из указанного файла
#error — выдача диагностического сообщения
50.Операторы препроцессора #, ##, #@.
Операторы препроцессора # и ## применяются в сочетании с оператором #define.
Оператор #, который обычно называют оператором превращения в строку (stringize), превращает аргумент, перед которым стоит, в строку, заключенную в кавычки.
Оператор ##, который называют оператором склеивания (pasting), или конкатенации конкатенирует две лексемы.
51.Работа с отладчиком.