gcc 编译时可以通过 - D 选项传递宏定义
#include <stdio.h>
#ifndef S
#define S "ab"
#endif
#ifndef A
#define A 10
#endif
void main()
{
char s[]=S;
char a=A;
printf("a:%d\n",a);
printf("s:%s",s);
}
编译:
gcc -o test.exe test.c -DS=\\"abc\\" -DA=100
运行输出
a:100
s:abc