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

Union C Dijelaskan: Manajemen Memori Efisien untuk Beberapa Tipe Data

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

Mendefinisikan Union

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

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

union tag bersifat opsional dan setiap definisi anggota adalah definisi variabel normal, seperti int i; atau float f; atau definisi variabel valid lainnya. Pada akhir definisi union, sebelum titik koma akhir, Anda dapat menentukan satu atau lebih variabel union tetapi ini bersifat opsional. Berikut adalah cara Anda mendefinisikan jenis union bernama Data dengan tiga anggota i, f, dan str −

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

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

Memori yang diisi oleh union akan cukup besar untuk menampung anggota terbesar dari union. Misalnya, di contoh di atas, tipe Data akan menempati 20 byte ruang memori karena ini adalah ruang maksimum yang dapat diisi oleh string karakter. Contoh berikut menampilkan ukuran memori total yang diisi oleh union di atas −

Live Demo
 #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; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 Memory size occupied by data : 20 

Mengakses Anggota Union

Untuk mengakses anggota apa pun dari union, kita menggunakan member access operator (.). Operator akses anggota dikodekan sebagai titik di antara nama variabel union dan anggota union yang ingin kita akses. Anda akan menggunakan kata kunci union untuk mendefinisikan variabel dengan tipe union. Contoh berikut menunjukkan cara menggunakan union dalam program −

Live Demo
 #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; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

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

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

Sekarang mari kita lihat contoh yang sama sekali lagi tempat kita akan menggunakan satu variabel pada satu waktu yang merupakan tujuan utama dari memiliki union −

Live Demo
 #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; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah 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: Evolusi Komputasi Program Tersimpan
  2. Data Komprehensif Op-Amp: Datasheet National Semiconductor & CA3130
  3. Memahami Tipe Data C++: Dasar, Modifikasi, dan Praktik Terbaik
  4. Tipe Data C Dijelaskan: int, float, char, dan Lainnya – Panduan Lengkap
  5. Union C Dijelaskan: Definisi, Penggunaan, dan Perbandingan dengan Struktur
  6. Menguasai Tipe Data Python: Panduan Praktis
  7. Memahami Tipe Data C: Panduan Lengkap
  8. Struktur Data C++: Membangun Program Efisien dengan Array, Struct, dan Lainnya
  9. Menguasai Abstraksi Data C++: Sederhanakan Desain dengan Pemisahan Antarmuka-Implementasi
  10. Enkapsulasi Data C++: Lindungi Kode Anda