Estoy tratando de averiguar cómo puedo concatenar un #define
estaría en un #define
encadenaría usando el C preprocesador. 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 parecido 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
No funciona sin el #
s ya sea porque los valores son números y se expandiría a "/home/user/.myapp" 2 6
que no es válido C.
Esto funciona, pero no me gusta tener copias de las definiciones de versión 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
Posible duplicado de Convertir un token de preprocesador en una cadena
– Ciro Santilli Путлер Капут 六四事
5/10/2015 a las 13:00