我在tracing.hh中有一组调试宏。它是否生成代码和输出由真实源代码中的宏标志控制:空宏定义的测试
// File: foo.cc
#define TRACING 0
#include "tracing.hh"
// Away we go . . .
TRACEF("debug message");
标志TRACING应该有一个值;我通常切换0和1之间
在tracing.h,
#ifdef TRACING
会告诉我,跟踪定义。#if TRACING
控制功能的宏定义一样TRACEF()
但如果追踪有没有价值呢?然后#if TRACING
产生一个错误:
In file included from foo.c:3:
tracing.hh:73:12: error: #if with no expression
如何测试,如果跟踪被定义,但有没有价值?
差不多,我想。看下一个答案: – pdbj 2010-11-08 18:47:30
这不幸的是不会工作。您将遇到同样的问题,因为TRACING将被删除。你最终会得到类似的结果:“#if defined(TRACING)&&!”。因此,“错误:操作员”!没有合适的操作数“将在建造时提高。 – ForceMagic 2012-06-19 00:02:43