Estou tentando descobrir como posso concatenar um #define
'd int em uma #define
string' d usando o pré-processador C. Meu compilador é o GCC 4.1 no CentOS 5. A solução também deve funcionar para o MinGW.
Gostaria de anexar um número de versão a uma string, mas a única maneira de fazer funcionar é fazer uma cópia do número da versão definido como strings.
A coisa mais próxima que consegui encontrar foi um método de citar argumentos de macro, mas não funciona para #define
s
Isso não funciona.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
Também não funciona sem o #
s porque os valores são números e ele se expandiria para "/home/user/.myapp" 2 6
, o que não é C válido .
Isso funciona, mas eu não gosto de ter cópias das definições de versão porque eu preciso delas como números também.
#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