Course Content
C Preprocessing
C Preprocessing
1. Introduction to Preprocessing
3. Conditional compilation
4. Compiler Directives and Advanced Control
Communicating with the Compiler
Each #pragma
directive can vary widely, but most follow a general pattern. The instruction being given is specified by the directive-name
. The optional arguments depend on the specific directive and the compiler in use.
header
#pragma directive-name [optional arguments]
Include Once
The old way to ensure the header is included only once is using #ifndef
/ #define
guards. While still widely used and fully portable, it requires boilerplate and manual work.
main
config
#include <stdio.h> #include "config.h" #include "config.h" // Reinclusion β NO duplication will occur int main() { printf("%s v%s\n", APP_NAME, APP_VERSION); return 0; }
Ensures that a header file is included in the compilation only once, even if it is included multiple times in different places. It is an alternative (and more modern) approach to the traditional #ifndef
pattern.
main
config
#include <stdio.h> #include "config.h" #include "config.h" // Reinclusion β NO duplication will occur int main() { printf("%s v%s\n", APP_NAME, APP_VERSION); return 0; }
Everything was clear?
Thanks for your feedback!
SectionΒ 4. ChapterΒ 1