SORU
12 HAZİRAN 2010, CUMARTESİ


pragma tanımlamak makro

Bir şekilde diğer ifadeleri ile makro pragma bildirimi gömmek var mı?

Böyle bir şey başarmak için çalışıyorum:

#define DEFINE_DELETE_OBJECT(type)                      \
    void delete_ ## type_(int handle);                  \
    void delete_ ## type(int handle);                                                \
    #pragma weak delete_ ## type_ = delete_ ## type

Eğer varsa çözümleri (dalga için Kaydet) destek benim için sorun değil.

CEVAP
12 HAZİRAN 2010, CUMARTESİ


Eğer c99 kullanarak veya 0 x c ediyorsanız pragma operatörü olarak kullanılır

_Pragma("argument")

eşdeğerdir

#pragma argument

makrolar (c99 standardının bölüm 6.10.9 veya c 0x son Komite tasarının 16.9) kullanılabilir dışında

Örneğin,

#define STRINGIFY(a) #a
#define DEFINE_DELETE_OBJECT(type)                      \
    void delete_ ## type ## _(int handle);                  \
    void delete_ ## type(int handle);                   \
    _Pragma( STRINGIFY( weak delete_ ## type ## _ = delete_ ## type) )
DEFINE_DELETE_OBJECT(foo);

içine koymak gcc -E verir

void delete_foo_(int handle); void delete_foo(int handle);
#pragma weak delete_foo_ = delete_foo
 ;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • TokShogun

    TokShogun

    6 HAZİRAN 2009