اینها برای کنترل کامپایلر استفاده میشه مثلا وقتی میخواهید بخشی از سورس توسط کامپایلر نادیده گرفته بشه
گرامرش به این صورت هست:
conditional :if-part elif-parts opt else-partopt endif-line
if-part :if-line text
if-line :#if constant-expression
#ifdef identifier
#ifndef identifier
elif-parts :elif-line text
elif-parts elif-line text
elif-line :#elif constant-expression
else-part :else-line text
else-line :#else
endif-line :#endif
مثال:
/* EXAMPLE.H - Example header file */
#if !defined( EXAMPLE_H )
#define EXAMPLE_H
class Example
{
...
};
#endif // !defined( EXAMPLE_H )