«c-preprocessor» etiketlenmiş sorular

C ve C ++ dil programlarını derlemeden önce uygulanan metinsel makro işlemci. Bu etiket ayrıca Objective-C veya C # içindeki #directives gibi türetilmiş veya aynı özelliklere sahip diğer derleyiciler / diller hakkında sorular için de kullanılabilir.

7
Zaten tanımlanmamışsa neden yalnızca bir makro tanımlansın?
C kod tabanımızın tamamında, her makronun aşağıdaki şekilde tanımlandığını görüyorum: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif Yalnızca makroları tanımlamak yerine bu tanımlama kontrollerini yapmanın mantığı nedir? #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f …


4
Makro değişkeni dize değişmezi olarak nasıl kullanılır?
Değişken isminin hem bir dize değişmez gösterimini hem de değişkenin kendisini bir işleve geçirecek bir makroyu nasıl yazacağımı bulmaya çalışıyorum. Örneğin aşağıdaki işlev verildi. void do_something(string name, int val) { cout << name << ": " << val << endl; } Bunu yapabilmek için bir makro yazmak istiyorum: int my_val …

1
## (çift hash) bir önişlemci yönergesinde ne yapar?
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; Yukarıdaki satır Unreal 4'ten alınmıştır ve bunu gerçek dışı forumlarda sorabileceğimi biliyorum, ancak bence bu, burada sorulmasını garanti eden genel bir C ++ sorusu. İlk satırın bir makroyu tanımladığını anlıyorum, ancak C ++ 'da önişlemci kuruntuları konusunda çok bilgili değilim ve bu yüzden orada …

3
C Ön İşlemcisini kullanarak int'i dizeye birleştirin
C'yi kullanarak bir #define'd int'i bir #define' d dizesine nasıl birleştirebileceğimi anlamaya çalışıyorum. Ön İşlemcisini . Derleyicim CentOS 5 üzerinde GCC 4.1'dir. Çözüm ayrıca MinGW için de çalışmalıdır. Bir dizeye bir sürüm numarası eklemek istiyorum, ancak onu çalıştırabilmemin tek yolu, dizeler olarak tanımlanan sürüm numarasının bir kopyasını oluşturmaktır. Bulabildiğim en …


13
## önişlemci operatörünün uygulamaları ve dikkate alınması gereken şeyler nelerdir?
Ö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. …


6
Objective-C'de #define vs const
Objective-C'de yeniyim constve önişleme yönergesi ile ilgili birkaç sorum var #define. İlk olarak, kullanarak sabitin türünü tanımlamanın mümkün olmadığını anladım #define. Neden? İkincisi, birini diğerine göre kullanmanın herhangi bir avantajı var mı? Son olarak, hangi yol daha verimli ve / veya daha güvenlidir?


5
Makro kullanarak kaynak dosya satırları sayılsın mı?
C / C ++ önişlemcisini kullanarak, kaynak dosyadaki satırları bir makroya veya bir tür derleme zamanı kullanılabilir değere saymak mümkün müdür? Örneğin ben yerine MAGIC1, MAGIC2ve MAGIC3kullanırken aşağıda ve bir şekilde değerini 4 olsun MAGIC3? MAGIC1 // can be placed wherever you like before the relevant // lines - either …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.