Àêî èìåòî íà ôàéëà å
çàòâîðåíî â äâîéíè êàâè÷êè ñå ïîäðàçáèðà, ÷å òîâà å çàãëàâåí ôàéë, ñúçäàäåí îò
ïîòðåáèòåëÿ. Òúðñåíåòî ìó çàïî÷âà îò òåêóùàòà äèðåêòîðèÿ. Àêî íå áúäå íàìåðåí
òàì ñå ïðåãëåæäà ìíîæåñòâîòî íà ïðåäâàðèòåëíî äåôèíèðàíèòå ìåñòîïîëîæåíèÿ.
Îïöèÿòà -I ñúùî ðàáîòè ñúñ çàãëàâíè ôàéëîâå, äåôèíèðàíè îò
ïîòðåáèòåëÿ.
Âñåêè âêëþ÷åí ôàéë ìîæå ñúùî äà ñúäúðæà äèðåêòèâà #include.
Ïîðàäè òîâà å âúçìîæíî äàäåí çàãëàâåí ôàéë äà áúäå âêëþ÷åí íåêîëêîêðàòíî â
èçõîäåí ôàéë. Ìîãàò äà áúäàò èçïîëçóâàíè óñëîâíè äèðåêòèâè çà äà ñå ïðåäîòâðàòè
ìíîãîêðàòíàòà îáðàáîòêà íà äàäåí çàãëàâåí ôàéë. Íàïðèìåð,
#ifndef
STRING_H
#define STRING_H
/* String.h contents go here
*/
#endif
Óñëîâíàòà äèðåêòèâà #ifndef ïðèåìà ñòîéíîñò èñòèíà, êîãàòî
èìåòî, êîåòî ñëåäâà íå å äåôèíèðàíî âñå îùå. Êîãàòî óñëîâíàòà äèðåêòèâà ïðèåìå
ñòîéíîñò true ñúâêóïíîñòòà îò ðåäîâå äî #endif ñå ñ÷èòàò âêëþ÷åíè. Àêî óñëîâíàòà
äèðåêòèâà ïðèåìå ñòîéíîñò false, òåçè ðåäîâå ùå áúäàò
èãíîðèðàíè.
Äèðåêòèâàòà #define äåôèíèðà èìåòî, êîåòî ÿ ñëåäâà. Â òîçè
ñëó÷àé òÿ äåôèíèðà STRING_H. Àêî çàãëàâíèÿò ôàéë String.h ñå âêëþ÷âà îòíîâî
äèðåêòèâàòà #ifndef ùå ïðèåìå ñòîéíîñò false è ñúäúðæàíèåòî íà Stream.h íÿìà äà
áúäå âêëþ÷åíî ïîâòîðíî. Äèðåêòèâàòà #ifdef ïðèåìà ñòîéíîñò true, êîãàòî èìåòî,
çàïèñàíî ñëåä íåÿ, å äåôèíèðàíî. Íàïðèìåð,
#ifdef u3b2
/* system
specific code
for AT&T 3B ocmputers goes here */
#endif
#ifdef
sun
/* system spesific code
for Sun computers goes here
*/
#endif
Ñ++ ïðåäâàðèòåëíî äåôèíèðà èìåòî __cplusplus (äâå
ïîä÷åðòàâàùè òèðåíöà). Ïîòðåáèòåë, êîéòî æåëàå äà ñìåñâà ïðîãðàìè, íàïèñàíè íà Ñ
è Ñ++, òðÿáâà äà çàïèøå ñëåäíîòî:
#ifdef __cplusplus
extern min( int,
int );
int *pi = new int;
#else
extern min();
int
*pi;
#endif
Îïåðàòîðèòå ìåæäó äèðåêòèâèòå #else è #endif ùå áúäàò
âêëþ÷åíè àêî äèðåêòèâàòà #ifdef ïðèåìå ñòîéíîñò true. Ïðåäïðîöåñîðúò å òÿñíî
ñâúðçàí ñ åçèêà Ñ (÷åñòî ñå íàðè÷à cpp, Ñ - ïðåä-ïðîöåñîð). Ìíîãî ðåàëèçàöèè
ïðîñòî èçïîëçóâàò ïðåäïðîöåñîðà íà Ñ è ñëåäîâàòåëíî íå ðàçïîçíàâàò êîìåíòàðà íà
Ñ++, îãðàíè÷àâàí îò //. Àêî æåëàåòå äà âêëþ÷èòå êîìåíòàð â äèðåêòèâà #define
ïî-áåçîïàñíî å äà èçïîëçóâàòå îáè÷àéíèÿ çà Ñ êîìåíòàð.
#ifdef
u3b2
#define SYSV /* UNIX System V */
#endif
#include
void read() { cout pact() { cout n"; }
void write() { cout n() {
read();
sort();
compact();
write();
return 0;
}
Ïðè ìåí Ñ ìè èçâåæäà ãðåøêà îùå â ïúðâèÿ ðåä, äåìåê ïðè #include