Я пытаюсь использовать макрос __COUNTER__
, чтобы генерировать уникальные имена переменных в моем коде. Но макрос не работает. Возможно, я использую его неправильно. Пожалуйста, предоставьте мне указания или предложения о том, что я делаю неправильно.__COUNTER__ проблемы с макросом. Не отображать значение
#define DUMB_MACRO() ht##__COUNTER__
должен дать мне HT0, HT1 ....
Как я зову его в главном файле
DUMB_MACRO();
Но компилятор говорит, что Безразлично» t разрешите символ ht__COUNTER__
, если я попытаюсь использовать переменную ht0
.
Я также пробовал использовать макрос __CONCAT
, но я не могу передать в него переменную.
Например:
__CONCAT(ht,1)
работает и дает мне ht1
но __CONCAT(ht,i)
где i
переменная холдинга говоря значение 1
не работает, потому что его значение не известно во время компиляции.
Имейте в виду, что '__COUNTER__' является расширением GNU; это не обязательно переносимо для компиляторов, отличных от g ++ (возможно, также поддерживает clang ++). (Если это не было добавлено к стандарту совсем недавно). –
Не было. http://stackoverflow.com/questions/652815/has-anyone-ever-had-a-use-for-the-counter-pre-processor-macro – 2501