Concaténer int de chaîne à l'aide du Préprocesseur C

Je suis à essayer de comprendre comment je peux concaténer une #define'd int #define'd chaîne à l'aide de la C de Préprocesseur. Mon compilateur est GCC 4.1 sur CentOS 5. La solution devrait également fonctionner pour MinGW.

Je voudrais 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 #defines

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 le #s, soit parce que les valeurs sont des nombres et qu'il serait d'élargir à "/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
InformationsquelleAutor jonescb | 2011-03-28