Latest web development tutorials

serikat C

Union adalah tipe khusus dari data, yang memungkinkan Anda untuk lokasi yang berbeda dalam jenis yang sama dari data yang tersimpan dalam memori.Anda dapat menentukan persatuan dengan anggota lainnya, tapi setiap saat hanya ada satu anggota dengan nilai. Serikat menyediakan cara untuk menggunakan lokasi memori yang sama dengan cara yang efektif.

Definisi serikat

Untuk menentukan serikat, Anda harus menggunakan pernyataanserikat, dan menentukan struktur dengan cara yang sama.Pernyataan serikat mendefinisikan tipe data baru, dengan pluralitas anggota. Uni Format pernyataan adalah sebagai berikut:

union [union tag]
{
   member definition;
   member definition;
   ...
   member definition;
} [one or more union variables];  

tag serikat adalah opsional, setiap definisi anggota adalah definisi standar dari variabel, seperti int i; atau mengapung f, atau definisi variabel valid lainnya.Sebelum akhir koma akhir tubuh umum didefinisikan, Anda dapat menentukan satu atau lebih dari variabel serikat, yang opsional. Definisi berikut tipe tubuh umum bernama Data, ada tiga anggota i, f dan str:

union Data
{
   int i;
   float f;
   char  str[20];
} data;  

Sekarang, variabel jenisdata dapat menyimpan integer, float, atau string.Ini berarti bahwa variabel (lokasi memori yang sama) dapat menyimpan sejumlah berbagai jenis data. Anda dapat menggunakan built-in atau user-defined jenis data dalam tubuh umum yang diperlukan.

Union harus memori penyimpanan yang cukup ditempati oleh anggota terbesar dari serikat. Misalnya, dalam contoh di atas, data akan menempati 20 byte ruang memori, karena masing-masing anggota, ruang yang ditempati oleh string adalah terbesar. Contoh berikut akan menunjukkan persatuan di atas diduduki ukuran total memori:

#include <stdio.h>
#include <string.h>
 
union Data
{
   int i;
   float f;
   char  str[20];
};
 
int main( )
{
   union Data data;        

   printf( "Memory size occupied by data : %d\n", sizeof(data));

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Memory size occupied by data : 20

anggota serikat akses

Untuk mengakses ke negara-negara anggota umum, kita menggunakanoperator akses anggota (.).Operator akses anggota adalah periode nama variabel dan anggota serikat serikat kami untuk diakses antara. Anda dapat menggunakan kata kunci untuk mendefinisikan variabel jenis serikatserikat.Contoh berikut menunjukkan penggunaan serikat:

#include <stdio.h>
#include <string.h>
 
union Data
{
   int i;
   float f;
   char  str[20];
};
 
int main( )
{
   union Data data;        

   data.i = 10;
   data.f = 220.5;
   strcpy( data.str, "C Programming");

   printf( "data.i : %d\n", data.i);
   printf( "data.f : %f\n", data.f);
   printf( "data.str : %s\n", data.str);

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

data.i : 1917853763
data.f : 4122360580327794860452759994368.000000
data.str : C Programming

Di sini kita dapat melihat nilai-nilai darii dan serikat fanggota yang rusak, karena nilai-nilai yang ditetapkan ke variabel dari lokasi memori terakhir diduduki, yang merupakan anggotastralasan untuk keluaran utuh. Sekarang mari kita lihat satu dan contoh yang sama, kali ini kita hanya menggunakan satu variabel pada saat yang sama, ia juga menunjukkan tujuan utama menggunakan serikat:

#include <stdio.h>
#include <string.h>
 
union Data
{
   int i;
   float f;
   char  str[20];
};
 
int main( )
{
   union Data data;        

   data.i = 10;
   printf( "data.i : %d\n", data.i);
   
   data.f = 220.5;
   printf( "data.f : %f\n", data.f);
   
   strcpy( data.str, "C Programming");
   printf( "data.str : %s\n", data.str);

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

data.i : 10
data.f : 220.500000
data.str : C Programming

Di sini, semua anggota dapat output utuh, karena pada saat yang sama hanya menggunakan satu anggota.