Определена проверка директивы препроцессора C/C++ и строка не пуста
Я пытаюсь получить что-то вроде:
#if (!defined(SVN_REV) || (SVN_REV==""))
char svnrev[10]="not found";
#else
char svnrev[16]=SVN_REV;
#endif
для обработки случая, когда компилятор, не находя конкретную переменную окружения, устанавливает:
define SVN_REV ""
который для меня должен рассматриваться так же, как определение отсутствует.
Но кажется, что это невозможно, кто-нибудь нашел способ добиться результата?
1 ответ
Нет, препроцессор C не сравнивает строки.
Ты можешь сделать:
#if !defined SVN_REV
#define SVN_REV "not found"
#endif
const char *svnrev = SVN_REV;
Для достижения того же эффекта.