C语言问题

(28)以下叙述中错误的是
A)在程序中凡是以“#”开始的语句行都是预处理命令行
B)预处理命令行的最后不能以分号表示结束
C)#define MAX 是合法的宏定义命令行
D)C 程序对预处理命令行的处理是在程序执行的过程中进行的
答案是D,我感觉C不对,哪里对啊?

#define MAX 就是声明一个MAX常量,这个命令经常是用来作标记用的。就是防止一个头文件被不同c文件include多次而导致冲突。假设你的一个头文件中有一个MAX常量(先假设a.h中已经有一个MAX)而你在程序中用了两个另外的库(b,c),其中每个库都include了库a,你的主程序main又include了b,c两个库,这时你的b库有一个a库的MAX,b库中也有了一个a库的MAX。这样在你的主程序中会出现两个同样的MAX,就这样你的两个库会发生冲突,我们假设冲突的不仅是MAX常量,而且还有一些其他的重要变量。这样你就需要一种互斥的装置来避免这种情况。这时你可以对MAX变量稍作改动,你在flag中写入下面的语句。
#ifndef MAX
#define MAX
.....//在此写入重要的想避免重复定义的常量
#endif
则MAX以及重要的常量只会定义一次,由此避了错误。明白了没?不明白再问我啊。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-16
你可以去看看宏的定义啊
一般形式为#define 标识符 字符串
宏名一般用大写 MAX就是宏名
第2个回答  2008-09-16
选D,c没有问题,你的初衷是对的
第3个回答  2008-09-16
C选项是正确的,C语言里可以这样定义宏,事实上,每个头文件中都有这种格式的宏定义
第4个回答  2008-09-16
明显是 D
预处理命令行的处理 在定义的 时候 就进行了
第5个回答  2008-09-16
笨蛋
相似回答