C++ makro __FILE__

C Makro File



Makri so del kode v nekem skriptu z določenim imenom. Ko se izvede kateri koli od makrov, se izvede koda za njimi za izvedbo določene naloge. Prav tako je __FILE__ makro, ki se uporablja v jeziku C++ za pridobitev poti do določene datoteke. Tako bomo danes v tem vodniku razpravljali o delovanju makra C++ __FILE__.

Primer 01:

Vzemimo prvi primer makra __FILE__ v C++ z zagonom aplikacije terminalske konzole. Morda za to uporabljate bližnjico »Ctrl+Alt+T«. Drug način za odpiranje lupine je uporaba menija Območje dejavnosti, če ste pozabili tipko za bližnjico. Ko se terminalska konzola zažene na vašem zaslonu, poskusite ustvariti novo datoteko C++, da v njej naredite kodo. Datoteko lahko ustvarite s preprosto poizvedbo »dotika«, kot je prikazano na spodnji sliki. Ime novo ustvarjene datoteke mora biti podano s ključno besedo 'touch'.







V vašem sistemu Ubuntu 20.04 Linux mora biti nameščen urejevalnik, da ga lahko uporabite za kodiranje in odpiranje novo ustvarjenih datotek. Najbolj priporočljiva urejevalnika, ki sta splošno znana med uporabniki Linuxa, sta GNU Nano in urejevalnik Vim. Razen tega lahko urejevalnik besedil uporabimo tudi v primeru, da oba prej omenjena urejevalnika ne delujeta. Tako smo urejevalnik GNU Nano že namestili. Tako ga bomo uporabili za odpiranje in urejanje datoteke za izdelavo kode. Uporabite ključno besedo »nano« skupaj z imenom datoteke, da bo urejevalnik deloval.





Zdaj je na novo ustvarjena datoteka C++ macro.cc pripravljena za kodiranje v urejevalniku. Začnimo izvajati kodo C++, ko izvajamo ta članek, da vidimo delovanje makra __FILE__. Kodo C++ smo začeli z dodajanjem standardne vhodno-izhodne glave na njen vrh. V ta namen je bila uporabljena ključna beseda »vključi« z znakom zrezek. Brez te glave vnos in izhod kode C++ ne bosta delovala na konzoli po prevajanju in izvajanju.





Metoda main() je osnovni steber naše kode, saj se izvajanje začne in konča v njej. Znotraj metode main() bo opravljeno dejansko delo. Za opis funkcionalnosti makra __FILE__ v naši metodi main() uporabljamo enovrstično kodo. Torej je bil tukaj uporabljen stavek printf, ki vzame dve vrednosti kot argumenta, tj. niz, ki prevzame ime datoteke in funkcijo makra.

Makro __FILE__ se tukaj uporablja za pridobitev trenutne poti datoteke ali njenega imena. Medtem ko se »%S« uporablja za izpis trenutne poti datoteke ali njenega imena v nizu. Pred izvedbo morate kodo shraniti s pomočjo bližnjice »Ctrl+S«. Zdaj je koda shranjena, poskusite se vrniti na terminal lupine z uporabo bližnjice »Ctrl+X«.



Ko smo končali s kodo C++ za makro __FILE__, začnimo s prevajanjem kode C++. Za prevajanje smo že namestili prevajalnik g++ za prevajanje kode C++. Torej je bil v terminalu uporabljen prevajalnik g++ za prevajanje datoteke »macro.cc«. Po prevajanju ne vrne ničesar, kar pomeni, da je koda C++ znotraj datoteke macro.cc semantično pravilna. Po prevajanju pride na vrsto izvajanje kode. Za zagon kodne datoteke običajno uporabljamo preprosto poizvedbo »./.aout«. Ko zaženemo datoteko macro.cc, dobimo v zameno ime datoteke as. Tako deluje makro C++ __FILE__.

Primer 02:

Oglejmo si še en primer, da se poglobimo v delovanje makra C++ __FILE__ v sistemu Ubuntu 20.04. Kot smo videli, kako deluje makro C++ __FILE__, ko je bil uporabljen za pridobivanje poti datoteke, v kateri je bil omenjen.

Zdaj bomo uporabili makro C++ __FILE__, da dobimo pot do datoteke ali ime datoteke, ki ni datoteka, na kateri trenutno delamo. Tako smo odprli isto datoteko macro.cc v urejevalniku GNU Nano, da posodobimo kodo. Dodali smo standardno vhodno-izhodno glavo s ključno besedo include in inicializirali funkcijo main() s celoštevilskim povratnim tipom.

Znotraj metode main() je prvi stavek za tiskanje enak staremu, da dobimo trenutno pot datoteke, na kateri trenutno delamo. Po tem smo uporabili ključno besedo #line z drugim imenom datoteke, tj. »new.txt« v naslednji zaporedni vrstici. S tem določimo datoteko, ki ni trenutna datoteka, za katero bomo pridobili njeno ime ali pot. Naslednji stavek printf je bil uporabljen za izpis poti do datoteke »new.txt« s pomočjo makra C++ __FILE__. Shranite novo posodobljeno kodo, da se izognete nevšečnostim med prevajanjem. Za to uporabite »Ctrl+S«.

Ko shranite posodobljeno datoteko, jo zaprite s tipko »Ctrl+X« na tipkovnici. Zdaj smo spet na lupinskem zaslonu.

Sestavimo posodobljeno datoteko. Za to uporabite prevajalnik g++ z imenom datoteke macro.cc. Po uspešnem prevajanju zaženite kodo z ukazom “./a.out” v konzoli. Izhod najprej prikaže pot do trenutne datoteke, nato pa pot do druge datoteke, »new.txt« je bila prikazana na lupinskem zaslonu. Poglejte, kako enostavno je uporabiti makro __FILE__ za prikaz poti datoteke v lupini.

Primer 03:

Oglejmo si makro __LINE__ skupaj z makrom __FILE__ v C++. Makro __LINE__ bo prikazal številko vrstice datoteke, v kateri je bil uporabljen makro. Torej odprite isto datoteko in posodobite oba stavka printf. Pred makrom C++ __LINE__ smo dodali makro C++ __LINE__. Ta __LINE__makro dobi številko vrstice trenutne datoteke, kjer je __FILE__ na prvem mestu. Medtem ko bo naslednji makro __LINE__ dobil številko prve vrstice druge datoteke, ker smo že omenili številko vrstice z imenom datoteke v kodi.

Po shranjevanju in zapiranju datoteke smo se vrnili v lupinski terminal. Za prevajanje kode datoteke C++ macro.cc uporabljamo isti ukaz g++. Uspešno prevajanje vodi do ukaza za izvedbo. Zdaj se za to uporablja ukaz »./a.out«. Izvedba nam pove, da je prva datoteka, tj. trenutna datoteka v vrstici 3, medtem ko je makro __FILE__ v prvi vrstici druge datoteke, omenjene v kodi.

Zaključek:

Ta članek vsebuje definicijo makrov in razpravlja o uporabi makra C++ __FILE__ v sistemu Ubuntu 20.04. O makru C++ __LINE__ smo razpravljali tudi v nekaterih primerih za večjo ponazoritev delovanja makra C++ __FILE__. Če povzamemo, močno upamo, da vam bo ta članek pomagal pri najboljšem makru C++ __FILE__.