See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Preprocessing - Wikipedia

Preprocessing

Da Wikipedia, l'enciclopedia libera.

Il preprocessing è l'attività effettuata dal preprocessore su un codice sorgente, genericamente prima di che questo codice venga passato ad un compilatore. Questa attività è regolata da direttive al preprocessore. In generale l'attività prevede la sostituzione di testo all'interno del codice sorgente, come:

  • espansione di macro: All'interno del sorgente alcune parole chiave, chiamate macro, vengono sostituite da un testo corrispondente. Ad esempio in questo codice abbiamo definito la macro MAXBYTES:
#define MAXBYTES 80 
int main(int argc, char * argv[]) 
{
 char buffer[MAXBYTES];
 ...
}

Il preprocessore si occuperà di sostituire questa macro con il valore 80:

 ...
 char buffer[80];
 ...

  • inclusione di altri file: all'interno del codice può esserci una direttiva di inclusione di file, ovvero si indica al preprocessore di includere in questo sorgente dell'altro codice sorgente proveniente da un altro file. Diventa utile quando si divide il codice in più file, per mantenere il codice sorgente ordinato.
  • selezione condizionale: in base ad un certa condizione del codice può essere incluso o meno, o in alcuni casi la scelta viene fatta tra due gruppi di codice. Ad esempio:
#define DEBUG
...
#ifdef DEBUG
 printf(...);
#endif
...

Nel nostro esempio il preprocessore lascera la linea printf(...) se e solo se la macro DEBUG è stata definita. Questa direttiva è utile quando all'interno del codice si inseriscono linee per il debugging dell'applicazione, come ad esempio linee di stampa di valori di variabile; se in alcuni casi non necessitiamo di stampare queste linee (in assenza di direttive) saremmo costretti a commentare le linee di debugging, ed eventualmente scommentarle in caso di necessità. Un altro aspetto di utilità è l'adattamento alla piattaforma. Uno stesso codice potrebbe dover girare su un sistema Unix o un sistema Windows, con chiamate a librerie diverse. La definizione di queste direttive potrebbe aiutare in questo compito.

[modifica] Alcuni esempi di direttive di preprocessing

Nel linguaggio C:

#define, #include, #if/#else/#endif, #ifdef, altre...

Nel linguaggio C#:

#warning, #error, #line, #region, #endregion, altre...


[modifica] Voci correlate

Altre lingue


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -