C++ __FILE__ macro

C File Macro



De macro's zijn een stukje code in een script met een specifieke naam. Wanneer een van de macro's is uitgevoerd, wordt de code erachter uitgevoerd om een ​​bepaalde taak uit te voeren. Zo is de __FILE__ een macro die in de C++-taal wordt gebruikt om het pad naar een specifiek bestand te krijgen. Dus vandaag zullen we in deze handleiding de werking van een C++ __FILE__ macro bespreken.

Voorbeeld 01:

Laten we het eerste voorbeeld van de __FILE__-macro in C++ nemen door de terminalconsoletoepassing te starten. Mogelijk gebruikt u hiervoor de sneltoets 'Ctrl+Alt+T'. Een andere manier om de shell te openen, is door het menu Activiteitengebied te gebruiken als u de sneltoets bent vergeten. Nadat de terminalconsole op uw scherm is gestart, probeert u een nieuw c++-bestand te maken om er code in te doen. Een bestand kan worden gemaakt met een simpele 'aanraak'-query, zoals weergegeven in de bijgevoegde afbeelding hieronder. De naam van een nieuw aangemaakt bestand moet worden gegeven met het trefwoord 'touch'.







Er moet een editor op uw Ubuntu 20.04 Linux-systeem zijn geïnstalleerd om er gebruik van te kunnen maken voor het coderen en openen van de nieuw gemaakte bestanden. De meest aanbevolen editors die algemeen bekend zijn onder Linux-gebruikers zijn de GNU Nano- en Vim-editor. Anders dan dat, kan de teksteditor ook worden gebruikt voor het geval beide eerder genoemde editors niet werken. Dus we hebben de GNU Nano-editor al geïnstalleerd. We zullen het dus gebruiken om het bestand te openen en te bewerken om code te maken. Gebruik het sleutelwoord 'nano' samen met de bestandsnaam om de editor te laten werken.





Nu is het nieuw gemaakte C++-bestand macro.cc klaar om in de editor te worden gecodeerd. Laten we beginnen met het implementeren van C++-code terwijl we dit artikel implementeren om de werking van de __FILE__-macro te zien. We zijn onze C++-code begonnen door de standaard input-output-header bovenaan toe te voegen. Het trefwoord 'include' is hiervoor gebruikt met het hekje. Zonder deze header zal de invoer en uitvoer van de C++-code niet werken op de console bij compilatie en uitvoering.





De methode main() is de basispijler van onze code, aangezien de uitvoering ervan begint en erin eindigt. Binnen de methode main() wordt het eigenlijke werk gedaan. We gebruiken een enkele regelcode in onze methode main() om de functionaliteit van de __FILE__-macro te beschrijven. Dus de printf-instructie is hier gebruikt, waarbij de twee waarden als argumenten worden gebruikt, d.w.z. de tekenreeks neemt de bestandsnaam en de macrofunctie.

De macro __FILE__ wordt hier gebruikt om het huidige bestandspad of de naam ervan op te halen. Terwijl de '%S' wordt gebruikt om het huidige pad van een bestand of de naam ervan binnen een tekenreeks af te drukken. U moet uw code vóór de uitvoering opslaan met behulp van een sneltoets 'Ctrl + S'. Nu de code is opgeslagen, probeer terug te gaan naar de shell-terminal met de sneltoets 'Ctrl + X'.



Nu we klaar zijn met de C++-code voor de __FILE__-macro, gaan we beginnen met het compileren van de C++-code. Voor de compilatie hebben we de g++-compiler al geïnstalleerd om de C++-code te compileren. De g++-compiler is dus in de terminal gebruikt om het bestand 'macro.cc' te compileren. Bij compilatie retourneert het niets, wat aangeeft dat de C++-code in het macro.cc-bestand semantisch correct is. Na de compilatie komen de beurten voor de uitvoering van een code. Om het codebestand uit te voeren, gebruiken we meestal de eenvoudige query './.aout'. Bij het uitvoeren van het bestand macro.cc hebben we de naam van een bestand gekregen. Dit is hoe de C++ __FILE__ macro werkt.

