тег.

аюсь выяснить, как я могу объединить#defineбыл бы инт#defineбудет строка с использованиемC Препроцессор. Мой компилятор - GCC 4.1 на CentOS 5. Решение также должно работать для MinGW.

Я хотел бы добавить номер версии в строку, но единственный способ заставить его работать - это сделать копию номера версии, определяемой как строки.

Самым близким, что я мог найти, был метод цитирования аргументов макроса, но он не работает для#defines

Это не работает.

#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER

Это не работает без#либо потому, что значения являются числами, и он будет расширяться до"/home/user/.myapp" 2 6, который не действителенC.

Это работает, но мне не нравится иметь копии определений версии, потому что они нужны мне и в виде чисел.

#define MAJOR_VER 2
#define MINOR_VER 6
#define MAJOR_VER_STR "2"
#define MINOR_VER_STR "6"
#define MY_FILE "/home/user/.myapp" MAJOR_VER_STRING MINOR_VER_STRING