2.6 Bilgisayarlı İçindekiler bölümündeki bu belge aşağıdaki paragrafa sahiptir:
Çizgi, bir <belirteciyle başlayan ve bir> belirtecini içeren bir belirteç akışına genişlerse, eklenecek dosya adını oluşturmak için <ve ilk> arasındaki belirteçler birleştirilir. Jetonlar arasındaki boşluklar tek bir alana indirgenir; ilk <boşluktan sonraki herhangi bir boşluk korunur, ancak kapanmadan önceki boşluk> yok sayılır . CPP, köşeli ayraç içeren kurallara göre dosyayı arar.
Bunun uygulama tanımlı olduğunu biliyorum, ama neden GCC için bu şekilde olması gerekiyor? Özellikle vurgulanan cümleye atıfta bulunuyorum.
DÜZENLE
Yukarıda belirtilen paragraftan önceki üçüncü paragrafın şunları söylediğini fark ettim:
Makroyu tanımlarken dikkatli olmalısınız.
#define
metin değil jeton kaydeder. Önişlemcinin makronun argüman olarak kullanılacağını bilmesinin bir yolu yoktur#include
, bu nedenle başlık adı değil sıradan jetonlar üretir. Bu, dize sabitlerine yeterince yakın olan çift tırnak işareti içerirse sorun yaratmaz. Ancak köşeli parantez kullanırsanız, sorun yaşayabilirsiniz .
Burada ne tür bir sorun olduğuna dikkat çeken var mı?