Selles õpetuses tutvustatakse teile c eeltöötlejaid ja õpitakse näidete abil kasutama #include, #define ja tingimuslikku kompileerimist.

C eeltöötlusprotsessor on makro eeltöötleja (võimaldab teil makrosid määratleda), mis muudab teie programmi enne selle kompileerimist. Need teisendused võivad olla päisefaili lisamine, makro laiendused jne.
Kõik eeltöötlemise direktiivid algavad #sümboliga. Näiteks,
 #define PI 3.14
Mõned C-eelprotsessori tavalised kasutusalad on:
Sealhulgas päisefailid: #include
#includeEeltöötluse kasutatakse hulka kaudu faile C programmid. Näiteks,
 #include 
Siin stdio.hon päisefail. #includeEeltöötluse direktiiv asendab eespool kooskõlas sisu stdio.hkaudu faili.
See on põhjus, miks peate kasutama #include enne, kui saate kasutada selliseid funktsioone nagu scanf()ja printf().
Selle eeltöötlusdirektiivi abil saate luua ka oma päisefaili, mis sisaldab funktsiooni deklaratsiooni ja lisada selle oma programmi.
 #include "my_header.h"
Päisefailide kasutamise kohta lisateabe saamiseks külastage seda lehte.
Makrod, mis kasutavad #define
Makro on koodijupp, millele antakse nimi. #defineEeltöötlusdirektiivi abil saate C-s makro defineerida .
Siin on näide.
 #define c 299792458 // speed of light
Siin, kui kasutame programmis c, asendatakse see tähisega 299792458.
Näide 1: #define preprocessor
 #include #define PI 3.1415 int main() ( float radius, area; printf("Enter the radius: "); scanf("%f", &radius); // Notice, the use of PI area = PI*radius*radius; printf("Area=%.2f",area); return 0; ) 
Funktsioon nagu makrod
Samuti saate määratleda makrod, mis töötavad sarnaselt funktsioonikutsega. See on tuntud kui funktsioonilaadsed makrod. Näiteks,
 #define circleArea(r) (3.1415*(r)*(r))
Iga kord, kui programm kohtab circleArea(argument), asendatakse see nimega (3.1415*(argument)*(argument)).
Oletame, et me läbisime argumendina 5, see laieneb järgmiselt:
 circleArea(5) expands to (3.1415*5*5)
Näide 2: eelprotsessori #define kasutamine
 #include #define PI 3.1415 #define circleArea(r) (PI*r*r) int main() ( float radius, area; printf("Enter the radius: "); scanf("%f", &radius); area = circleArea(radius); printf("Area = %.2f", area); return 0; )
Makrode ja #define preprocessori kohta lisateabe saamiseks külastage seda lehte.
Tingimuslik koostamine
C-programmeerimises saate eeltöötlejat juhendada, kas lisada koodiplokk või mitte. Selleks saab kasutada tingimuslikke direktiive.
See sarnaneb ifühe suurema erinevusega avaldusega.
ifAvaldus testitakse täitmise ajal aega, et vaadata, kas koodiplokk tuleks ellu või mitte arvestades, et conditionals kasutatakse lisada (või jätke) ploki koodi oma programmi enne täitmist.
Tingimuslike kasutusalad
- kasutage erinevat koodi sõltuvalt masinast, opsüsteemist
- kompileerida sama lähtefail kahes erinevas programmis
- teatud kood programmist välja jätta, kuid säilitada see edaspidi viitena
Kuidas kasutada tingimuslikku?
Tingimusliku, #ifdef, #if, #defined, #elseja #elseifdirektiivid kasutatakse.
#ifdef direktiiv
 #ifdef MACRO // conditional codes #endif 
Siin lisatakse tingimuslikud koodid programmi ainult siis, kui MACRO on määratletud.
#if, #elif ja #else direktiiv
 #if expression // conditional codes #endif 
Siin on avaldis täisarvu väljend (võivad olla täisarvud, märgid, aritmeetiline avaldis, makrod ja nii edasi).
Tingimuslikud koodid lisatakse programmi ainult juhul, kui avaldise väärtus on nullist erinev.
Valikulist #elsedirektiivi saab kasutada koos #ifdirektiiviga.
 #if expression conditional codes if expression is non-zero #else conditional if expression is 0 #endif 
Võite lisada ka pesastatud tingimusliku oma #if… #elselehe#elif
 #if expression // conditional codes if expression is non-zero #elif expression1 // conditional codes if expression is non-zero #elif expression2 // conditional codes if expression is non-zero #else // conditional if all expressions are 0 #endif 
#defined
Spetsiaalset operaatorit #defined kasutatakse selleks, et testida, kas teatud makro on määratletud või mitte. Seda kasutatakse sageli direktiiviga #if.
 #if defined BUFFER_SIZE && BUFFER_SIZE>= 2048 // codes  
Eelmääratud makrod
Siin on mõned C-programmeerimisel eelnevalt määratletud makrod.
| Makro | Väärtus | 
|---|---|
| __DATE__ | Praegune kuupäeva sisaldav string | 
| __FILE__ | String, mis sisaldab faili nime | 
| __LINE__ | Täisarv, mis tähistab praegust rea numbrit | 
| __STDC__ | Kui järgitakse ANSI standardit C, on väärtus nullist täisarv | 
| __TIME__ | Praegune kuupäeva sisaldav string. | 
Näide 3: hankige praegune aeg, kasutades __TIME__
Järgmine programm väljastab __TIME__makro abil praeguse aja .
 #include int main() ( printf("Current time: %s",__TIME__); )
Väljund
Praegune kellaaeg: 19:54:39
Soovitatavad lugemised
- Liini juhtimine
- Pragmasid
- Eeltöötleja väljund
- Muud direktiivid








