C++ __FILE__ makro

C File Makro



Makroene er et stykke kode i et eller annet skript som har et bestemt navn. Når noen av makroene ble utført, blir koden bak dem utført for å utføre en bestemt oppgave. Akkurat som det er __FILE__ en makro som brukes i C++-språket for å få banen til en bestemt fil. Så i dag i denne veiledningen vil vi diskutere hvordan en C++ __FILE__-makro fungerer.

Eksempel 01:

La oss ta det første eksemplet på __FILE__ makro i C++ ved å starte terminalkonsollapplikasjonen. Du bruker kanskje snarveien 'Ctrl+Alt+T' for å gjøre det. En annen måte å åpne skallet på er å bruke menyen Aktivitetsområdet hvis du har glemt hurtigtasten. Etter at terminalkonsollen er lansert på skjermen, prøv å lage en ny c++-fil for å lage kode i den. En fil kan opprettes med en enkel 'touch'-spørring, som vist i det vedlagte bildet nedenfor. Navnet på en nyopprettet fil må angis med nøkkelordet 'touch'.







Det må være installert et redigeringsprogram på ditt Ubuntu 20.04 Linux-system for å kunne bruke det til å kode og åpne de nyopprettede filene. De mest anbefalte redaktørene som er viden kjent blant Linux-brukere er GNU Nano og Vim editor. Annet enn det kan tekstredigeringsprogrammet også brukes i tilfelle begge de tidligere nevnte redaktørene ikke fungerer. Så vi har allerede installert GNU Nano-editoren. Dermed vil vi bruke den til å åpne og redigere filen for å lage kode. Bruk nøkkelordet 'nano' sammen med filnavnet for å få redigeringsprogrammet til å fungere.





Nå er den nyopprettede C++-filen macro.cc klar for koding i editoren. La oss begynne å implementere C++-kode mens vi implementerer denne artikkelen for å se hvordan __FILE__-makroen fungerer. Vi har startet C++-koden vår ved å legge til standard input-output-overskriften øverst på den. Nøkkelordet 'inkluder' har blitt brukt med hash-tegnet for å gjøre det. Uten denne overskriften vil ikke inndata og utdata fra C++-koden fungere på konsollen ved kompilering og kjøring.





Main()-metoden er grunnpilaren i koden vår ettersom utførelsen starter fra den og slutter i den. Innenfor main()-metoden vil selve arbeidet gjøres. Vi har brukt en enkeltlinjekode i vår main()-metode for å beskrive funksjonaliteten til __FILE__-makroen. Så printf-setningen har blitt brukt her, og tar de to verdiene som argumenter, dvs. strengen tar filnavnet og makrofunksjonen.

Makroen __FILE__ brukes her for å hente gjeldende filbane eller navnet. Mens '%S' brukes til å skrive ut gjeldende bane til en fil eller navnet i en streng. Du må lagre koden før kjøringen ved hjelp av en 'Ctrl+S'-snarvei. Nå er koden lagret, prøv å komme tilbake til skallterminalen ved å bruke 'Ctrl+X'-snarveien.



Når vi er ferdige med C++-koden for __FILE__-makroen, la oss begynne kompileringen av C++-koden. For kompileringen har vi allerede installert g++-kompilatoren for å kompilere C++-koden. Så, g++ kompilatoren har blitt brukt i terminalen for å kompilere filen 'macro.cc'. Ved kompilering returnerer den ingenting, noe som indikerer at C++-koden er inne i macro.cc-filen er semantisk korrekt. Etter kompileringen kommer svingene for utførelse av en kode. For å kjøre kodefilen pleier vi å bruke den enkle spørringen './.aout'. Når vi kjører filen macro.cc, har vi fått navnet på en fil som i retur. Dette er hvordan C++ __FILE__ makroen fungerer.

Eksempel 02:

La oss ha et annet eksempel å gå dypt ned for å se på funksjonaliteten til C++ __FILE__-makroen i Ubuntu 20.04-systemet. Som vi har sett hvordan C++ __FILE__-makroen fungerer når den har blitt brukt til å hente filbanen til en fil der den er nevnt.

Nå vil vi bruke C++ __FILE__-makroen for å få filbanen eller navnet på en annen fil enn filen vi jobber med. Så vi har åpnet den samme filen macro.cc i GNU Nano-editoren for å oppdatere koden. Vi har lagt til standard input-output header med include nøkkelord og initialisert en main() funksjon med heltallsreturtypen.

Innenfor main()-metoden er den første print-setningen den samme som den gamle for å få den gjeldende filbanen som vi jobber med. Etter det har vi brukt #line nøkkelordet med et annet filnavn, dvs. 'new.txt' på neste påfølgende linje. Dette er for å spesifisere en annen fil enn den gjeldende filen som vi skal få navnet eller en bane for. Den neste printf-setningen har blitt brukt til å skrive ut banen til en fil 'new.txt' ved hjelp av en C++ __FILE__ makro. Lagre den nylig oppdaterte koden for å unngå ulemper ved kompileringstidspunktet. Bruk 'Ctrl+S' for å gjøre det.

Etter å ha lagret den oppdaterte filen, avslutter du den via 'Ctrl+X' fra tastaturet. Nå er vi tilbake på skallskjermen.

La oss kompilere den oppdaterte filen. Bruk g++ kompilator for å gjøre det med navnet på en fil macro.cc. Etter vellykket kompilering, kjør koden med kommandoen './a.out' i konsollen. Utdataene viser banen til en gjeldende fil først, deretter har banen til den andre filen, 'new.txt' blitt vist på skallskjermen. Se hvor enkelt det er å bruke makroen __FILE__ for å vise filbanen på skallet.

Eksempel 03:

La oss ta en titt på __LINE__-makroen sammen med __FILE__-makroen i C++. Makroen __LINE__ vil vise linjenummeret til filen som makroen er brukt på. Så åpne den samme filen og oppdater begge printf-setningene. Før C++ __LINE__-makroen har vi lagt til C++ __LINE__-makroen. Denne __LINE__makroen får linjenummeret til en gjeldende fil der __FILE__ kommer først. Mens neste __LINE__ makro vil få det første linjenummeret til den andre filen fordi vi allerede har nevnt linjenummeret med filnavnet i koden.

Etter å ha lagret og avsluttet filen, har vi returnert til shell-terminalen. Vi bruker den samme g++-kommandoen for å kompilere C++ macro.cc-filkoden. Den vellykkede kompileringen fører til utførelseskommandoen. Nå brukes kommandoen './a.out' her for å gjøre det. Utførelsen forteller oss at den første filen, dvs. den gjeldende filen i linje 3, mens makroen __FILE__ er på den første linjen i den andre filen nevnt i koden.

Konklusjon:

Denne artikkelen inneholder definisjonen av makroer og diskuterer bruken av C++ __FILE__-makroen i Ubuntu 20.04-systemet. C++ __LINE__-makroen har også blitt diskutert i noen eksempler for å illustrere hvordan C++ __FILE__-makroen fungerer mer. For å oppsummere har vi et stort håp om at denne artikkelen vil hjelpe deg med C++ __FILE__-makroen på sitt beste.