作者:弈宇风尘(英文ID:Kevin) 时间:2006.05.27
………………………………………………………………………………………………………………
在C的高级编程中会遇到我们在基础学习中没有遇到过的条件编译。
何谓“条件编译”,简单一点说:就是“程序的内容指定编译的条件”。
我们在写程序的时候,一般的情况是对源程序的所有行都参加编译,
但是我们希望部分行在满足条件的情况下,再执行编译。从而引出下
面的几种条件编译。
一般的条件编译有:
(1)#if
形式:
#if 表达式
program 1
#else
program 2
#endif
这种格式与if...else...执行过程类似。
表达式在这不做介绍,相信都明白,显得累赘。
e.g:#if 0
program
#endif
可以利用此代码注释,与/* 。。。。。。*/同。
(2)#ifdef
ifdef:“如果有定义”。
形式:
#ifdef 标识符
program 1
#else
program 2
#endif
注:标识符被定义,则对program 1进行编译,否则编译program 2。
但也可以不写#else
#ifdef 标识符
program
#endif
"标识符"用#define命令定义,
#define:宏(macro)定义命令。
(3)#ifndef
ifndef:“如果无定义”
形式:
#ifndef 标识符
program 1
#else
program 2
#endif
这种形式的条件编译与第二种相同,但是执行不一样,主要区别:
ifdef和ifndef(即如果有定义和如果无定义)。
也可以写成:
#ifndef 标识符
program
#endif
实例:
#define Letter 1
main()
{char str[20]="HACKBASE KEVIN",c;
int i=0;
while((c=str)!='/0')
{i++;
#if Letter
if(c>='A'&&c<='Z')
c=c+32;
#else
if(c>='a'&&c<='z')
c=c-32;
#endif
printf("%c",c);
}
}
输出结果:hackbase kevin
总结:
条件编译的优点:编写大型程序,当需要加载多个模块。利用条件编译
可以使模块的选择更方便更节约时间,而且只改动几行代码即可。
欢迎大家相互交流。
………………………………………………………………………………………………………………
参考书目:
C语言高级实例解析 清华大学
编译原理 高等教育出版社
………………………………………………………………………………………………………………
网络参考地址:
弈宇风尘'Blog:http://phj.hackbase.com
左撇子编程:http://blog.csdn.net/penghaijun/
浅谈C程序中条件编译
最新推荐文章于 2021-11-11 17:29:21 发布