C语言教程:宏(#define指令定义)
宏是一种可由宏的值代替的代码段。 宏由#define指令定义。 有两种类型的宏:
- 类似对象的宏
- 类似函数的宏
类似对象的宏
类似对象的宏是一种被值替换的标识符。它广泛用于表示数字常数。 例如:
#define PI 3.14
这里,PI就是代替值3.14的宏名称,对于宏名称可使用与变量命名规则相同的其它名称。
类似函数的宏
类似函数的宏看起来像函数调用。例如:
#define MIN(a,b) ((a)<(b)?(a):(b))
这里,MIN是宏的名称。
可通过访问#define来查看类似对象和类似函数的宏的完整示例。
C预定义宏
ANSI C定义了许多可在C语言程序中使用的预定义的宏。如下列表所示 -
| 序号 | 宏 | 说明 | 
|---|---|---|
| 1 | _DATE_ | 以 “MMM DD YYYY”格式表示当前日期。 | 
| 2 | _TIME_ | 以 “HH:MM:SS”格式表示当前时间。 | 
| 3 | _FILE_ | 表示当前文件名。 | 
| 4 | _LINE_ | 表示当前行。 | 
| 5 | _STDC_ | 当编译器符合ANSI标准时,它被定义为 1。 | 
C语言预定义的宏示例
为了更好地演示如何使用C语言预定义的宏,我们创建一个源文件:predefined-macros.c 在工程preprocessor 中,其代码如下所示 -
#include <stdio.h>  
void main() {
    printf("File :%s\n", __FILE__);
    printf("Date :%s\n", __DATE__);
    printf("Time :%s\n", __TIME__);
    printf("Line :%d\n", __LINE__);
    //printf("STDC :%d\n", __STDC__); 不常用
}
执行上面示例代码,得到以下结果 -
File :f:\worksp\clanguage\preprocessor\preprocessor\predefined-macros.c
Date :Aug 17 2017
Time :17:33:25
Line :6
        THE END
    
        
        





