Udostępnij za pośrednictwem


Makra i język C++

C++ zawiera nowe funkcje, z których niektóre zastępują te oferowane przez preprocesor ANSI C.Te nowe możliwości zwiększają bezpieczeństwo typów i przewidywalność języka:

  • W języku C++, obiekty zadeklarowane jako const mogą być używane w stałych wyrażeniach.Umożliwi to programom deklarować stałe, które mają typ i informacje o wartości i wyliczenia, które mogą być przeglądane symbolicznie z poziomu debugera.Za pomocą preprocesora dyrektywy #define definiowanie stałych nie jest tak dokładne.Magazyn nie jest przydzielany dla obiektów const, chyba że wyrażenie mające swój adres znajduje się w programie.

  • Możliwości funkcji wbudowanej C++ wypierają typ funkcji makr.Zalety przy użyciu wbudowanych funkcji przez makra są następujące:

    • Zabezpieczenie typów.Wbudowane funkcje są przedmiotem tego samego typu, sprawdzeni jak normalne funkcje.Makra nie są typu bezpiecznego.

    • Poprawna obsługa argumentów, które mają skutki uboczne.Wbudowane funkcje oceniają wyrażenia, podane jako argumenty przed wprowadzeniem treści funkcji.W związku z tym nie ma żadnych szans, że wyrażenie z efektami ubocznymi będzie niebezpieczne.

Aby uzyskać więcej informacji dotyczących funkcji wbudowanej, zobacz inline, __inline, __forceinline.

W celu zapewnienia zgodności z poprzednimi wersjami wszystkich udogodnień preprocesora, które istniały w ANSI C i wcześniejszych specyfikacjach C++ są zachowywane dla Microsoft C++.

Zobacz też

Informacje

Wstępnie zdefiniowane makra

Makra (C/C++)