1.预定义指令:
_FILE_ //进行编译的源文件
_LINE_ //文件当前的行号
_DATE_ // 文件被编译的日期
_TIME_ //文件被编译的时间
_STDC_ //如果编译器遵循ANSI C,其值为1,否则未定义。
这样可以输出当前编译文件的相关信息
2.宏和函数的区别:
(1)宏允许把参数替换到文本中。宏参数和#define定义可以包含其他#define定义的符号,不但可以出现递归。宏可以非常频繁的执行简单的操作,比如再两个表达式中寻找其中较大或较小的一个。宏的名字都是大写。
(2)宏比函数在程序的规模上和速度上更好。更重要的是,函数的参数必须申明为一种特定的类型,但宏可以用于整形、长整型、字符型、双浮点型以及其他任何可以使用>比较的类型。宏是类型无关的。
(3)和函数相比,使用宏的不利之处在于每次使用宏时,一份宏定义的代码拷贝将插入到程序中,除非宏非常短,否则程序将会大幅度增长。