题目
下列说法中正确的是( )A. C语言的预处理命令只有宏定义和文件包含B. 预处理命令只能出现在主函数之前C. 所有预处理命令都是以符号″#″开头D. 有些预处理命令不是在源程序[1]编译之前处理
下列说法中正确的是( )
- A. C语言的预处理命令只有宏定义和文件包含
- B. 预处理命令只能出现在主函数之前
- C. 所有预处理命令都是以符号″#″开头
- D. 有些预处理命令不是在源程序[1]编译之前处理
题目解答
答案
C.所有预处理命令都是以符号″#″开头
解析
本题考查C语言预处理命令的基本概念,需掌握以下关键点:
- 预处理命令的定义与格式:所有预处理命令必须以
#
开头,这是识别预处理命令的标志。 - 预处理命令的类型:包括宏定义、文件包含、条件编译、行控制等,不限于选项A所述的两种。
- 预处理命令的使用位置:可以在源程序的任何位置,不限于主函数之前。
- 预处理的处理时机:预处理是编译的第一步,所有预处理命令均在编译前处理。
选项分析
A. C语言的预处理命令只有宏定义和文件包含
错误。预处理命令还包括条件编译(如#if
、#ifdef
)、行控制(如#line
)、#pragma
指令等,远不止两种类型。
B. 预处理命令只能出现在主函数之前
错误。预处理命令可以出现在源程序的任意位置,例如在函数内部使用#define
定义局部宏,或在代码中间使用条件编译指令。
C. 所有预处理命令都是以符号#
开头
正确。根据C语言规范,预处理命令必须以#
开头,这是区分预处理命令与其他语句的关键特征。
D. 有些预处理命令不是在源程序编译之前处理
错误。预处理是编译的第一步,所有预处理命令均在编译前由预处理程序处理完毕,未处理的#
命令会导致编译错误。