C++ __FILE__ makró

C File Makro



A makrók bizonyos kódrészletek bizonyos szkriptekben, amelyeknek meghatározott neve van. Amikor bármelyik makrót végrehajtották, a mögöttük lévő kód végrehajtásra kerül egy bizonyos feladat végrehajtása érdekében. Hasonlóképpen, a __FILE__ egy makró, amelyet a C++ nyelven használnak egy adott fájl elérési útjának lekérésére. Tehát ma ebben az útmutatóban egy C++ __FILE__ makró működéséről fogunk beszélni.

01. példa:

Vegyük a __FILE__ makró első példáját C++-ban a terminálkonzol alkalmazás elindításával. Lehet, hogy a „Ctrl+Alt+T” billentyűparancsot használja ehhez. A héj megnyitásának másik módja a Tevékenység terület menü használata, ha elfelejtette a gyorsbillentyűt. Miután a terminálkonzol elindult a képernyőn, próbáljon meg létrehozni egy új c++ fájlt a kód végrehajtásához. Fájl létrehozása egyszerű „érintős” lekérdezéssel lehetséges, ahogy az alábbi mellékelt képen is látható. Az újonnan létrehozott fájl nevét a „touch” kulcsszóval kell megadni.







Az Ubuntu 20.04 Linux rendszeren telepítve kell lennie valamilyen szerkesztőnek, hogy használni tudja az újonnan létrehozott fájlok kódolásához és megnyitásához. A Linux-felhasználók körében a leginkább ajánlott szerkesztők a GNU Nano és a Vim editor. Ezen kívül a szövegszerkesztő akkor is használható, ha a korábban említett szerkesztők nem működnek. Tehát már telepítettük a GNU Nano szerkesztőt. Így a fájl megnyitásához és szerkesztéséhez használjuk majd kód létrehozásához. A szerkesztő működéséhez használja a „nano” kulcsszót a fájlnévvel együtt.





Most az újonnan létrehozott C++ macro.cc fájl készen áll a szerkesztőben való kódolásra. Kezdjük el a C++ kód implementálását, miközben ezt a cikket implementáljuk, hogy lássuk a __FILE__ makró működését. A C++ kódot úgy indítottuk el, hogy hozzáadtuk a szabványos input-output fejlécet a tetejére. Az „include” kulcsszót a hash jellel együtt használták erre. E fejléc nélkül a C++ kód bemenete és kimenete nem fog működni a konzolon a fordítás és a végrehajtás során.





A main() metódus a kódunk alappillére, mivel a végrehajtás ebből indul ki és abban ér véget. A main() metóduson belül megtörténik a tényleges munka. A main() metódusunkban egyetlen soros kódot használtunk a __FILE__ makró működésének leírására. Tehát itt a printf utasítást használtuk, amely a két értéket veszi argumentumnak, azaz a karakterlánc a fájlnevet és a makrófüggvényt veszi fel.

A __FILE__ makrót itt használjuk az aktuális fájl elérési útjának vagy nevének lekérésére. Míg a „%S” a fájl aktuális elérési útját vagy a karakterláncon belüli nevét nyomtatja ki. A végrehajtás előtt el kell mentenie a kódot a „Ctrl+S” billentyűparancs segítségével. A kód mentése megtörtént, próbáljon meg visszatérni a shell terminálhoz a „Ctrl+X” billentyűparancs segítségével.



Ahogy a __FILE__ makró C++ kódjával végeztünk, kezdjük el a C++ kód összeállítását. A fordításhoz már telepítettük a g++ fordítót a C++ kód lefordításához. Tehát a g++ fordítót használták a terminálban a „macro.cc” fájl lefordításához. Fordításkor nem ad vissza semmit, ami azt jelzi, hogy a macro.cc fájlban található C++ kód szemantikailag helyes. A fordítás után egy kód végrehajtása következik. A kódfájl futtatásához általában a „./.aout” egyszerű lekérdezést használjuk. A macro.cc fájl futtatásakor cserébe megkapjuk a fájl nevét. Így működik a C++ __FILE__ makró.

