C'yi kullanarak bir #define
'd int'i bir #define
' d dizesine nasıl birleştirebileceğimi anlamaya çalışıyorum. Ön İşlemcisini . Derleyicim CentOS 5 üzerinde GCC 4.1'dir. Çözüm ayrıca MinGW için de çalışmalıdır.
Bir dizeye bir sürüm numarası eklemek istiyorum, ancak onu çalıştırabilmemin tek yolu, dizeler olarak tanımlanan sürüm numarasının bir kopyasını oluşturmaktır.
Bulabildiğim en yakın şey, makro argümanlardan alıntı yapma yöntemiydi, ancak bu, #define
s
Bu çalışmıyor.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
#
S olmadan da çalışmaz çünkü değerler sayıdır ve genişler "/home/user/.myapp" 2 6
, ki bu geçerli C değildir. .
Bu işe yarıyor, ancak sürüm tanımlarının kopyalarına sahip olmaktan hoşlanmıyorum çünkü onlara sayı olarak da ihtiyacım var.
#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