У меня есть набор отладочных макросов в 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()
Но что, если TRACING не имеет значения? Тогда #if TRACING
выдает ошибку:
In file included from foo.c:3:
tracing.hh:73:12: error: #if with no expression
Как я могу проверить, определен ли TRACING, но не имеет значения?