У меня есть набор отладочных макросов в 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, но не имеет значения?