| Term | Definition |
| Preprocessor directives | lines included in the code of our programs that are not program statements but directives for the preprocessor |
| #define indentifier replacement | to define preprocessor macros |
| #undef indentifier | to undefine preprocessor macros |
| # | in a preprocessor macro, causes a replacement to replaced with a string literal |
| ## | in a preprocessor macro, concatenates two arguments leaving no black spaces between them |
| #ifdef | allows a section of a program to be compiled only if a macro that is specified as the parameter has been defined, no matter what its value is |
| #ifndef | the code between #ifndef and #endif directives is only compiled if the specified identifier has not been previously defined |
| #if | serve to specify some condition to be met in order for the portion of code they surround to be compiled |
| #endif | ends an #ifdef or #ifndef macro |
| #else | serve to specify some condition to be met in order for the portion of code they surround to be compiled |
| #elif | serve to specify some condition to be met in order for the portion of code they surround to be compiled |
| #line number "filename" | allows us to control both things, the line numbers within the code files as well as the file name that we want that appears when an error takes place |
| #error | This directive aborts the compilation process when it is found, generating a compilation the error that can be specified as its parameter: |
| #include "file" | it replaces it by the entire content of the specified file looking for the file name and then the header |
| #include <file> | it replaces it by the entire content of the specified file looking for the header |
| #pragma | directive is used to specify diverse options to the compiler |