Concatenate int para string usando C Preprocessor
Estou tentando descobrir como concatenar um#define
int a um#define
'd usando oC Pré-processador. Meu compilador é o GCC 4.1 no CentOS 5. A solução também deve funcionar para MinGW.
Gostaria de acrescentar um número de versão a uma string, mas a única maneira de fazê-lo funcionar é fazer uma cópia do número da versão definida como string
A coisa mais próxima que pude 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
Não funciona sem o#
s porque os valores são números e expandiria para"/home/user/.myapp" 2 6
, que não é válidoC.
Isso funciona, mas não gosto de definir cópias da versão, porque também preciso delas como número
#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