*   >> lukeminen koulutus Artikkelit >> science >> programming

Johdatus makrot C

Lähes jokainen jo määritelty vakioksi C käyttäen #define CONST 12345

mutta vain pieni ryhmä todella tietää, mitä se linja ei ja miten tutkia näitä ominaisuuksia. Jokainen rivi, joka alkaa # ei käsitellä C-kääntäjä, mutta C ennalta prosessori, joka jäsentää nämä rivit ja tuottaa koodin, joka tehokkaasti laaditaan. GCC, näet tuloksen esikäsittely vaiheessa käyttäen gcc -E src.cWhat määrittää

direktiivi ei on tehdä esiprosessori korvata kaikki esiintymät määritelmän mukaan seuraava teksti sen.

Korvaaminen on puhtaasti teksti- ja on muutamia temppuja, jotka ovat todella mahtava. Kerron niistä kaksi: toiminto kaltainen makrot ja multi linja macros.Function kaltainen macrosTo tehdä toiminto kaltainen makro vain laittaa tavallista suluissa nimen jälkeen makro ja seuraa nimi väitteensä. Perustelut korvataan täysin merkkijonoa että ohitat makro. Nopea esimerkki #define print_int (x) printf ("Int% d \\ n", x); Kun nimeltään print_int (30), makro laajenee toprintf ("Int% d \\ n", 30); Multiline macrosA MultiLine makro voidaan rakentaa laittamalla \\ lopussa kaikki rivin makro.

Tämä merkki osoittaa, että makro jatkuu seuraavalla rivillä. #define VAIHTO (, b) {\\ ^ = b; \\ B ^ =; \\ ^ = B; \\} Suluissa tarvitaan, koska että lohko on arvioitava yhtenä opetusta. Ilman sitä seuraavat epäonnistuu:

jos (> b) VAIHTO (, b) Makrot ovat dangerousMacros tuottaa virheitä, joita on vaikea debug ja hankala laastari. Mahdolliset ansat ovat monet (virheitä etusija toimijoiden, itsensä viitataan makrot, jne). Tämä sivu on ne kaikki todella hyvin dokumentoitu. Tämä oli pieni johdatus kehittyneempiä käyttöä C makroja.

Esikäsittelijän on tehokas ominaisuus ja voidaan tehdä paljon hyvää kamaa. Jos haluat tietää enemmän se voi vierailla tällä sivustolla.


Copyright © 2008 - 2016 lukeminen koulutus Artikkelit,https://koulutus.nmjjxx.com All rights reserved.