SORU
2 EYLÜL 2013, PAZARTESİ


Nasıl karışık bir veri tipi (int, float, char, vb) bir dizi içinde saklanabilir?

Bir dizi karışık veri türlerini saklamak istiyorum. Bir insan bunu nasıl yapabilir?

CEVAP
2 EYLÜL 2013, PAZARTESİ


** 3, nam-ı diğer dizi *elementler 13* yapabilirsiniz.

struct {
    enum { is_int, is_float, is_char } type;
    union {
        int ival;
        float fval;
        char cval;
    } val;
} my_array[10];

type Üye her dizi elemanı için seçimi tutmak için kullanılır. Eğer ilk eleman int mağazası istiyorsan, yaparsın yani:

my_array[0].type = is_int;
my_array[0].val.ival = 3;

Dizinin bir öğesine erişmek için,öncelikle bu tür kontrol Birliği'nin ilgili üye kullanmak gerekir.Bunun için switch ifadesi yararlıdır:

switch (my_array[n].type) {
case is_int:
    // Do stuff for integer, using my_array[n].ival
    break;
case is_float:
    // Do stuff for float, using my_array[n].fval
    break;
case is_char:
    // Do stuff for char, using my_array[n].cvar
    break;
default:
    // Report an error, this shouldn't happen
}

type üyesi, her zaman son değeri union saklanan karşılık geldiğinden emin olmak için programcı bırakılır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • USI Events

    USI Events

    6 AĞUSTOS 2013