往往我说今天上课的内容是预处理时,便有学生质疑:预处理不就是include 和define么?这也用得着讲啊?。是的,非常值得讨论,即使是include 和define。但是预处理仅限于此吗?远远不止。先看几个个常识性问题:
不要急着回答,先看看ANSI 标准定义的C 语言预处理指令:
另外ANSI 标准C 还定义了如下几个宏:
如果编译器不是标准的,则可能仅支持以上宏的一部分,或根本不支持。当然编译器也有可能还提供其它预定义的宏名。注意:宏名的书写由标识符与两边各二条下划线构成。
相信很多初学者,甚至一些有经验的程序员都没有完全掌握这些内容,下面就一一详细讨论这些预处理指令。