0

我有以下代码:

#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的宏,那么这是从哪里挑选出来的呢?

另外,另一个初学者问题。有人可以解释一下宏名称前后 __ 的意义。

谢谢,阳光

4

2 回答 2

1
__SYM_TRACE__ 

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

gcc -D__SYM_TRACE__ file.c

于 2013-07-25T05:40:30.723 回答
1

答案已经存在,因此将其视为添加

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

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

您可以按照@Ishmeet 的建议将其添加到 Makefile 中-D__SYM_TRACE__

现在,如果您正在谈论,_Name_那么它是一种区分标准(或预定义)宏与用户定义的方法。例如 GCC 预定义的宏__WCHAR_TYPE__,如__WINT_TYPE_前后都有下划线。

于 2013-07-25T05:52:15.640 回答