第 四章
三 编译预处理
模块化程序设计
编译预处理是在编译前对源程序进行的一些 加工。 预处理是由编译系统中的预处理程序按源程 序中的预处理命令进行的。 C语言的预处理命令均以“#‖打头,末尾不 加分号,以区别于C语句。 编译预处理命令可以出现在程序中的任何位 置,其作用域是自出现点到所在的源程序的 末尾。
main( ) { int x=1; { void prt(void); int x = 3; prt( ); printf(―2nd x = %d\n‖,x); } printf(―1st x = %d\n‖,x); } void prt (void) { int x = 5 ; printf(―3th x = %d\n‖,x) }
第 四章
模块化程序设计
7. 函数的嵌套调用及递归调用 •嵌套调用:在一个函数中又调用另外一个 函数。 函数不允许嵌套定义,但可以嵌套调用!
main 函数 { u=f1(i,t); } 1 7 f1 函数 { 2
c=f2(b-1,b+1);
f2 函数 3 5 4
返回f2函数值
} 6
第 四章
模块化程序设计
模块化程序设计
main( ) { void increment (void); increment( ); increment( ); increment( ); } void increment (void) { static int x=0; /*static*/ x + +; printf(“ %d\n”, x); }
第 四章
1 宏替换
模块化程序设计
宏替换是预处理命令#define指定的预处理。 ① 字符串替换 在程序中可以用#define命令定义字符串宏替 换: