C语言预处理命令有哪些
往往我说今天上课的内容是预处理时,便有学生质疑:预处理不就是include 和define么?这也用得着讲啊?。是的,非常值得讨论,即使是include 和define。但是预处理仅限于此吗?远远不止。先看几个个常识性问题:
A)
预处理是C 语言的一部分吗?
B)
包含“#”号的都是预处理吗?
C)
预处理指令后面都不需要加“;”号吗?
不要急着回答,先看看ANSI 标准定义的C 语言预处理指令:
另外ANSI 标准C 还定义了如下几个宏:
如果编译器不是标准的,则可能仅支持以上宏的一部分,或根本不支持。当然编译器也有可能还提供其它预定义的宏名。注意:宏名的书写由标识符与两边各二条下划线构成。
相信很多初学者,甚至一些有经验的程序员都没有完全掌握这些内容,下面就一一详细讨论这些预处理指令。
A)
预处理是C 语言的一部分吗?
B)
包含“#”号的都是预处理吗?
C)
预处理指令后面都不需要加“;”号吗?
不要急着回答,先看看ANSI 标准定义的C 语言预处理指令:
- _LINE_ 表示正在编译的文件的行号
- _FILE_ 表示正在编译的文件的名字
- _DATE_ 表示编译时刻的日期字符串,例如: "25 Dec 2007"
- _TIME_ 表示编译时刻的时间字符串,例如: "12:30:55"
- _STDC_ 判断该文件是不是定义成标准C 程序
如果编译器不是标准的,则可能仅支持以上宏的一部分,或根本不支持。当然编译器也有可能还提供其它预定义的宏名。注意:宏名的书写由标识符与两边各二条下划线构成。
相信很多初学者,甚至一些有经验的程序员都没有完全掌握这些内容,下面就一一详细讨论这些预处理指令。