Makro C++ __FILE__

Makro C File



Makra jsou nějaké části kódu v nějakém skriptu s nějakým konkrétním názvem. Když se spustí některé z maker, spustí se kód za nimi, aby provedl určitou úlohu. Stejně tak je __FILE__ makro používané v jazyce C++ k získání cesty ke konkrétnímu souboru. Takže dnes v této příručce budeme diskutovat o fungování makra C++ __FILE__.

Příklad 01:

Vezměme si první příklad makra __FILE__ v C++ spuštěním aplikace terminálové konzoly. Možná k tomu používáte zkratku „Ctrl+Alt+T“. Dalším způsobem, jak otevřít shell, je použít oblast nabídky Aktivita, pokud jste zapomněli klávesovou zkratku. Po spuštění terminálové konzoly na obrazovce zkuste vytvořit nový soubor c++, abyste v něm mohli provést kód. Soubor lze vytvořit jednoduchým „dotykovým“ dotazem, jak ukazuje přiložený obrázek níže. Název nově vytvořeného souboru musí být uveden s klíčovým slovem „touch“.







Ve vašem systému Ubuntu 20.04 Linux musí být nainstalován nějaký editor, aby jej bylo možné použít pro kódování a otevírání nově vytvořených souborů. Nejdoporučovanější editory široce známé mezi uživateli Linuxu jsou GNU Nano a Vim editor. Kromě toho lze textový editor použít také v případě, že oba výše uvedené editory nefungují. Takže jsme již nainstalovali editor GNU Nano. Budeme jej tedy používat k otevření a úpravě souboru, abychom vytvořili kód. Použijte klíčové slovo „nano“ spolu s názvem souboru, aby editor fungoval.





Nyní je nově vytvořený C++ soubor macro.cc připraven ke kódování v editoru. Začněme implementovat kód C++ při implementaci tohoto článku, abychom viděli fungování makra __FILE__. Náš kód C++ jsme zahájili přidáním standardního vstupně-výstupního záhlaví na jeho začátek. K tomu bylo použito klíčové slovo „zahrnout“ se znakem hash. Bez této hlavičky nebude vstup a výstup kódu C++ fungovat na konzole při kompilaci a spuštění.





Metoda main() je základním pilířem našeho kódu, protože provádění začíná a končí v ní. V rámci metody main() bude provedena skutečná práce. K popisu funkčnosti makra __FILE__ jsme v naší metodě main() používali jednořádkový kód. Takže zde byl použit příkaz printf, který bere jako argumenty dvě hodnoty, tj. řetězec přebírající název souboru a funkci makra.

Makro __FILE__ se zde používá k získání aktuální cesty k souboru nebo jeho názvu. Zatímco „%S“ se používá k vytištění aktuální cesty k souboru nebo jeho názvu v řetězci. Před spuštěním musíte svůj kód uložit pomocí zkratky „Ctrl+S“. Nyní je kód uložen, zkuste se vrátit do shellového terminálu pomocí zkratky „Ctrl+X“.



Když jsme s kódem C++ pro makro __FILE__ hotovi, začněme s kompilací kódu C++. Pro kompilaci jsme již nainstalovali kompilátor g++ pro kompilaci kódu C++. Ke kompilaci souboru „macro.cc“ byl tedy v terminálu použit kompilátor g++. Při kompilaci nevrací nic, což znamená, že kód C++ je uvnitř souboru macro.cc sémanticky správný. Po kompilaci přichází řada na provedení kódu. Ke spuštění souboru kódu máme tendenci používat jednoduchý dotaz „./.aout“. Po spuštění souboru macro.cc jsme na oplátku dostali název souboru jako. Takto funguje makro C++ __FILE__.

Příklad 02:

Podívejme se na další příklad, abychom se hlouběji podívali na funkčnost makra C++ __FILE__ v systému Ubuntu 20.04. Jak jsme viděli, jak makro __FILE__ v C++ funguje, když bylo použito k načtení cesty k souboru, ve kterém bylo zmíněno.

Nyní použijeme makro C++ __FILE__ k získání cesty k souboru nebo názvu jiného souboru, než na kterém právě pracujeme. Otevřeli jsme tedy stejný soubor macro.cc v editoru GNU Nano, abychom aktualizovali kód. Přidali jsme standardní vstupně-výstupní hlavičku s klíčovým slovem include a inicializovali funkci main() s návratovým typem integer.

V rámci metody main() je první příkaz print stejný jako ten starý, aby se získala aktuální cesta k souboru, na kterém právě pracujeme. Poté jsme použili klíčové slovo #line s jiným názvem souboru, tj. „new.txt“ na dalším po sobě jdoucím řádku. Slouží k určení jiného souboru než aktuálního souboru, pro který budeme získávat jeho název nebo cestu. Další příkaz printf byl použit k vytištění cesty k souboru „new.txt“ pomocí makra C++ __FILE__. Uložte si nově aktualizovaný kód, abyste se vyhnuli případným nepříjemnostem při kompilaci. K tomu použijte „Ctrl+S“.

Po uložení aktualizovaného souboru jej ukončete pomocí „Ctrl+X“ z klávesnice. Nyní jsme zpět na obrazovce shellu.

Zkompilujeme aktualizovaný soubor. Použijte k tomu kompilátor g++ s názvem souboru macro.cc. Po úspěšné kompilaci spusťte kód příkazem „./a.out“ v konzole. Výstup zobrazuje nejprve cestu k aktuálnímu souboru a poté cestu k dalšímu souboru, na obrazovce shellu se zobrazí „new.txt“. Podívejte se, jak snadné je použít makro __FILE__ k zobrazení cesty k souboru na shellu.

Příklad 03:

Podívejme se na makro __LINE__ spolu s makrem __FILE__ v C++. Makro __LINE__ zobrazí číslo řádku souboru, na kterém bylo makro použito. Otevřete tedy stejný soubor a aktualizujte oba příkazy printf. Před makro C++ __LINE__ jsme přidali makro C++ __LINE__. Toto makro __LINE__získává číslo řádku aktuálního souboru, kde je __FILE__ první. Zatímco další makro __LINE__ získá číslo prvního řádku druhého souboru, protože číslo řádku s názvem souboru jsme již uvedli v kódu.

Po uložení a ukončení souboru jsme se vrátili do shellového terminálu. Ke kompilaci kódu souboru C++ macro.cc používáme stejný příkaz g++. Úspěšná kompilace vede k provedení příkazu. Nyní se zde používá příkaz „./a.out“. Provedení nám říká, že první soubor, tj. aktuální soubor na řádku 3, zatímco makro __FILE__ je na prvním řádku druhého souboru uvedeného v kódu.

Závěr:

Tento článek obsahuje definici maker a pojednává o použití makra C++ __FILE__ v systému Ubuntu 20.04. Makro C++ __LINE__ bylo také diskutováno v některých příkladech, aby bylo více ilustrováno fungování makra C++ __FILE__. Abychom to shrnuli, pevně doufáme, že vám tento článek pomůže s makrem C++ __FILE__makro v celé své kráse.