C Programming Tutorial Pjesa 2 - Paraprocesorët


Në pjesën e parë të serisë sonë të vazhdueshme të mësimeve të programimit C, ne prekëm shkurtimisht fazën e parapërpunimit. Në këtë tutorial, ne do ta diskutojmë atë në pak më shumë detaje, në mënyrë që të keni një ide bazë për të përpara se të mësoni aspekte të tjera të programimit C.

Parapërpunimi është zakonisht faza e parë e përpilimit të programit, ku çdo gjë që fillon me një # përpunohet. Le të marrim një kod bazë shembull.

#include <stdio.h>

int main (void)
{
    printf("\n Hello World \n");
    return 0;
}

Po, kjo është e njëjta pjesë e kodit që kemi përdorur në pjesën e parë të kësaj serie artikujsh. Këtu, është rreshti i parë që fillon me një hash #. Në terma laikë, rreshti #include siguron që përmbajtja e skedarit të kokës stdio.h të përfshihet në këtë program gjatë përpilimit.

Pra, ajo që ndodh në fazën e parapërpunimit është, kjo linjë zëvendësohet me përmbajtjen aktuale të skedarit të kokës. Ja se si duket kodi pas fazës së parapërpunimit:

Kështu që ju mund të shihni, gjithçka mbi disa rreshta kodi që kemi shkruar (shikoni në fund të pamjes së ekranit) është përmbajtja e stdio.h. Tani, unë nuk do të hyj në detaje se si arrita ta shoh kodin pas përpunimit paraprak, por kjo ishte për t'ju dhënë një ide të qartë se çfarë ndodh gjatë përpunimit paraprak.

Duke vazhduar, linjat që përfshijnë një skedar kokë nuk janë të vetmet që fillojnë me një hash (#). Ekziston edhe diçka e quajtur Macro që gjithashtu fillon me #. Pra, është e rëndësishme t'i diskutoni ato këtu (të paktën bazat e tyre).

Një makro nuk është gjë tjetër veçse një emër (zakonisht me shkronja të mëdha) që i referohet një pjese kodi. Makrot përcaktohen duke përdorur direktivën #define. Ja një shembull:

#include <stdio.h>
#define PRINT_HELLO_WORLD printf("\n Hello World \n");
int main (void)
{
    PRINT_HELLO_WORLD
PRINT_HELLO_WORLD
    return 0;
}

Pra, ne përcaktuam një makro PRINT_HELLO_WORLD me vlerë printf(\ Përshendetje Botë \); . Tani, kudo që të përdoret mirë ky emër makro në kod, ai do të zëvendësohet me vlerën e tij gjatë fazës së parapërpunimit. Këtu është kodi pas përpunimit paraprak:

Kështu, ju shihni që të dyja shfaqjet e makros u zëvendësuan nga vlera e saj në fazën e para-përpunimit. Sigurisht, ka disa detaje të tjera në lidhje me makrot që duhet të dini për t'i përdorur ato me sukses. Ne do t'i diskutojmë ato detaje në një pjesë të dedikuar Macro të kësaj serie mësimore.

Duke vazhduar, lloji i tretë i rreshtave që fillojnë me # janë #ifdef dhe #endif. Këto përdoren për përpilim të kushtëzuar. Për t'ju dhënë një ide të shpejtë, ka raste kur nuk dëshironi që një pjesë e kodit të përpilohet bazuar në një kusht të caktuar, në raste të tilla përdoren këto direktiva.

Ja një shembull:

#include <stdio.h>
#define PRINT_HELLO_WORLD printf("\n Hello World \n");

int main (void)
{
#ifdef CONDITION
    PRINT_HELLO_WORLD
#endif
    PRINT_HELLO_WORLD
    return 0;
}

Në kodin e mësipërm, meqenëse CONDITION nuk është përcaktuar askund, kështu që shfaqja e parë e PRINT_HELLO_WORLD do të hiqet nga kodi vetëm në fazën e parapërpunimit. Ja prova:

Kështu që mund të shihni vetëm një deklaratë printf pas fazës së parapërpunimit.

konkluzioni

Në këtë tutorial, ne diskutuam parapërpunimin për t'u dhënë fillestarëve të programimit C një ide bazë të asaj që ndodh gjatë kësaj faze. Tani, kaloni në pjesën 3 për të mësuar më tej rreth bazave të programimit C.