Sobes.tech
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. Это позволяет избежать затрат на вычисления во время выполнения и облегчает поддержку кода.

Макросы бывают:

  • Объектные (заменяют идентификатор на текст)
  • Функциональные (принимают параметры и подставляют их в тело макроса)

Важно помнить, что макросы не проверяются компилятором на типы, поэтому могут приводить к ошибкам, если использовать их неправильно.