Sto cercando di capire come posso concatenare una #define
'd int ad un #define
' stringa d utilizzando il C preprocessore. Il mio compilatore è GCC 4.1 su CentOS 5. La soluzione dovrebbe funzionare anche per MinGW.Concatenate int a stringa utilizzando C preprocessore
Vorrei aggiungere un numero di versione a una stringa, ma l'unico modo in cui riesco a farlo funzionare è creare una copia del numero di versione definito come stringhe.
La cosa più vicina che ho trovato era un metodo di citare argomenti di macro, ma non funziona per #define
s
Questo è non funziona.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
Non funziona senza le #
s sia perché i valori sono numeri e sarebbe espandono per "/home/user/.myapp" 2 6
, che non è valido C.
Questo funziona, ma non mi piace avere copie della versione definite perché anch'io ne ho bisogno come numeri.
#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
Eventuali duplicati di [Converti un gettone preprocessore in una stringa] (http://stackoverflow.com/questions/240353/convert-a-preprocessor-token-to-a-string) –