这可能是一个非常愚蠢的问题,但是如何在代码中打开这些调试消息?C:`打开调试消息
#ifdef DEBUG_MSG
printf("initial state : %d\n", initial_state);
#endif
提前许多感谢,
这可能是一个非常愚蠢的问题,但是如何在代码中打开这些调试消息?C:`打开调试消息
#ifdef DEBUG_MSG
printf("initial state : %d\n", initial_state);
#endif
提前许多感谢,
编译时,尝试这样的事:
$ gcc -DDEBUG_MSG -o foo foo.c
+1,因为这意味着不必修改代码本身来添加'#define'。 –
#ifdef
会让你的宏只有DEBUG_MSG
定义进行扩展。你可以用两种方法来做到这一点。在源要么做一个#define DEBUG_MSG 1
或使用-DDEBUG_MSG
编译(如果使用gcc
,还有其他的编译器太相似的标识)
你将不得不#define
,不知怎的。
0。在你的代码。
直接在你的代码中使用该标志在什么地方:
#define DEBUG_MSG
1.在命令行。
对于每一个的资源文件,或者适当地在你的makefile:
gcc -DDEBUG_MSG main.c
(海合会,标志是-D<macro-name>
,对于MSVC,它是/D
,对ICC是前者的一个,这取决于您的操作系统。)
2.在你的IDE,某处。
在IDE的项目设置,找到在那里你可以把定义。引擎盖下,这是通过使用1
C预处理器阶段,如果符号被定义将仅通过一个#ifdef/#endif
内部代码编译器相完成。
您可以在通常(至少)两种方式做到这一点。
第一种方法是使用命令行开关,用于编译器,例如:
gcc -DDEBUG_MSG myprog.c
(-D
意味着以限定预处理器符号跟随它,虽然这是特定于实现的,许多编译器使用相同的开关)。第二个是将这样一行:
#define DEBUG_MSG
你实际的源代码的某个地方#ifdef
前内。
前者通常是首选,因为它允许您在不更改源代码的情况下控制该行为,以便例如可以从相同的源代码生成调试和发布版本。
您需要#define DEBUG_MSG。你的编译器是什么? –
有没有愚蠢的问题。那么,有,但是这不是其中之一:-) – paxdiablo
英特尔icc是编译器 – Eamorr