Co je to směrnice #define v C++

Co Je To Smernice Define V C



Předzpracování v C++ se týká počáteční fáze kompilace nebo překladu programu, kdy je zdrojový programový soubor upraven na základě direktiv preprocesoru. Tyto směrnice, označené # symbol, jsou prováděny preprocesorem a ovlivňují zdrojový kód před spuštěním hlavního programu.

Direktivy preprocesoru v C++ jsou označeny jako # (hash) symbol na začátku příkazu. Mezi běžné direktivy preprocesoru v C++ patří zařazení souboru a makra definice. Tyto direktivy jsou obvykle umístěny mimo funkci main() v horní části programu C++. Během předběžného zpracování se vytvoří mezisoubor s příponou .i je generováno rozšíření.

#define Direktiva v C++

V C++ je direktiva #define direktiva preprocesoru používaná k definování konstant nebo maker. Umožňuje definovat symbolická jména nebo hodnoty, které jsou nahrazeny v celém kódu předtím, než dojde ke skutečnému procesu kompilace.







Zde jsou některé z hlavních předností #define Pre-processor



  • V C++ se k definici maker používá direktiva preprocesoru #define.
  • Makra v C++ jsou pojmenované konstanty nebo výrazy deklarované direktivou #define.
  • Direktivy #define se také označují jako direktivy maker.
  • Když se v programu C++ setkáte s direktivou #define, je název definovaného makra během počáteční fáze kompilace nahrazen konstantní hodnotou nebo výrazem.

Syntaxe směrnice #define

Syntaxe pro použití direktivy #define je následující:



#define hodnotu identifikátoru

Kde identifikátor je název konstanty nebo makra, které se definuje, a hodnota je hodnota, kterou by měla být nahrazena při kompilaci kódu.





Příklad směrnice #define

Následuje příklad, který vysvětluje, jak lze použít direktivu #define v kódu C++:

#include

#define PI 3.14159

#define SQUARE(x) ((x) * (x))

int hlavní ( ) {

dvojnásobek poloměr = 5,0 ;

dvojnásobek plocha = PI * NÁMĚSTÍ ( poloměr ) ;

std :: cout << 'Plocha: ' << plocha << std :: endl ;

vrátit se 0 ;

}

V tomto příkladu definujeme dvě konstanty pomocí direktivy #define: PI, která představuje matematickou konstantu pi, a SQUARE, což je makro, které vypočítá druhou mocninu dané hodnoty. Tyto konstanty pak použijeme v našem kódu k výpočtu plochy kružnice s daným poloměrem.



Rozdíl mezi #define a const

Jedna běžná otázka, která vyvstává při diskusi o direktivě #define, je, jak se liší od použití proměnných const v C++. Zatímco oba přístupy umožňují definovat konstanty, které lze použít v celém kódu, existují mezi nimi některé klíčové rozdíly.

Jeden zásadní rozdíl mezi #definovat a konst je, že #define je direktiva preprocesoru, zatímco const je klíčové slovo, které je součástí samotného jazyka C++. To znamená, že konstanty definované pomocí #define jsou nahrazeny svými hodnotami před kompilací kódu, zatímco proměnné const jsou zpracovávány samotným kompilátorem.

Dalším klíčovým rozdílem mezi #define a const je to, že proměnné const mají specifický typ, zatímco konstanty definované pomocí #define nikoli. To znamená, že můžete použít proměnné const v místech, kde je vyžadován specifický typ, zatímco konstanty definované pomocí #define nemusí v těchto situacích vždy fungovat.

Závěr

Direktiva #define je direktiva preprocesoru používaná k definování konstant nebo maker. Umožňuje nám definovat symbolická jména nebo hodnoty, které jsou nahrazeny v celém kódu předtím, než dojde ke skutečnému procesu kompilace. Přečtěte si více o direktivě #define v C++ v tomto článku.