02. példa:

Nézzünk meg egy másik példát, amely a C++ __FILE__ makró funkcióinak Ubuntu 20.04 rendszeren belüli működését vizsgálja meg. Amint láttuk, hogyan működik a C++ __FILE__ makró, amikor egy olyan fájl elérési útjának lekérésére használták, amelyben megemlítették.

Most a C++ __FILE__ makrót használjuk egy olyan fájl elérési útjának vagy nevének lekéréséhez, amely nem az éppen dolgozott fájltól eltérő. Tehát ugyanazt a macro.cc fájlt nyitottuk meg a GNU Nano szerkesztőben a kód frissítéséhez. Hozzáadtuk a szabványos input-output fejlécet az include kulcsszóval, és inicializáltunk egy main() függvényt egész visszatérési típussal.

A main() metóduson belül az első print utasítás megegyezik a régivel, hogy megkapja az aktuális fájl elérési utat, amelyen jelenleg dolgozunk. Ezt követően a #line kulcsszót egy másik fájlnévvel, azaz a következő egymást követő sorban 'new.txt'-vel használtuk. Ez az aktuális fájltól eltérő fájl megadására szolgál, amelynek a nevét vagy elérési útját kapjuk. A következő printf utasítást egy „new.txt” fájl elérési útjának kinyomtatására használták egy C++ __FILE__ makró segítségével. Mentse el az újonnan frissített kódot, hogy elkerülje a fordítás során felmerülő kellemetlenségeket. Ehhez használja a „Ctrl+S” gombot.

A frissített fájl mentése után lépjen ki a „Ctrl+X” billentyűkombinációval a billentyűzeten. Most visszatértünk a shell képernyőhöz.

Fordítsuk le a frissített fájlt. Ehhez használja a g++ fordítót egy macro.cc fájl nevével. A sikeres fordítás után futtassa a kódot a „./a.out” paranccsal a konzolon. A kimenet először az aktuális fájl elérési útját mutatja, majd a másik fájl elérési útját, a „new.txt” megjelenik a shell képernyőn. Nézze meg, milyen egyszerű a __FILE__ makró használata a fájl elérési útjának megjelenítésére a shellben.

03. példa:

Nézzük meg a __LINE__ makrót a __FILE__ makróval együtt C++-ban. A __LINE__ makró annak a fájlnak a sorszámát jeleníti meg, amelyben a makrót használták. Tehát nyissa meg ugyanazt a fájlt, és frissítse mindkét printf utasítást. A C++ __LINE__ makró előtt hozzáadtuk a C++ __LINE__ makrót. Ez a __LINE__makró egy aktuális fájl sorszámát kapja, ahol a __FILE__ az első. Míg a következő __LINE__ makró a másik fájl első sorszámát kapja, mert már említettük a sorszámot a fájlnévvel a kódban.

A fájl mentése és kilépése után visszatértünk a shell terminálhoz. Ugyanazt a g++ parancsot használjuk a C++ macro.cc fájlkód fordításához. A sikeres fordítás a végrehajtási parancshoz vezet. Most a „./a.out” parancsot használjuk erre. A végrehajtás azt jelzi, hogy az első fájl, azaz az aktuális fájl a 3. sorban, míg a __FILE__ makró a kódban említett másik fájl első sorában található.

Következtetés:

Ez a cikk a makrók meghatározását tartalmazza, és tárgyalja a C++ __FILE__ makró használatát az Ubuntu 20.04 rendszerben. A C++ __LINE__ makrót néhány példán keresztül is tárgyaltuk, hogy jobban illusztráljuk a C++ __FILE__ makró működését. Összefoglalva, nagyon reméljük, hogy ez a cikk segíteni fog a C++ __FILE__makróban a legjavában.