Önceki sorularımın çoğunda belirtildiği gibi, K&R ile çalışıyorum ve şu anda ön işlemcideyim. Daha ilginç şeylerden biri - önceki C öğrenme girişimlerimden daha önce hiç bilmediğim bir şey - ##
önişlemci operatörüdür. K & R'ye göre:
Önişlemci operatörü
##
, makro genişletme sırasında gerçek bağımsız değişkenleri birleştirmek için bir yol sağlar. Değiştirme metnindeki bir parametre a'ya bitişikse##
, parametre gerçek bağımsız değişkenle değiştirilir,##
ve çevresindeki beyaz boşluk kaldırılır ve sonuç yeniden taranır. Örneğin, makropaste
iki bağımsız değişkenini birleştirir:
#define paste(front, back) front ## back
böylece
paste(name, 1)
jetonu oluştururname1
.
Birisi bunu gerçek dünyada nasıl ve neden kullanır? Kullanımının pratik örnekleri nelerdir ve dikkate alınması gereken şeyler var mı?
std::wstring BuildDate = WIDEN(__DATE__) L" " WIDEN(__TIME__);
ve tüm dizeyi bir kerede örtük olarak oluşturabilirsiniz.