Voorbeeld 02:

Laten we nog een voorbeeld nemen om dieper in te gaan op de functionaliteit van de C++ __FILE__-macro binnen het Ubuntu 20.04-systeem. Zoals we hebben gezien hoe de C++ __FILE__ macro werkt wanneer deze is gebruikt om het bestandspad op te halen van een bestand waarin deze is genoemd.

Nu gaan we de macro C++ __FILE__ gebruiken om het bestandspad of de naam van een ander bestand op te halen dan het bestand waaraan we momenteel werken. We hebben dus hetzelfde bestand macro.cc geopend in de GNU Nano-editor om de code bij te werken. We hebben de standaard input-output-header met het sleutelwoord include toegevoegd en een main()-functie geïnitialiseerd met het integer-retourtype.

Binnen de methode main() is de first print-instructie dezelfde als de oude om het huidige bestandspad te krijgen waaraan we momenteel werken. Daarna hebben we het sleutelwoord #line gebruikt met een andere bestandsnaam, d.w.z. 'new.txt' op de volgende opeenvolgende regel. Dit is om het andere bestand op te geven dan het huidige bestand waarvoor we de naam of een pad krijgen. Het volgende printf statement is gebruikt om het pad van een bestand 'new.txt' af te drukken met behulp van een C++ __FILE__ macro. Sla uw nieuw bijgewerkte code op om ongemak tijdens het compileren te voorkomen. Gebruik hiervoor 'Ctrl + S'.

Nadat u het bijgewerkte bestand hebt opgeslagen, sluit u het af via 'Ctrl+X' op uw toetsenbord. Nu zijn we terug op het shell-scherm.

Laten we het bijgewerkte bestand compileren. Gebruik hiervoor de g++ compiler met de naam van een bestand macro.cc. Voer na de succesvolle compilatie de code uit met de opdracht './a.out' in de console. De uitvoer toont eerst het pad naar een huidig ​​bestand, daarna het pad naar het andere bestand, 'new.txt' is weergegeven op het shell-scherm. Kijk hoe gemakkelijk het is om de __FILE__ macro te gebruiken om het bestandspad op de shell weer te geven.

Voorbeeld 03:

Laten we eens kijken naar de __LINE__ macro samen met de __FILE__ macro in C++. De macro __LINE__ geeft het regelnummer weer van het bestand waarop de macro is gebruikt. Open dus hetzelfde bestand en werk beide printf-statements bij. Vóór de C++ __LINE__ macro hebben we de C++ __LINE__ macro toegevoegd. Deze __LINE__macro krijgt het regelnummer van een huidig ​​bestand waarbij de __FILE__ als eerste komt. Terwijl de volgende __LINE__ macro het eerste regelnummer van het andere bestand krijgt omdat we het regelnummer met de bestandsnaam al in de code hebben vermeld.

Na het opslaan en afsluiten van het bestand zijn we teruggekeerd naar de shell-terminal. We gebruiken dezelfde opdracht g++ om de C++ macro.cc-bestandscode te compileren. De succesvolle compilatie leidt tot het uitvoeringscommando. Nu wordt hier het commando './a.out' gebruikt om dit te doen. De uitvoering vertelt ons dat het eerste bestand, d.w.z. het huidige bestand in regel 3, terwijl de __FILE__ macro op de eerste regel staat van het andere bestand dat in de code wordt genoemd.

Conclusie:

Dit artikel bevat de definitie van macro's en bespreekt het gebruik van de C++ __FILE__ macro in het Ubuntu 20.04-systeem. De C++ __LINE__ macro is ook besproken in enkele voorbeelden om de werking van de C++ __FILE__ macro meer te illustreren. Kortom, we hebben goede hoop dat dit artikel u zal helpen met de C++ __FILE__macro op zijn best.