In Chapter 2, "Writing Your First C Program," you learned how to use the #include preprocessor directive to include C header files. Since then, the #include directive has been used in every program in this book. In this lesson you'll learn more about the C preprocessor and making macro definitions with the preprocessor directives. The following topics are discussed in this hour:
What the C preprocessor can do
Macro definitions and macro substitutions
The #define and #undef directives
How to define function-like macros with #define
The #ifdef, #ifndef, and #endif directives
The #if, #elif, and #else directives
How to nest #if and #elif directives
Summary
- The C preprocessor runs before the compiler. During preprocessing, all occurrences of a macro name are replaced by the macro body associated with the macro name.
- The C preprocessor also enables you to include additional source files to the program or compile sections of C code conditionally.
- The C preprocessor is not part of the C compiler.
- A macro statement ends with a newline character, not a semicolon.
- The #define directive tells the preprocessor to replace every occurrence of a macro name defined by the directive with a macro body that is associated with the macro name.
- The #undef directive is used to remove the definition of a macro name that has been previously defined.
- You can specify one or more arguments to a macro name defined by the #define directive.
- The #ifdef directive enables you to define code that is to be included when a particular macro name is defined.
- The #ifndef directive is a mirror directive to the #ifdef directive. The former enables you to define code that is to be included when a particular macro name is not defined.
- The #endif is used to mark the end of an #ifdef, an #ifndef, or an #if block.
- The #if, #elif, and #else directives enable you to select portions of code to compile.
- 295 views