Я пытаюсь выяснить, как я могу объединить #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