Je suis à essayer de comprendre comment je peux concaténer une #define
'd int #define
'd chaîne à l'aide du Préprocesseur C. Mon compilateur est GCC 4.1 sur CentOS 5. La solution devrait également fonctionner pour MinGW.
J'aimerais ajouter un numéro de version sur une chaîne, mais la seule façon que je peux l'obtenir pour fonctionner est de faire une copie du numéro de la version définit comme des chaînes de caractères.
La chose la plus proche que j'ai pu trouver est une méthode de citer les arguments de la macro, mais il ne fonctionne pas pour #define
s
C'est ne fonctionne pas.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
Il ne fonctionne pas sans l' #
s, soit parce que les valeurs sont des nombres, et il serait étendre à d' "/home/user/.myapp" 2 6
, ce qui n'est pas valide C.
Cela fonctionne, mais je n'aime pas avoir des copies de la version définit parce que j'ai besoin d'eux comme des numéros.
#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