Содержание

Препроцессор

Директивы препроцессора:

Макросы

#define max(a,b) ((a) > (b) ? (a) : (b))

Операторы # и ##

#define make_str(bar) # bar
printf(make_str(42));

преобразуется в

printf("42");
#define MakePosition(x) x##X,x##Y,x##Width,x##Height
int MakePosition(Object);

преобразуется в

int ObjectX,ObjectY,ObjectWidth,ObjectHeight;

undef

После строки

 #undef идентификатор

препроцессор считает, что идентификатор не определён. Это может помочь нам в случае условной компиляции.

Ссылки