Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C - Serikat

serikat adalah tipe data khusus yang tersedia di C yang memungkinkan untuk menyimpan tipe data yang berbeda di lokasi memori yang sama. Anda dapat menentukan serikat pekerja dengan banyak anggota, tetapi hanya satu anggota yang dapat berisi nilai pada waktu tertentu. Union menyediakan cara yang efisien dalam menggunakan lokasi memori yang sama untuk berbagai tujuan.

Mendefinisikan Serikat

Untuk menentukan serikat pekerja, Anda harus menggunakan serikat pernyataan dengan cara yang sama seperti yang Anda lakukan saat mendefinisikan struktur. Pernyataan serikat pekerja mendefinisikan tipe data baru dengan lebih dari satu anggota untuk program Anda. Format pernyataan serikat pekerja adalah sebagai berikut

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

tag serikat pekerja adalah opsional dan setiap definisi anggota adalah definisi variabel normal, seperti int i; atau mengambang f; atau definisi variabel valid lainnya. Di akhir definisi serikat, sebelum titik koma terakhir, Anda dapat menentukan satu atau lebih variabel serikat tetapi opsional. Berikut adalah cara Anda mendefinisikan tipe gabungan bernama Data yang memiliki tiga anggota i, f, dan str

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

Sekarang, variabel Data type dapat menyimpan integer, angka floating-point, atau string karakter. Ini berarti satu variabel, yaitu lokasi memori yang sama, dapat digunakan untuk menyimpan beberapa jenis data. Anda dapat menggunakan tipe data bawaan atau yang ditentukan pengguna di dalam serikat berdasarkan kebutuhan Anda.

Memori yang ditempati oleh serikat pekerja akan cukup besar untuk menampung anggota serikat pekerja terbesar. Misalnya, pada contoh di atas, Tipe data akan menempati 20 byte ruang memori karena ini adalah ruang maksimum yang dapat ditempati oleh string karakter. Contoh berikut menampilkan total ukuran memori yang ditempati oleh gabungan di atas −

Demo Langsung
#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 dieksekusi, menghasilkan hasil sebagai berikut

Memory size occupied by data : 20

Mengakses Anggota Serikat

Untuk mengakses setiap anggota serikat, kami menggunakan operator akses anggota (.) . Operator akses anggota dikodekan sebagai titik antara nama variabel serikat pekerja dan anggota serikat yang ingin kita akses. Anda akan menggunakan kata kunci union untuk mendefinisikan variabel tipe serikat pekerja. Contoh berikut menunjukkan cara menggunakan serikat pekerja dalam program −

Demo Langsung
#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 dieksekusi, menghasilkan hasil sebagai berikut

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

Di sini, kita dapat melihat bahwa nilai i dan f anggota serikat menjadi rusak karena nilai akhir yang ditetapkan ke variabel telah menempati lokasi memori dan inilah alasan mengapa nilai str anggota dicetak dengan sangat baik.

Sekarang mari kita lihat contoh yang sama sekali lagi di mana kita akan menggunakan satu variabel pada satu waktu yang merupakan tujuan utama dari serikat pekerja −

Demo Langsung
#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 dieksekusi, menghasilkan hasil sebagai berikut

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

Di sini, semua anggota dicetak dengan sangat baik karena satu anggota digunakan pada satu waktu.


Bahasa C

  1. Mikroprosesor
  2. Data Op-Amp
  3. Tipe Data C++
  4. Tipe Data C
  5. C Serikat
  6. Tipe Data Python
  7. C - Tipe Data
  8. Struktur Data C++
  9. Abstraksi Data dalam C++
  10. Enkapsulasi Data dalam C++