GCC功能测试宏
main.c 文件
//
// main.c
// tempTestForC
//
// Created by cbd on 16/8/17.
// Copyright © 2016年 cbd. All rights reserved.
//
#include "apue.h"
int main(int argc, const char * argv[]) {
#if defined _FUNC_TEST_DEF
printf("已经定义了 _FUNC_TEST_DEF:%d \n", _FUNC_TEST_DEF);
#else
printf("还没有定义 _FUNC_TEST_DEF \n");
#endif
return 0;
}
在编译的时候可以用-D方法指定功能测试宏(Feature Test Marco)的值
$ gcc -D_FUNC_TEST_DEF=1 main.c -o a.out
$ gcc -D_FUNC_TEST_DEF=0 main.c -o b.out
$ gcc -o c.out
$ gcc -D_FUNC_TEST_DEF=012 main.c -o d.out
测试结果
$ ./a.out
已经定义了 _FUNC_TEST_DEF:1
$ ./b.out
已经定义了 _FUNC_TEST_DEF:0
$ ./c.out
还没有定义 _FUNC_TEST_DEF
$ ./d.out
已经定义了 _FUNC_TEST_DEF:10
注意
- _FUNC_TEST_DEF 是自定义的, 有一些已经约定好的 见这里
- GCC命令中,
-D
与_FUNC_TEST_DEF
之间就是没有空格