DAFTAR LABEL POPULER PENELITIAN.ID
DAFTAR LABEL POPULER PENELITIAN.ID
PENELITIAN.ID
DAFTAR ARSIP POSTING PENELITIAN.ID
DAFTAR ARSIP POSTING PENELITIAN.ID
Union Bahasa C dan Penjelasannya
- Dapatkan link
- Aplikasi Lainnya
Contoh pada program bahasa C, kedua variabel x dan y akan merbagi lokasi memori yang sama. Jika nilai x dilakukan perubahan, maka hal tersebut juga dapat direpleksikan pada variabel y.
Contoh:
#include <stdio.h>
// Deklarasi union adalah sama
// seperti deklarasi struct
// bahasa C.
union test
{int x, y;};
int main()
{
// Sebuah variabel union t
union test t;
// t.y juga mendapatkan nilai
// sebesar 2
t.x = 2;
printf("After making x = 2:\n x = %d, y = %d\n\n",
t.x, t.y);
// t.x juga mendapatkan update
// nilai menjadi 10
t.y = 10;
printf("After making y = 10:\n x = %d, y = %d\n\n",
t.x, t.y);
return 0;
}
Output:After making x = 2:
x = 2, y = 2
After making y = 10:
x = 10, y = 10
Cara Menentukan Ukuran Union Oleh Kompilator
Ukuran dari sebuah Union diambil berdasarkan nilai ukuran dari besar anggota yang terdapat pada Union.
Contoh:
#include <stdio.h>
union test1 {
int x;
int y;
} Test1;
union test2 {
int x;
char y;
} Test2;
union test3 {
int arr[10];
char y;
} Test3;
int main()
{
printf("sizeof(test1) = %lu, sizeof(test2) = %lu, "
"sizeof(test3) = %lu",
sizeof(Test1),
sizeof(Test2),
sizeof(Test3));
return 0;
}
Output:sizeof(test1) = 4, sizeof(test2) = 4, sizeof(test3) = 40
Pointer Ke Union
Sama seperti struct, pada Union juga dapat diciptakan pointer ke Union untuk mengakses anggota dengan menggunakan operator panah (->). Berhatikan demonstrasi contoh program berikut.
Contoh:
#include <stdio.h>
union test {
int x;
char y;
};
int main()
{
union test p1;
p1.x = 65;
// p2 adalah pointer
// ke union p1.
union test* p2 = &p1;
// Mengakses anggota union
// menggunakan pointer.
printf("%d %c", p2->x, p2->y);
return 0;
}
Output:65 A
Penerapan Union pada Bahasa C
Union dapat sangat bergunakan pada berbagai macam situasi dalam pemrograman Bahasa C, dimana dibutuhkan suatu lokasi memori yang sama untuk dua jenis atau lebih anggota yang memiliki nama yang berbeda. Contoh, dilakukan suatu implementasi dari sebuah struktur tree binari, dimana setiap bagian node leaf-nya memiliki sebuah nilai data double, sementara setiap internal node-nya memiliki pointer, dimana ke dua children-nya berbeda, tetapi tidak memiliki data apapun. Jika ingin mendeklarasikan hal tersebut menggunakan Bahasa C, maka dapat dilakukan dengan cara membuat kode program sebagai berikut:
struct NODE {
struct NODE* left;
struct NODE* right;
double data;
};
Maka setiap node membutuhkan memori sebesar 16 bytes, dengan separuh ukuran byte tersebut akan terbuang untuk setiap tipe data dari node yang digunakan. Namun demikian, jika node dideklarasikan dengan cara yang lain, maka ruang yang terbuang tersebut dapat dihemat dengan cara sebagai berikut:
struct NODE {
bool is_leaf;
union {
struct
{
struct NODE* left;
struct NODE* right;
} internal;
double data;
} info;
};
- Dapatkan link
- Aplikasi Lainnya
Komentar
Posting Komentar
Hubungi admin melalui Wa : +62-896-2514-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
~ Ikatlah Ilmu dengan Memostingkannya ~
Apa yang dimaksud dengan union pada Bahasa C?
BalasHapusUnion pada Bahasa C merupakan tipe data khusus yang memungkinkan untuk menyimpan tipe data yang berbeda pada lokasi memori yang sama.
HapusPengguna dapat menentukan union dengan banyak anggota, tetapi hanya terdapat satu anggota saja yang dapat berisi nilai pada waktu tertentu.
HapusUnion pada bahasa C menyediakan cara yang lebih efisien untuk menggunakan lokasi memori yang sama untuk berbagai tujuan penggunaan yang berbeda-beda.
HapusApa perbedaan antara struct dan union pada bahasa C?
BalasHapusStruct pada bahasa C merupakan wadah yang digunakan untuk menyimpan variabel data dari tipe data yang berbda dan juga mendukung penyimpanan variabel yang ditentukan pengguna, sedangkan union merupakan wadah serupa seperti struct yang dapat menampung berbagai jenis variabel yang berbeda yang ditentukan oleh pengguna namun pada satu lokasi memori yang sama.
Hapus