我有以下代码:
#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 的宏,那么从哪里挑选?
另外,另一个初学者问题。有人可以在宏名称之前和之后解释__的重要性。
谢谢, 晴天
答案 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__
现在,如果您正在谈论_Name_
,那么这是一种在用户定义的标准(或预定义)宏之间做出区分的方法。例如GCC预定义的宏,如__WCHAR_TYPE__
和__WINT_TYPE_
之前和之后都有下划线。