Макросы и встроенные функции
Изучите определения макросов и их преимущества по сравнению с функциями
«Макросы и встроенные функции» — бесплатный урок C Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C Academy содержит 3 уроков всего.
Введение в макросы
Макросы и встраиваемые функции
Макросы и встраиваемые функции помогают оптимизировать код, уменьшая накладные расходы на вызов функций.
В этом уроке Вы узнаете:
- Как определять и использовать макросы.
- Какие преимущества встраиваемые функции имеют перед макросами.
- Как макросы и встраиваемые функции повышают производительность.

Что такое макрос
Что такое макрос
Макрос — это директива препроцессора, которая заменяет код до компиляции.
Пример:
#define SQUARE(x) (x * x)
Теперь во время компиляции SQUARE(5) заменяется на (5 * 5).
Пример: использование макросов
Пример: использование макросов
Эта программа демонстрирует использование макроса для вычислений.
#include <stdio.h>
#define SQUARE(x) (x * x)
int main() {
int num = 4;
printf("Square of %d is %d\n", num, SQUARE(num));
return 0;
}Ограничения макросов
Ограничения макросов
Макросы не выполняют проверку типов и могут приводить к неожиданным результатам.
Пример проблемы:
#define MULTIPLY(x, y) x * y
Вызов MULTIPLY(2 + 3, 4) раскрывается в 2 + 3 * 4, что приводит к неверному результату.
Знакомство с встраиваемыми функциями
Знакомство с встраиваемыми функциями
Встраиваемые функции служат альтернативой макросам и при этом обеспечивают безопасность типов.
Синтаксис:
inline int square(int x) { return x * x; }
Они уменьшают накладные расходы на вызов функции, но обеспечивают корректную проверку типов.
Пример: использование встраиваемых функций
Пример: использование встраиваемых функций
Эта программа демонстрирует замену макроса встраиваемой функцией.
#include <stdio.h>
inline int square(int x) { return x * x; }
int main() {
int num = 4;
printf("Square of %d is %d\n", num, square(num));
return 0;
}Преимущества встраиваемых функций
Преимущества встраиваемых функций
Встраиваемые функции имеют несколько преимуществ перед макросами:
- Безопасность типов.
- Удобство отладки: они отображаются в трассировках стека.
- Отсутствие ошибок, вызванных неожиданным раскрытием макросов.
Когда использовать макросы, а когда — встраиваемые функции
Когда использовать макросы, а когда — встраиваемые функции
Используйте макросы, когда необходимо:
- Определять простые константы.
- Выполнять небольшие замены текста.
Используйте встраиваемые функции, когда необходимо:
- Выполнять сложные операции.
- Обеспечивать безопасность типов.
Итоги
Итоги
В этом уроке Вы узнали:
- Как определять и использовать макросы.
- Об ограничениях макросов.
- Как встраиваемые функции обеспечивают более безопасную альтернативу.
Далее мы рассмотрим условную компиляцию!

Часто задаваемые вопросы
Урок «Макросы и встроенные функции» бесплатный?
Да — полный текст урока «Макросы и встроенные функции» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 3 уроков всего.
Чему я научусь в уроке «Макросы и встроенные функции»?
Изучите определения макросов и их преимущества по сравнению с функциями Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C Academy?
Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «Макросы и встроенные функции»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C Academy?
Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Знакомство с препроцессором C
- Макросы и встроенные функции
- Условная компиляция