我在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