文章前言:
程序在运行时要先进行预编译阶段。在此期间,编译器将预处理指令进行处理,之后才进行下一步。
预定义符号:
C语言内部内置了几个预定义符号,它们有相应的作用
//当前进行编译的源文件
__FILE__
//被编译时的时间
__TIME__
//被编译时的日期
__DATE__
//文件当前的行号
__LINE__
define:
define是定义标识符,可以定义宏。
//MAX == 10 但是不能更改
#define MAX 10
//宏也可以是函数的形式
//这里就是寻找两数中的最大值
#define FIND(x, y) ((x) > (y) ? (x) : (y))
宏的使用注意:
1、宏参数和#define定义可以出现其它#difine定义的符号,但是宏本身不能实现递归。
2、字符串常量中#difine定义的符号仅仅只是字符串常量,不会被预编译。
# 和 ##:
来看下面代码:
int x = 10;
printf("The value of x = %d\n", x);
这样写只能表示是x的值,如果我想表示y呢?那是不是很麻烦?
字符串的内套:
printf("hello, ""world!\n")