SORU
30 Mayıs 2011, PAZARTESİ


Uygun C yapı hazırlama

Yeniden rahat bir şekilde 'pod' C yapılar. bulmaya çalışıyorum Şimdi, aşağıdaki yapı düşünün:

struct FooBar {
  int foo;
  float bar;
};
// just to make all examples work in C and C  :
typedef struct FooBar FooBar;

Eğer uygun C Bu yeniden istersem (!), Sadece yazabilirim:

/* A */ FooBar fb = { .foo = 12, .bar = 3.4 }; // illegal C  , legal C

Eğer değiştirirsem boynumu kırmak için yapılmış olması beni düşündürüyor çünkü açıkça aşağıdaki gösterimde önlemek istiyorum unutmayınhiçbir şeygelecekte: yapı

/* B */ FooBar fb = { 12, 3.4 }; // legal C  , legal C, bad style?

/* A */ örnekte olduğu gibi C aynı (ya da en azından benzer) elde etmek için, aptalca bir kurucu uygulamak istiyorum:

FooBar::FooBar(int foo, float bar) : foo(foo), bar(bar) {}
// ->
/* C */ FooBar fb(12, 3.4);

Kaynar su için iyi, ama tembel insanlar (tembellik iyi bir şey, değil mi?) için uygun değildir. Ayrıca, açıkça bir üye gidecek olan devlet olarak hemen hemen /* B */ örnek kadar kötü.

Bu yüzden, benim sorum C /* A */ veya daha iyi benzer elde edebilirim nasıl temelde. Alternatif olarak, bunu yapmak istemiyorum neden bir açıklama (benim zihinsel paradigma neden kötü olduğunu yani) benim için dert değil.

EDİT

TarafındanuygunYani aynı zamandasürdürülebilirveyedeksiz.

CEVAP
31 Mayıs 2011, Salı


style A C izin verilmez ve style B style BX kullanma hakkında istemediğine göre:

FooBar fb = { /*.foo=*/ 12, /*.bar=*/ 3.4 };  // :)

En azından bir ölçüde yardımcı olur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • iMasterful

    iMasterful

    11 EYLÜL 2009
  • ThePhestor

    ThePhestor

    22 Mart 2011