C++ __FILE__ -makro

C File Makro



Makrot ovat koodinpätkä jossain skriptissä, jolla on tietty nimi. Kun jokin makroista suoritetaan, niiden takana oleva koodi suoritetaan tietyn tehtävän suorittamiseksi. Juuri näin, __FILE__ on makro, jota käytetään C++-kielessä polun saamiseksi tiettyyn tiedostoon. Joten tänään tässä oppaassa keskustelemme C++ __FILE__ -makron toiminnasta.

Esimerkki 01:

Otetaan ensimmäinen esimerkki __FILE__-makrosta C++:ssa käynnistämällä päätekonsolisovellus. Saatat käyttää pikanäppäintä “Ctrl+Alt+T” tehdäksesi niin. Toinen tapa avata kuori on käyttää valikkoa Toimintoalue, jos unohdit pikanäppäimen. Kun päätekonsoli on käynnistetty näytölläsi, yritä luoda uusi c++-tiedosto koodin tekemiseksi siihen. Tiedosto voidaan luoda yksinkertaisella 'kosketus'-kyselyllä, kuten alla olevassa liitteenä olevassa kuvassa näkyy. Äskettäin luodun tiedoston nimi on annettava 'touch'-avainsanalla.







Ubuntu 20.04 Linux -järjestelmääsi täytyy olla asennettuna jokin editori, jotta voit käyttää sitä koodaamiseen ja juuri luotujen tiedostojen avaamiseen. Linux-käyttäjien keskuudessa suosituimmat editorit ovat GNU Nano ja Vim editor. Muutoin tekstieditoria voidaan käyttää myös siinä tapauksessa, että molemmat aiemmin mainitut editorit eivät toimi. Joten olemme jo asentaneet GNU Nano -editorin. Siksi käytämme sitä tiedoston avaamiseen ja muokkaamiseen koodin tekemiseksi. Käytä 'nano'-avainsanaa yhdessä tiedostonimen kanssa saadaksesi editorin toimimaan.





Nyt juuri luotu C++-tiedosto macro.cc on valmis koodattavaksi editorissa. Aloitetaan C++-koodin käyttöönotto samalla kun toteutamme tätä artikkelia nähdäksemme __FILE__-makron toiminnan. Olemme aloittaneet C++-koodimme lisäämällä sen yläosaan standardin input-output otsikon. Avainsanaa 'include' on käytetty hash-merkin kanssa tähän. Ilman tätä otsikkoa C++-koodin syöttö ja tulostus eivät toimi konsolissa käännös- ja suoritusvaiheessa.





Main()-menetelmä on koodimme peruspilari, koska suoritus alkaa siitä ja päättyy siihen. Main()-metodin sisällä varsinainen työ tehdään. Olemme käyttäneet yksirivistä koodia main()-menetelmässämme kuvaamaan __FILE__-makron toimivuutta. Joten tässä on käytetty printf-käskyä, jossa kaksi arvoa on otettu argumenteiksi, eli merkkijono ottaa tiedostonimen ja makrofunktion.

__FILE__-makroa käytetään tässä hankkimaan nykyinen tiedostopolku tai sen nimi. Kun '%S':tä käytetään tulostamaan tiedoston nykyinen polku tai sen nimi merkkijonossa. Sinun on tallennettava koodi ennen suoritusta “Ctrl+S”-pikanäppäimen avulla. Nyt koodi on tallennettu, yritä palata shell-päätteeseen 'Ctrl+X'-pikanäppäimellä.



Kuten olemme tehneet C++-koodin kanssa __FILE__-makrolle, aloitetaan C++-koodin kääntäminen. Kokoonpanoa varten olemme jo asentaneet g++-kääntäjän kääntämään C++-koodin. Joten g++-kääntäjää on käytetty päätteessä tiedoston 'macro.cc' kääntämiseen. Käännettäessä se ei palauta mitään, mikä osoittaa, että macro.cc-tiedoston sisällä oleva C++-koodi on semanttisesti oikein. Käännöksen jälkeen vuoro tulee koodin suorittamiseen. Kooditiedoston suorittamiseksi käytämme yksinkertaista './.aout' -kyselyä. Kun suoritamme tiedoston macro.cc, olemme saaneet vastineeksi tiedoston nimen. Näin C++ __FILE__ -makro toimii.

