KNOW INTUIT, Лекция, C препроцесор
Теоретична част
Препроцесор(англ.preprocessor) е програма, която извършва предварителна обработка на входни данни за друга програма [19.1]. Препроцесорът на езика за програмиранеСпреглежда програмата преди компилатора и замества определени символни комбинации (символни съкращения) в програмата със съответните директиви. Той намира и включва необходимите файлове в програмата и може да променя условията на компилация [19.1]. Препроцесорът има същото значение като буферния процесор.
Препроцесорът на езикаCизвършва макро заместване, условна компилация и включване на именуван файл. Редове, които започват със знак # (предшестван от бели интервали), дават инструкции на директивата на препроцесора. Техният синтаксис е независим от останалата част от езика; те могат да се появят навсякъде и да имат въздействие (независимо от обхвата) до края на единицата за превод. Границите на редовете се вземат предвид: всеки ред се анализира поотделно (но също така е възможно да се свържат редове). Токените за препроцесора са всички токени на езика и поредица от знаци, които дефинират имената на файловете. В допълнение, всеки символ, който не е дефиниран по друг начин, също се третира като токен [19.2]. Ефектът от празни знаци, различни от интервали и хоризонтални табулатори в редовете на препроцесора, е недефиниран.
В предишни лабораторни упражнения сте виждали низове, които започват с #. Те са # включват и # дефинират. Първата директива (инструкция) беше използвана за включване на заглавни файлове, предимно от езиковата библиотекаС, а втората беше използвана за заместване на символи или цифри на определени места от програмния код.
На разположениеследните директиви на препроцесора:
#дефинирай | #endif | #ifdef | #линия |
#елиф | #грешка | #ifndef | # прагма |
#друго | #ако | #включи | #undef |
Всяка директива на препроцесора трябва да бъде на отделен ред. Например линията