Nasıl bir değeri göstermek için ne yapmalıyım #derleme zamanında nasıl tanımlarız?
Benim kodu kullanıyor ne düşündüğünü anlamaya çalışıyorum. Böyle bir şey yapmak istiyorum:
#error BOOST_VERSION
ama bu kadar basit BOOST_VERSİON genişletmek değil.
Bunun dışında çalıştırma programından baskı yapabileceğimi biliyorum, Ve bu kadar basit giriş ve çıkış cevabı bulmak için bakabileceğimi biliyorum. Derleme sırasında bunun için bir çözüm bulunması faydalı olabilir gibi hissediyorum.
CEVAP
BOOST_PP_STRINGIZE
C normal C için değil , mükemmel bir çözüm gibi görünüyor
İşte GNU CPP: benim çözüm
/* Some test definition here */
#define DEFINED_BUT_NO_VALUE
#define DEFINED_INT 3
#define DEFINED_STR "ABC"
/* definition to expand macro then apply to pragma message */
#define VALUE_TO_STRING(x) #x
#define VALUE(x) VALUE_TO_STRING(x)
#define VAR_NAME_VALUE(var) #var "=" VALUE(var)
/* Some example here */
#pragma message(VAR_NAME_VALUE(NOT_DEFINED))
#pragma message(VAR_NAME_VALUE(DEFINED_BUT_NO_VALUE))
#pragma message(VAR_NAME_VALUE(DEFINED_INT))
#pragma message(VAR_NAME_VALUE(DEFINED_STR))
Tanımlar neden yukarıda:
test.c:10:9: note: #pragma message: NOT_DEFINED=NOT_DEFINED
test.c:11:9: note: #pragma message: DEFINED_BUT_NO_VALUE=
test.c:12:9: note: #pragma message: DEFINED_INT=3
test.c:13:9: note: #pragma message: DEFINED_STR="ABC"
İçin< . "interger olarak tanımlanan"
Nasıl sahnelenecek olan değişiklikleri...
Nasıl bir UİBarButtonİtem gizlemek gös...
Nasıl eclipse Package Explorer açık bi...
Numarayı nasıl android bir EditText kl...
Nasıl Mysql " tüm işlemleri öldürm...