ile dize arasındaki bağlantıyı bir #define
'd int ile #define
' d dizisini C Önişlemci kullanarak nasıl birleştirebileceğimi anlamaya çalışıyorum. Derleyicim CentOS 5 GCC 4.1. Çözüm de MinGW için çalışmalıdır.C Önişlemcisi
Bir diziye bir sürüm numarası eklemek istiyorum, ancak çalışmaya başladığım tek yol, sürüm numarası kopyasının dizge olarak tanımlanmasını sağlamaktır. Bulabildiğim
yakın şey makro argümanları alıntı bir yöntem, ama #define
s
Bu çalışmaz ise çalışmıyor. #
s içermeyen
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
O çalışmıyor ya değerler sayılardır ve Cgeçerli değil, hangi "/home/user/.myapp" 2 6
kadar genişleyip çünkü.
Bu işe yarar, ancak sürümün kopyalarına sahip olmaktan hoşlanmıyorum çünkü bunların sayıları da gerekiyor.
#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
Olası yinelenen (http://stackoverflow.com/questions/240353/convert-a-preprocessor-token-to-a-string [bir dizeye bir önişlemci jetonu dönüştürme] –