Макросы и C++
C++ предоставляет новые возможности, некоторые из которых supplant, предлагаемые препроцессором ANSI c.Эти новые возможности повышают безопасность типов и предсказуемость языка:
В C++, объекты, объявленные как Const может использоваться в выражениях константы.Это позволяет программы для объявления константы, содержащих данные типа и значения и перечисления, которые можно просматривать символически с отладчиком.Использование препроцессор #define директива, чтобы задать константы не так.Не выбрано ни одно хранилище для a Const объект если выражение, которое принимает его адрес не найден в программе.
Возможность встроенной функции C++ supplants макросы функция-типа.Преимущества использования встроенных функций с макросами:
Безопасность типа.Встроенные функции проходит одна и та же проверка типа как обычные функции.Макросы не safe типа.
Исправьте обработки аргументов, которые имеют побочные эффекты.Встроенные функции вычисляются выражения, предоставленных как аргументы до введения тело функции.Следовательно, не существует вероятность, что выражение с побочными эффектами будет unsafe.
Дополнительные сведения о встроенных функциях см. в разделе встроенный, __inline, __forceinline.
Для обеспечения обратной совместимости, все средства препроцессора, которые существовали в ANSI c и в более ранних спецификациях C++ сохраняются для microsoft C++.