Ana içeriğe geç
Programlama

C ön işlemcisine hata ayıklama ve liste dönüştürme yetenekleri eklendi

Öne çıkanlar

  • __print() ve __where() makroları hata ayıklama ve makro tanım yerini bulma işlemlerini standart akışta stderr üzerinden sunuyor.
  • Yerleşik __map() fonksiyonu, makrolarda yapay özyineleme katmanlarına gerek kalmadan argümanları doğrusal biçimde dönüştürüyor.
  • __VA_COUNT__ makrosu, değişken sayıda argüman içeren makroların eleman sayısını doğrudan ön işlemciden alıyor.

Özel bir C2Y derleyicisi ve yorumlayıcısı geliştiren bir yazılımcı, C standart ön işlemcisinin sınırlamalarını aşmak amacıyla drcpp adını verdiği aracına yeni yerleşik makrolar kazandırdı. Ön işlemcinin metin tabanlı bir çevirici değil, kaynak koddan C belirteçlerine dönüşüm sağlayan bir yapı olduğunu hatırlatan geliştirici, mevcut standartlarda doğrudan özyinelemenin engellenmesi sebebiyle karmaşık hilelere başvurulduğunu kaydetti.

Geliştirilen ilk eklentiler arasında hata ayıklama süreçlerini hızlandıran __print() ve __where() makroları yer alıyor. Makro açılımlarının tüm çeviri birimini dökmeden doğrudan stderr akışına yazdırılmasını sağlayan __print() fonksiyonuna ek olarak, __where() makrosu da belirli bir makronun kaynak kodda nerede tanımlandığını bildiriyor. Bu iki araç, özellikle karmaşık kütüphanelerdeki belirsiz makro davranışlarının hızla çözümlenmesini sağlıyor.

Yazar ayrıca makro listeleri üzerinde işlem yapmayı kolaylaştırmak için yerleşik bir __map() mekanizması ile değişken sayıda argüman sayısını doğrudan döndüren VA_COUNT makrosunu tanıttı. C standardında argüman döngüsü kurmak için gereken katmanlı makro zincirlerini ortadan kaldıran bu yöntem, argümanları tek bir doğrusal taramada işleyerek derleme süresi üzerindeki yükü hafifletiyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.