#define PATH "yagh/headers/"
#define FILNAME "includefile"
#define CONCAT(a__, b__) CONCAT_DO(a__, b__)
#define CONCAT_DO(a__, b__) a__##b__
#define CONCATTHREE(a__, b__, c__) CONCAT(CONCAT(a__, b__), c__)
#define STRINGIFY(a__) #a__
#include STRINGIFY(CONCATTHREE(PATH ,FILNAME ,.h));
Bu makro VS derleyicisi çalışıyor ancak GCC derleyicisi üzerinde derleme değil: Preprocessor makro GCC: yapıştırma x x belirteci geçerli preprocessing vermez
Error: error: pasting "/" and "includefile" does not give a valid preprocessing token
ve bazıları için
dosyaları dahil o verir hata:Error: pasting "includefile" and "." does not give a valid preprocessing token
## 'işleciyle birleştirme, GCC'de" foo "gibi dize değişmezleriyle çalışmaz. Bu makro ile tam olarak ne yapmaya çalışıyorsun? – thkala
Bu problem için kabul edilebilir bir cevap buldunuz mu? – Michael
İlginç. Ben her ikisini de dahil olmak üzere bir hata vermek umuyoruz dosya içerir "CONCATTHREE (PATH, FILNAME, .h)" ', aslında ben gcc ile kodunuzu çalıştırdığımda gördüğüm ... –