varsayalım Aşağıdaki makro: Adını değiştirmeden Bu makro bir "gelişmiş" sürümünü kullanmak istediğiniz belirli dosyaları ŞimdiNasıl önceki tanımını kullanarak bir makro yeniden tanımlamak için
#define xxx(x) printf("%s\n",x);
. Yeni sürüm, orijinal sürümün işlevselliğini araştırıyor ve biraz daha fazla iş yapıyor.
#define xxx(x) do { xxx(x); yyy(x); } while(0)
Bu tabii bana redefition uyarı verir ama olsun neden 'xxx' Bu kapsamda beyan edilmedi? Nasıl düzgün tanımlamalıyım?
DÜZENLEME: Bu http://gcc.gnu.org/onlinedocs/gcc-3.3.6/cpp/Self_002dReferential-Macros.html göre o Size soran tam olarak ne değil ama yardımcı olabilir
O Makro değişiminin sonsuz yinelenmesini önleme. Bir makroyu birden fazla şey anlamına gelebilecek şekilde tanımlayabileceğiniz anlamına gelmez. –