Saya mencoba untuk mencari tahu bagaimana saya bisa menggabungkan #define
'd int ke #define
' d string menggunakan C Preprocessor. Kompiler saya adalah GCC 4.1 di CentOS 5. Solusinya juga harus berfungsi untuk MinGW.
Saya ingin menambahkan nomor versi ke string, tetapi satu-satunya cara agar saya dapat berfungsi adalah membuat salinan nomor versi yang didefinisikan sebagai string.
Hal terdekat yang bisa saya temukan adalah metode mengutip argumen makro, tetapi tidak berhasil untuk #define
s
Ini tidak berhasil.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
Itu tidak bekerja tanpa #
s juga karena nilainya adalah angka dan akan berkembang menjadi "/home/user/.myapp" 2 6
, yang bukan C yang valid .
Ini berfungsi, tetapi saya tidak suka memiliki salinan dari versi yang ditentukan karena saya membutuhkannya sebagai angka juga.
#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