Sdílet prostřednictvím


Makra a jazyk C++

Jazyk C++ nabízí nové možnosti, z nichž některé nahrazují možnosti preprocesoru standardu ANSI jazyka C.Tyto nové možnosti zvyšují typovou bezpečnost a předvídatelnost jazyka:

  • V jazyce C++ lze objekty deklarované jako const použít v konstantních výrazech.To programům umožňuje deklarovat konstanty, které mají informace o typu a hodnotě a výčty, které lze symbolicky zobrazit ladicím programem.Použití direktivy #define preprocesoru pro definování konstant není tak přesné.Objektu const není přiděleno žádné úložiště, pokud není výraz, který přijímá jeho adresu, nalezen v programu.

  • Schopnost vložených funkcí jazyka C++ nahrazuje makra typů funkce.Výhody použití vložených funkcí oproti makrům jsou:

    • Typová bezpečnost.Vložené funkce jsou kontrolovány stejně jako normální funkce.Makra nejsou typově bezpečné.

    • Správná manipulace s argumenty, které mají vedlejší účinky.Vložené funkce vyhodnotí výrazy, které jsou zadány jako argumenty před vstupem do těla funkce.Proto neexistuje možnost, že výrazy s vedlejšími účinky budou nebezpečné.

Další informace o vložených funkcích naleznete v tématu inline, __inline, __forceinline.

Z důvodu zpětné kompatibility jsou v jazyce C++ společnosti Microsoft zachovány všechny funkce preprocesoru, které existovaly ve standardu ANSI jazyka C a starších specifikacích jazyka C++.

Viz také

Referenční dokumentace

Předdefinovaná makra

Makra (C/C++)