Esimerkki 02:

Otetaan toinen esimerkki syvälle katsomaan C++ __FILE__ -makron toimintoja Ubuntu 20.04 -järjestelmässä. Kuten olemme nähneet, kuinka C++ __FILE__ -makro toimii, kun sitä on käytetty hakemaan sellaisen tiedoston tiedostopolku, jossa se on mainittu.

Nyt käytämme C++ __FILE__ -makroa saadaksemme tiedostopolun tai nimen muulle tiedostolle kuin parhaillaan työskentelevälle tiedostolle. Olemme siis avanneet saman tiedoston macro.cc GNU Nano -editorissa koodin päivittämiseksi. Olemme lisänneet standardin input-output otsikon include-avainsanalla ja alustaneet main()-funktion kokonaisluvun palautustyypillä.

Main()-menetelmässä ensimmäinen print-lause on sama kuin vanha, jotta saadaan nykyinen tiedostopolku, jota parhaillaan työskentelemme. Sen jälkeen olemme käyttäneet avainsanaa #line toisella tiedostonimellä, eli 'new.txt' seuraavalla peräkkäisellä rivillä. Tällä määritetään muu tiedosto kuin nykyinen tiedosto, jolle saamme sen nimen tai polun. Seuraavaa printf-lausetta on hyödynnetty tiedoston “new.txt” polun tulostamiseen C++ __FILE__ -makron avulla. Tallenna äskettäin päivitetty koodi välttääksesi haitat käännöshetkellä. Käytä 'Ctrl+S' tehdäksesi sen.

Kun olet tallentanut päivitetyn tiedoston, sulje se näppäimistön “Ctrl+X”-näppäimillä. Nyt olemme takaisin shell-näytöllä.

Käännetään päivitetty tiedosto. Käytä g++-kääntäjää tehdäksesi sen tiedoston nimellä macro.cc. Kun käännös on onnistunut, suorita koodi konsolin “./a.out”-komennolla. Tulos näyttää ensin polun nykyiseen tiedostoon, sitten polun toiseen tiedostoon, 'new.txt' on esitetty shell-näytössä. Katso kuinka helppoa on käyttää __FILE__-makroa tiedostopolun näyttämiseen komentotulkissa.

Esimerkki 03:

Katsotaanpa __LINE__-makroa ja __FILE__-makroa C++:ssa. __LINE__-makro näyttää sen tiedoston rivinumeron, jossa makroa on käytetty. Joten avaa sama tiedosto ja päivitä molemmat printf-lauseet. Ennen C++ __LINE__ -makroa olemme lisänneet C++ __LINE__ -makron. Tämä __LINE__makro saa nykyisen tiedoston rivinumeron, jossa __FILE__ tulee ensin. Seuraava __LINE__-makro saa toisen tiedoston ensimmäisen rivin numeron, koska olemme jo maininneet rivinumeron tiedostonimen kanssa koodissa.

Tallennuksen ja tiedoston sulkemisen jälkeen olemme palanneet shell-päätteeseen. Käytämme samaa g++-komentoa C++-macro.cc-tiedostokoodin kääntämiseen. Onnistunut käännös johtaa suorituskomentoon. Nyt käytetään './a.out'-komentoa tähän. Suoritus kertoo, että ensimmäinen tiedosto, eli nykyinen tiedosto rivillä 3, kun taas __FILE__-makro on toisen koodissa mainitun tiedoston ensimmäisellä rivillä.

Johtopäätös:

Tämä artikkeli sisältää makrojen määritelmän ja käsittelee C++ __FILE__ -makron käyttöä Ubuntu 20.04 -järjestelmässä. C++ __LINE__ -makroa on myös käsitelty joissakin esimerkeissä C++ __FILE__ -makron toiminnan havainnollistamiseksi enemmän. Yhteenvetona totean, että meillä on suuri toive, että tämä artikkeli auttaa sinua C++ __FILE__-makrossa parhaimmillaan.