Я пытаюсь понять, как я могу объединить #define
'd int в #define
' d строку с помощью препроцессора C. Мой компилятор - GCC 4.1 для CentOS 5. Решение также должно работать для MinGW.
Я хотел бы добавить номер версии к строке, но единственный способ заставить его работать - это сделать копию номера версии, определенной как строки.
Самое близкое, что я смог найти, это метод цитирования аргументов макроса, но он не работает для #define
s
Это не работает.
#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