Preprocessor
Einfacher Source Code, der Macros benutzt:
#ifndef GENAU
# define PI 3.14
#else
# define PI 3.14159
#endif
#define MAX(x,y) ((x)>(y)) ? (x) : (y)
double
foo(double x)
{
return MAX(PI, x);
}
# define PI 3.14
#else
# define PI 3.14159
#endif
#define MAX(x,y) ((x)>(y)) ? (x) : (y)
double
foo(double x)
{
return MAX(PI, x);
}
Wir benutzen den Präprozessor des GNU C Compiler und expandieren nur die Makros:
$shell> gcc -E macro.c # 1 "macro.c" # 1 "" # 1 "macro.c" # 10 "macro.c" double foo(double x) { return ((3.14)>(x)) ? (3.14) : (x); }
Mit der Option -E wird nur der Präprozessor gestartet.