SORU
1 Aralık 2008, PAZARTESİ


Nasıl ANSI C bir yapı başlatılamıyor

Yapı elemanı, beyan ve başlatma split başlatmak istiyorum. Sahip olduğum tek şey bu:

typedef struct MY_TYPE {
  boolean flag;
  short int value;
  double stuff;
} MY_TYPE;

void function(void) {
  MY_TYPE a;
  ...
  a = { true, 15, 0.123 }
}

Bu ve ANSI C MY_TYPE yerel bir değişken (C89, C90, C99, C11, vb.) bildirmek başlatmak için yolu nedir? Ya orada bir şey daha iyi ya da en azından çalışıyor mu?

GüncellemeBenim ihtiyaçlarına göre her alt öğesi yaptığım yerde statik başlatma öğesi sona erdi.

CEVAP
1 Aralık 2008, PAZARTESİ


(ANSI) C99, bir kullanabilirsinizbaşlatıcı belirlenmişbir yapısı başlatılamıyor:

MY_TYPE a = { .flag = true, .value = 123, .stuff = 0.456 };

Edit: Diğer üyeler sıfır olarak başlatılır: "Atlanmış alan üyeleri örtülü olarak statik nesneler olarak aynı depolama süresi başlatılır." (https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • disneychannel

    disneychanne

    19 ŞUBAT 2006
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014