control-line: # define identifier token-sequence # define identifier( identifier , ... , identifer) token-sequence # undef identifier # include <filename> # include "filename" # include token-sequence # line constant "filename" # line constant # error token-sequenceopt # pragma token-sequenceopt # preprocessor-conditional preprocessor-conditional: if-line text elif-parts else-partopt # endif if-line: # if constant-expression # ifdef identifier # ifndef identifier elif-parts: elif-line text elif-partsopt elif-line: # elif constant-expression elif-part: else-line text else-line: # else