0Pricing
C Academy · Урок

Макросы и встроенные функции

Изучите определения макросов и их преимущества по сравнению с функциями

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

Введение в макросы

Макросы и встраиваемые функции

Макросы и встраиваемые функции помогают оптимизировать код, уменьшая накладные расходы на вызов функций.

В этом уроке Вы узнаете:

  • Как определять и использовать макросы.
  • Какие преимущества встраиваемые функции имеют перед макросами.
  • Как макросы и встраиваемые функции повышают производительность.
Макросы и встроенные функции — иллюстрация 1

Что такое макрос

Что такое макрос

Макрос — это директива препроцессора, которая заменяет код до компиляции.

Пример:

#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;
}

Преимущества встраиваемых функций

Преимущества встраиваемых функций

Встраиваемые функции имеют несколько преимуществ перед макросами:

  • Безопасность типов.
  • Удобство отладки: они отображаются в трассировках стека.
  • Отсутствие ошибок, вызванных неожиданным раскрытием макросов.

Когда использовать макросы, а когда — встраиваемые функции

Когда использовать макросы, а когда — встраиваемые функции

Используйте макросы, когда необходимо:

  • Определять простые константы.
  • Выполнять небольшие замены текста.

Используйте встраиваемые функции, когда необходимо:

  • Выполнять сложные операции.
  • Обеспечивать безопасность типов.

Итоги

Итоги

В этом уроке Вы узнали:

  • Как определять и использовать макросы.
  • Об ограничениях макросов.
  • Как встраиваемые функции обеспечивают более безопасную альтернативу.

Далее мы рассмотрим условную компиляцию!

Макросы и встроенные функции — иллюстрация 10

Часто задаваемые вопросы

Урок «Макросы и встроенные функции» бесплатный?

Да — полный текст урока «Макросы и встроенные функции» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Знакомство с препроцессором C
  2. Макросы и встроенные функции
  3. Условная компиляция
← Назад к C Academy