C:如何启用__ <flag_name> __ </flag_name>

时间:2013-07-25 05:35:09

标签: c macros flags

我有以下代码:

#ifdef __SYM_TRACE__
#define SYM_TRACE( L, F )   { SETTRACE_LEVEL(L); tracefunc F; }
#define SYM_TRACE2( F )     { SETTRACE_LEVEL(SYM_MODULE); tracefunc F; }
#else
#define SYM_TRACE( L, F )
#define SYM_TRACE2( F )
#endif

现在问题是我在哪里可以找到 SYM_TRACE 标志,如何启用它?代码中没有名称为 SYM_TRACE 的宏,那么从哪里挑选?

另外,另一个初学者问题。有人可以在宏名称之前和之后解释__的重要性。

谢谢, 晴天

2 个答案:

答案 0 :(得分:1)

__SYM_TRACE__ 

可能是在你的make文件中定义的,而__只是名字,我认为它没有意义,也许它在其他平台上移植时也是如此。 大多数C编译器接受选项-D来定义符号:

gcc -D__SYM_TRACE__ file.c

答案 1 :(得分:1)

答案已经存在,所以请将其视为添加

您可以执行以下选项以启用__SYM_TRACE__

在头文件中写#define __SYM_TRACE__,它将与显示的代码段一起使用。(不要忘记用#ifndef endif来保护它)

您可以使用-D__SYM_TRACE__

按照@Ishmeet的建议在Makefile中添加它

现在,如果您正在谈论_Name_,那么这是一种在用户定义的标准(或预定义)宏之间做出区分的方法。例如GCC预定义的宏,如__WCHAR_TYPE____WINT_TYPE_之前和之后都有下划线。