Estoy tratando de averiguar cómo puedo concatenar un #define
'd int a un #define
' d string usando el preprocesador C. Mi compilador es GCC 4.1 en CentOS 5. La solución también debería funcionar para MinGW.
Me gustaría agregar un número de versión a una cadena, pero la única forma en que puedo hacer que funcione es hacer una copia del número de versión definido como cadenas.
Lo más cercano que pude encontrar fue un método para citar argumentos macro, pero no funciona para #define
s
Esto no funciona.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
Tampoco funciona sin la #
s porque los valores son números y se expandiría a "/home/user/.myapp" 2 6
, que no es C válido .
Esto funciona, pero no me gusta tener copias de la versión definida porque también las necesito como números.
#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