Inline vs Macro: Rozdíl a srovnání

Inline a makro jsou funkce používané v programování počítačů C++ a C. Většinou se více než makro používá inline funkce.

Key Takeaways

  1. Inline funkce jsou rozšířeny v době kompilace, zatímco preprocesor rozšiřuje makra před kompilací.
  2. Inline funkce poskytují bezpečnost typu a provádějí automatické převody typů, zatímco makra ne.
  3. Makra mohou způsobit vedlejší efekty kvůli vícenásobným vyhodnocením, zatímco inline funkce ne.

Inline vs makro

Inline je normální funkce, která je definována klíčovým slovem inline a může snadno přistupovat k členům třídy za účelem vylepšení funkce. Makro je definováno klíčovým slovem #define a přestože patří do jazyků C a C++, většinou se používá v prvním z nich. Je náchylný k chybám, ale je flexibilní.

Inline vs makro

Inline je normální funkce. Funkce je definována klíčovým slovem inline. Může snadno přistupovat ke členům třídy. Zlepšuje funkci.

Makro je definováno klíčovým slovem #define. Téměř nikdy se nepoužívá C + +a více se používá v jazyce C. Jsou flexibilnější, ale jsou náchylné k chybám.

Srovnávací tabulka

Parametry srovnáníV souladuMakro
DefiniceInline je normální funkce používaná v jazyce C++ definovaná klíčovým slovem „Inline“.Makro je funkce používaná převážně v jazyce C, která je definována klíčovým slovem „#define“.
Přístup členů třídyMá snadný přístup k členům třídy.Nemá přístup ke členům třídy.
OdladěnoProgram lze snadno odladit.Program nelze snadno odladit.
Kde definovat?Ať už ve třídě, nebo mimo ni.Na začátku programu.
UkončeníJe ukončena symbolem, na konci složená závorka.Spíše než symbolem je ukončena novým řádkem.

Co je Inline?

Inline je normální funkce, která se používá v C++ programování Jazyk. Je definováno klíčovým slovem inline.

Také čtení:  GOBACK vs STOP RUN In Cobol: Rozdíl a srovnání

Funkce může být definována uvnitř nebo vně třídy. A může být ukončeno symbolem složené závorky.

Když je funkce volána, ukládá režii proměnných push/pop na stoh a také šetří režii zpětného volání z funkce.

Argumenty jsou v případě inline funkce vyhodnoceny pouze jednou a požadované převody jsou prezentovány správně. Tato funkce není široce používána, většinou se používá v jazyce C++, ale není vyžadována v konkurenčním programování.

Co je Micro?

Makro je v programu rozšířeno o preprocesor, proto se mu také říká direktiva preprocesoru. Tato funkce je definována klíčovým slovem „#define“.

Makro lze rozšířit bez ohledu na skutečnost, že jsou syntakticky správné. Z problémů s rozšířením maker bude mít fáze kompilace funkce maker za následek chyby sestavy.

A nelze jej snadno odladit. Ve skutečnosti to může způsobit některé vedlejší účinky kvůli expanzi, protože vstupní výrazy jsou kopírovány všude, kde se objeví ve vzoru.

Hlavní rozdíly mezi Inline a Makro

  1. Inline se téměř nikdy nepoužívá v konkurenčním programování, zatímco na druhou stranu Macro je široce používán v konkurenčním programování.
  2. Argumenty v případě inline jsou vyhodnoceny pouze jednou, zatímco v případě makra jsou argumenty vyhodnoceny při každém použití funkce makra v programu.
Reference
  1. https://link.springer.com/chapter/10.1007/978-3-322-87867-0_8
  2. https://www.spiedigitallibrary.org/conference-proceedings-of-spie/10091/100910H/Inline-measurement-for-quality-control-from-macro-to-micro-laser/10.1117/12.2255824.short

Poslední aktualizace: 19. srpna 2023

tečka 1

24 myšlenek na téma „Inline vs Macro: Rozdíl a srovnání“

Zanechat komentář

Chcete si tento článek uložit na později? Klikněte na srdce v pravém dolním rohu pro uložení do vlastního pole článků!