Lompat ke konten Lompat ke sidebar Lompat ke footer

Anonimus Union dan Struct Bahasa C dan Penjelasannya

Pada standar C11 Bahasa C, anonimus Union dan Struct merupakan fitur yang telah ditambahkan pada penggunaan bahasa pemrograman tersebut. Anonimus Union dan Struct juga dikenal dengan nama lain yaitu unnamed Unions dan unnamed Struct, karena penggunaan dari keduanya tidak memiliki nama. Karena terdapat banyak sekali nama untuk Union dan Struct, maka object atau variabel langsung dari keduanya tidak diciptakan dan digunakan pada Union dan Struct bersarang.

Anonimus Union dan Struct Bahasa C dan Penjelasannya
Anonimus Union dan Struct Bahasa C

Sebelum memahami lebih dalam materi tentang Anonimus Union dan Struct Bahasa C dan Penjelasannya, terlebih dahulu pelajari materi tentang: Perbedaan Struct Bahasa C dan C++ [klik], Perbedaan Antara Struct dan Union pada Bahasa C [klik], dan Anggota Array Fleksibel Struct Pada Bahasa C [klik].

Definisinya sama seperti penggunaan Union biasa, namun tanpa menggunakan nama atau tag.

Contoh:
// Contoh Anonymous union
union
{
char alpha;
int num;
};

// Contoh Anonymous struct
struct
{
char alpha;
int num;
};


Karena tidak terdapat variabel dan nama, maka anggota dari Union dapat diakses secara langsung. Bentuk akses ini hanya bekerja di dalam scope dimana anonimus Unions didefinisikan.

Baca Juga:

Contoh: Program bahasa C menggunakan Anonimus Union.

// Program Bahasa C untuk

// mendemonstrasikan cara

// kerja dari anonimus union.

#include <stdio.h>


struct Scope 

{

// Anonimus union

union 

{char alpha;

int num;};

};


int main()

{

struct Scope x, y;


x.num = 65;


y.alpha = 'A';


// Setiap anggota dari union

// dapat diakses secara

// langsung.

printf("y.alpha = %c, x.num = %d", y.alpha, x.num);


return 0;

}

Output:
x.alpha = A, x.num = 65

Catatan: Hanya dapat dilakukan akses ke satu anggota dari sebuah Union pada suatu satu waktu bersamaan. Jika terdapat anggota lain yang telah ditetapkan pada anggota sebelumnya, maka anggota tersebut akan dihapus dari Union Bahasa C.

Contoh:

// Program bahasa C untuk

// mendemonstrasikan cara

// kerja anonimus struct.

#include<stdio.h>


struct Scope

{

// Anonymous struc

struct

{char alpha;

int num;};

};


int main()

{


struct Scope x;


x.num = 65;


x.alpha = 'B';


// Setiap anggota struct dapat

// diakses secara langsung.

printf("x.alpha = %c, x.num = %d", x.alpha, x.num);


return 0;

}

Output:
x.alpha = B, x.num = 65

Anonimus Union dan Struct C++
Anonimus Union dan Struct pada C++ tidak dapat digunakan, karena bukan bagian dari standar C++ 11, tetapi sebagian dari kompilator C++ mendukung penggunaan anonimus Unions dan Struct tersebut pada C++. Karena Anonimis Union dan Struct hanya merupakan fitur, maka implementasinya pada C++ tidak diperbolehkan untuk memiliki anggota protected dan private, anggota static, dan fungsi pada C++.


Artikel ini didedikasikan kepada: Fanny Raka Satria, Febrian Calvin Valintino, Hidayatul Mukharomah, Kurnia Okta Lestari, dan Mawadatul Imtikhanah.

7 komentar untuk "Anonimus Union dan Struct Bahasa C dan Penjelasannya"

  1. Apa yang dimaksud dengan struct anonim pada bahasa C?

    BalasHapus
    Balasan
    1. Deklaarasi struct anonim merupakan bentuk deklarasi yang tidak mendeklarasikan tag untuk struct itu sendiri, atau object atau nama typedef.

      Hapus
    2. Struct anonim tidak diperbolehkan penggunaannya pada C++, berbeda pada bahasa C yang diperbolehkan penggunaannya.

      Hapus
  2. Apa yang dimaksud dengan union anonim pada Bahasa C?

    BalasHapus
    Balasan
    1. Union anonim merupakan bentuk untuk yang digunakan tanpa menggunakan nama dari union itu sendiri, dan tidak bisa diikuti oleh deklarator.

      Hapus
    2. Union anonim tidak termasuk kategori tipe data, dimana union anonim itu sendiri berfungsi untuk mendefinisikan objek yang tidak disebutkan namanya pada program bahasa C.

      Hapus
    3. Nama anggota union anonim harus berbeda dari nama lain dalam lingkun dimana union tersebut dinyatakan.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-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 -
- Big things start from small things -