Макросы
Как работают макросы?
Макросы в программировании, особенно в C и C++, работают как инструменты для текстовой замены в исходном коде перед его компиляцией. Макросы определяются с помощью директивы препроцессора #define, и вот как они работают:
-
Определение макроса: Используя
#define, вы определяете макрос, который может быть как простым текстом, так и параметризированной функцией. Например:#define PI 3.14159 #define MAX(a, b) ((a) > (b) ? (a) : (b)) -
Замена: Во время препроцессинга, каждое вхождение имени макроса в коде заменяется его определением. Препроцессор просто заменяет текст без учета контекста или типов данных.
-
Компиляция: После замены макросов исходный код компилируется. Замененный текст обрабатывается как обычный код программы.
Макросы полезны для:
-
Создания констант.
-
Реализации небольших функций без накладных расходов вызова функций.
-
Условной компиляции кода.
Макросы могут приводить к повторному вычислению аргументов. Например, MAX(a++, b) может увеличить a больше одного раза. Для вычислений предпочтительны функции и шаблоны, а для констант constexpr; они проверяют типы и соблюдают правила области видимости.