Quantcast
Channel: Complete, Concrete, Concise » C
Viewing all articles
Browse latest Browse all 11

Preprocessor – the #endif Directive

$
0
0

Behaviour of this preprocessor directive is the same for both C and C++ compilers.

Purpose

The #endif directive is used end / close / terminate a selection block (#if, #ifdef, or #ifndef.

Format

#if or #ifdef or #ifndef

preprocessor or code statements

#elif controlling_expression (optional)

preprocessor or code statements

#else (optional)

preprocessor or code statements

#endif

All preprocessor directives begin with the # symbol. It must be the first character on the line or the first character on the line following optional white space.

Some early compilers flagged an error if # was not the first character on the line.

Spaces or tabs are permitted between the # and endif, but not escape characters or other symbols or macros. The preprocessor removes white space and concatenates the # and endif together.

If anything follows the #endif directive (other than white space) then the program is malformed.

The following are valid uses:

#endif  
#   endif   
# /* comments are white space */ endif

The following are invalid uses:

// #\ is not a valid preprocessor directive
# \t endif

// #" is not a valid preprocessor directive
# "" endif

// malformed because only white space may follow #endif
#endif MY_MACRO

Use

The #endif must appear as the final statement of a preprocessor selection sequence.

#ifdef MY_MACRO

. . . // preprocessor or language statements . . .

#endif

Please consider sharing this article if you liked it or found it useful.

You may use one of the buttons below or share using your own favourite media.

Please do not republish this article on your website. You may publish a short excerpt and provide a link back to the original article.


Viewing all articles
Browse latest Browse all 11

Trending Articles