第一种方法:gcc “源码” -D“你要定义的宏” -o “可执行文件”
示例源码:
//test.c:
#include <stdio.h>
int main(int argc,char *argv[])
{
#ifdef ZKJ
printf("===ZKJ has been defined===\n");
#else
printf("===ZKJ has not been defined===\n");
#endif
return 0;
}
编译方法:
gcc test.c -DZKJ -o test
运行结果:
ubuntu@ubuntu:~/Desktop$ ./test
===ZKJ has been defined===
第二种方法:gcc “源码” -D“你要定义的宏”=“数值(字符、“字符串”等)” -o “可执行文件”
示例源码1:
//test.c:
#include <stdio.h>
int main(int argc,char *argv[])
{
#ifdef ZKJ
printf("===ZKJ has been defined,val=%d===\n",ZKJ);
#else
printf("===ZKJ has not been defined===\n");
#endif
return 0;
}
编译方法:
gcc test.c -DZKJ=234 -o test
运行结果:
ubuntu@ubuntu:~/Desktop$ ./test
===ZKJ has been defined,val=234===
示例源码2:
//test.c:
#include <stdio.h>
int main(int argc,char *argv[])
{
#ifdef ZKJ
printf("===ZKJ has been defined,val=%s===\n",ZKJ);
#else
printf("===ZKJ has not been defined===\n");
#endif
return 0;
}
编译方法:
gcc test.c -DZKJ=\"hello\ world!\" -o test
【注意双引号和空格前的反斜杠“\”。】
运行结果:
ubuntu@ubuntu:~/Desktop$ ./test
===ZKJ has been defined,val=hello world===