Back to questions
Junior — Middle
83
Можете объяснить механизм работы макросов в процессе предварительной обработки кода?
Answer from AI
sobes.tech AI
Макросы в C/C++ — это директивы препроцессора, которые обрабатываются до компиляции кода. Препроцессор заменяет все вхождения макроса на заданное значение или код, что позволяет создавать константы, инлайн-функции или условно включать части кода.
Пример простого макроса:
#define PI 3.14
float circle_area(float r) {
return PI * r * r;
}
Здесь при предварительной обработке все вхождения PI будут заменены на 3.14. Это позволяет избежать затрат на вычисления во время выполнения и облегчает поддержку кода.
Макросы бывают:
- Объектные (заменяют идентификатор на текст)
- Функциональные (принимают параметры и подставляют их в тело макроса)
Важно помнить, что макросы не проверяются компилятором на типы, поэтому могут приводить к ошибкам, если использовать их неправильно.