Rumah  >  Soal Jawab  >  teks badan

c++ - Apakah kegunaan kesatuan dalam bahasa C?

RT, tugasan terakhir struktur ini akan menimpa tugasan sebelumnya, jadi saya ingin tahu tentang senario apakah perkara seperti ini biasanya digunakan?

世界只因有你世界只因有你2658 hari yang lalu997

membalas semua(5)saya akan balas

  • 漂亮男人

    漂亮男人2017-06-12 09:26:44

    Jimat memori dan memudahkan akses kepada bait tinggi dan rendah

    balas
    0
  • 某草草

    某草草2017-06-12 09:26:44

    Tujuan asalnya adalah untuk menjimatkan ingatan Jika anda fikirkan, bahasa C hanya mula digunakan secara besar-besaran pada tahun 1980-an, dan ingatan sangat berharga pada masa itu.

    balas
    0
  • ringa_lee

    ringa_lee2017-06-12 09:26:44

    Boleh menyediakan antara muka akses yang berbeza kepada sekeping data yang sama. . .
    Sebagai contoh, semasa anda melakukan kerja terbenam, anda boleh menulis seperti ini:

    // 没有字节对齐,或者字节对齐为1,int 占4字节
    typedef union {
        unsigined int num;
        struct {
            unsigned char byte0;
            unsigned char byte1;
            unsigned char byte2;
            unsigned char byte3;
        } bytes;
    } Demo;

    Walau bagaimanapun, ia tidak begitu ringkas untuk menulis dengan cara ini, dan kecekapan kod ini dalam PC adalah sama seperti mengambil terus setiap bait melalui peralihan bit. Beri contoh sahaja, jangan terlalu sibuk dengannya.

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:26:44

    Biasanya digunakan untuk menentukan hujung besar dan kecil

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-12 09:26:44

    Ia sering digunakan dalam pembangunan terbenam Biar saya berikan contoh di sini, yang serupa dengan @zonxin di atas

    typedef struct __regular_descriptor_4_high {
        union {
            U32 value;
            struct {
                U32 raid_id0    : 4;
                U32 raid_cmd0   : 4;
                U32 raid_id1    : 4;
                U32 raid_cmd1   : 4;
                U32 raid_id2    : 4;
                U32 raid_cmd2   : 4;
                U32 raid_id3    : 4;
                U32 raid_cmd3   : 4;
            } reg_des_bit;   
        } u; 
    } reg_des_4_high;

    Untuk membaca keseluruhan daftar, anda boleh membaca nilai Untuk menulis fail-bit yang berbeza, gunakan reg_des_bit untuk menulis.

    balas
    0
  • Batalbalas