Макросы и C++

C++ предоставляет новые возможности, некоторые из которых supplant, предлагаемые препроцессором ANSI c.Эти новые возможности повышают безопасность типов и предсказуемость языка:

  • В C++, объекты, объявленные как Const может использоваться в выражениях константы.Это позволяет программы для объявления константы, содержащих данные типа и значения и перечисления, которые можно просматривать символически с отладчиком.Использование препроцессор #define директива, чтобы задать константы не так.Не выбрано ни одно хранилище для a Const объект если выражение, которое принимает его адрес не найден в программе.

  • Возможность встроенной функции C++ supplants макросы функция-типа.Преимущества использования встроенных функций с макросами:

    • Безопасность типа.Встроенные функции проходит одна и та же проверка типа как обычные функции.Макросы не safe типа.

    • Исправьте обработки аргументов, которые имеют побочные эффекты.Встроенные функции вычисляются выражения, предоставленных как аргументы до введения тело функции.Следовательно, не существует вероятность, что выражение с побочными эффектами будет unsafe.

Дополнительные сведения о встроенных функциях см. в разделе встроенный, __inline, __forceinline.

Для обеспечения обратной совместимости, все средства препроцессора, которые существовали в ANSI c и в более ранних спецификациях C++ сохраняются для microsoft C++.

См. также

Ссылки

Предварительно определенные макросы

Макросы (C/C++)