A C program is made from a collection of translation units that contain definitions that constitute the behaviour and state of the program. Each translation unit can be generated from a source file that undergoes several translation phases, an early one of which is preprocessing. A C preprocessor goes through a source file line by line, looking for preprocessing directives, lines that begin with a hash # (U+0023). These directives can have several effects:

preprocessing-file
groupopt
group
group-part
group group-part
group-part
if-section
control-line
text-line
# non-directive
if-section
if-group elif-groupsopt else-groupopt else-line
if-group
# if constant-expression new-line group
# ifdef identifier new-line group
# ifndef identifier new-line group
elif-groups
elif-group
elif-groups elif-group
elif-group
# elif constant-expression new-line group
else-group
# else new-line groupopt
else-line
# endif new-line
control-line
# include pp-tokens new-line
# define identifier replacement-listopt new-line
# define ident-lparen identifier-listopt ) replacement-list new-line
# define ident-lparen ... ) replacement-list new-line
since C99
# define ident-lparen identifier-list , ... ) replacement-list new-line
since C99
# undef identifier new-line
# line pp-tokens new-line
# error pp-tokensopt new-line
# pragma pp-tokensopt new-line
# new-line
ident-lparen
identifier (
without intervening white space
identifier-list
identifier
identifier-list , identifier
text-line
pp-tokensopt new-line
non-directive
pp-tokens new-line
replacement-list
pp-tokensopt
pp-tokens
preprocessing-token
pp-tokens preprocessing-token
new-line
the new-line character

CHaR
Sitemap Supported
Site format updated 2024-06-05T22:37:07.391+0000
Data updated 1970-01-01T00:00:00.000+0000
Page updated 2022-06-17T21:43:05.000+0000