为什么BUILD_DAET和MULTI可以正常输出呢?define如果只是替换的话、那么printf执行到这里的时候、format中只有一个%s、但是后面有两个str呀、而且中间没有逗号的???????
#include<stdio.h>
int main() {
printf("%d\n", __LINE__);
printf("%s\n", __TIME__);
printf("%s\n", __DATE__);
printf("%s\n", __FILE__);
#define BUILD_DATE (__DATE__ " " __TIME__)
printf("build_date:%s\n", BUILD_DATE);
#define A "a"
#define B "b"
#define MULTI A B
printf("str:%s\n", MULTI);
return 0;
}
输出:
20
22:33:34
Jun 21 2016
__line__.test.c
build_date:Jun 21 2016 22:33:34
str:ab