C++ __FILE__ makro

C File Makro



Makroerne er et stykke kode i et eller andet script med et bestemt navn. Når nogen af ​​makroerne blev udført, udføres koden bag dem for at udføre en bestemt opgave. Ligesom det er __FILE__ en makro, der bruges i C++ sproget til at få stien til en bestemt fil. Så i dag i denne guide vil vi diskutere arbejdet med en C++ __FILE__ makro.

Eksempel 01:

Lad os tage det første eksempel på __FILE__ makro i C++ ved at starte terminalkonsolapplikationen. Du bruger muligvis genvejen 'Ctrl+Alt+T' for at gøre det. En anden måde at åbne skallen på er at bruge menuen Aktivitetsområdet, hvis du har glemt genvejstasten. Efter at terminalkonsollen er startet på din skærm, kan du prøve at oprette en ny c++-fil for at lave kode i den. En fil kan oprettes med en simpel 'touch'-forespørgsel, som vist på det vedhæftede billede nedenfor. Navnet på en nyoprettet fil skal angives med nøgleordet 'touch'.







Der skal være en editor installeret på dit Ubuntu 20.04 Linux-system for at kunne bruge det til kodning og åbning af de nyoprettede filer. De mest anbefalede redaktører, der er kendt blandt Linux-brugere, er GNU Nano og Vim editor. Bortset fra det kan teksteditoren også bruges i tilfælde af at begge de tidligere nævnte editorer ikke virker. Så vi har allerede installeret GNU Nano-editoren. Derfor vil vi bruge den til at åbne og redigere filen for at lave kode. Brug nøgleordet 'nano' sammen med filnavnet for at få editoren til at fungere.





Nu er den nyoprettede C++-fil macro.cc klar til kodning i editoren. Lad os begynde at implementere C++-kode, mens vi implementerer denne artikel for at se, hvordan __FILE__-makroen fungerer. Vi har startet vores C++-kode ved at tilføje standard input-output-headeren øverst i den. Nøgleordet 'inkluder' er blevet brugt med hash-tegnet for at gøre det. Uden denne header vil input og output af C++-koden ikke fungere på konsollen ved kompilering og udførelse.





Main()-metoden er den grundlæggende søjle i vores kode, da udførelsen starter fra den og slutter i den. Inden for main() metoden vil selve arbejdet blive udført. Vi har brugt en enkelt linje kode i vores main() metode til at beskrive funktionaliteten af ​​__FILE__ makro. Så printf-sætningen er blevet brugt her, idet den tager de to værdier som argumenter, dvs. strengen tager filnavnet og makrofunktionen.

Makroen __FILE__ bruges her til at hente den aktuelle filsti eller dens navn. Mens '%S' bruges til at udskrive den aktuelle sti til en fil eller dens navn i en streng. Du skal gemme din kode før udførelsen ved hjælp af en 'Ctrl+S' genvej. Nu er koden gemt, prøv at komme tilbage til shell-terminalen ved hjælp af 'Ctrl+X'-genvejen.



Da vi er færdige med C++-koden til __FILE__-makroen, lad os begynde kompileringen af ​​C++-koden. Til kompileringen har vi allerede installeret g++-kompileren for at kompilere C++-koden. Så g++ compileren er blevet brugt i terminalen til at kompilere filen 'macro.cc'. Ved kompilering returnerer den intet, hvilket indikerer, at C++-koden er inde i macro.cc-filen er semantisk korrekt. Efter kompileringen kommer turene til udførelse af en kode. For at køre kodefilen har vi en tendens til at bruge den simple forespørgsel './.aout'. Når vi kører filen macro.cc, har vi fået navnet på en fil som til gengæld. Sådan fungerer C++ __FILE__ makroen.

Eksempel 02:

Lad os have et andet eksempel at gå dybt ned for at se på funktionaliteten af ​​C++ __FILE__-makroen i Ubuntu 20.04-systemet. Som vi har set, hvordan C++ __FILE__ makroen fungerer, når den er blevet brugt til at hente filstien til en fil, hvor den er blevet nævnt.

Nu vil vi bruge C++ __FILE__ makroen til at få filstien eller navnet på en anden fil end den fil, vi i øjeblikket arbejder på. Så vi har åbnet den samme fil macro.cc i GNU Nano-editoren for at opdatere koden. Vi har tilføjet standard input-output-headeren med include nøgleord og initialiseret en main() funktion med heltals returtypen.

Indenfor main()-metoden er den første print-sætning den samme som den gamle for at få den aktuelle filsti, som vi i øjeblikket arbejder på. Derefter har vi brugt #line nøgleordet med et andet filnavn, dvs. 'new.txt' på næste linie i træk. Dette er for at specificere den anden fil end den aktuelle fil, som vi vil få dens navn eller en sti til. Den næste printf-sætning er blevet brugt til at udskrive stien til en fil 'new.txt' ved hjælp af en C++ __FILE__ makro. Gem din nyligt opdaterede kode for at undgå ulejlighed på kompileringstidspunktet. Brug 'Ctrl+S' for at gøre det.

Når du har gemt den opdaterede fil, skal du afslutte den via 'Ctrl+X' fra dit tastatur. Nu er vi tilbage på shell-skærmen.

Lad os kompilere den opdaterede fil. Brug g++ compiler til at gøre det med navnet på en fil macro.cc. Efter den vellykkede kompilering skal du køre koden med kommandoen './a.out' i konsollen. Outputtet viser stien til en aktuel fil først, derefter er stien til den anden fil, 'new.txt' blevet vist på shell-skærmen. Se hvor nemt det er at bruge makroen __FILE__ til at vise filstien på skallen.

Eksempel 03:

Lad os se på makroen __LINE__ sammen med makroen __FILE__ i C++. Makroen __LINE__ viser linjenummeret på den fil, hvor makroen er blevet brugt. Så åbn den samme fil og opdater begge printf-sætningerne. Før C++ __LINE__-makroen har vi tilføjet C++ __LINE__-makroen. Denne __LINE__makro får linjenummeret på en aktuel fil, hvor __FILE__ kommer først. Mens den næste __LINE__ makro vil få det første linjenummer på den anden fil, fordi vi allerede har nævnt linjenummeret med filnavnet i koden.

Efter at have gemt og afsluttet filen, er vi vendt tilbage til shell-terminalen. Vi bruger den samme g++ kommando til at kompilere C++ macro.cc filkoden. Den vellykkede kompilering fører til udførelseskommandoen. Nu bruges kommandoen './a.out' her til at gøre det. Udførelsen fortæller os, at den første fil, dvs. den aktuelle fil i linje 3, mens makroen __FILE__ er på den første linje i den anden fil, der er nævnt i koden.

Konklusion:

Denne artikel indeholder definitionen af ​​makroer og diskuterer brugen af ​​C++ __FILE__ makro i Ubuntu 20.04-systemet. C++ __LINE__ makroen er også blevet diskuteret i nogle eksempler for at illustrere arbejdet med C++ __FILE__ makroen mere. For at opsummere, har vi et stort håb om, at denne artikel vil hjælpe dig med C++ __FILE__-makroen, når den er bedst.