Sabtu, 16 Juli 2022

Union | Bahasa C

Pengertian Union

union digunakan untuk menaruh tipe data yang berbeda pada lokasi memori yang sama. Ini biasanya digunakan untuk mengatur penyimpanan memori agar tidak terlalu besar. Sebagai contoh jenis kendaraan yang memiliki 2 jenis id yakni nomor id atau plat. Dimana nomor id digunakan untuk mengenal kendaraan sebelum terjual, sedangkan plat untuk kendaraan yang sudah terjual.


#include <stdio.h>

#include <string.h>


typedef struct {

  char merk[20];

  int tahun;

  int tipe_id; /* 0 untuk nomor identitas, 1 untuk plat nomor kendaraan */

  union {

    int no_id;

    char plat[20];

  } id;

} kendaraan;


int main() {

  kendaraan mobil1;

  strcpy(mobil1.merk, "Ford");

  mobil1.tahun = 2017;

  mobil1.tipe_id = 0;

  mobil1.id.no_id = 123098;


  printf("Mobil %s, %d \n", mobil1.merk, mobil1.tahun);

  

  printf("Merk: %s\n", mobil1.merk);

  printf("Model Tahun: %d\n", mobil1.tahun);

  if (mobil1.tipe_id == 0)

    printf("ID: %d\n", mobil1.id.no_id);

  else

    printf("ID: %s\n", mobil1.id.plat);

  return 0;

}

union bahasa c

Pointer Dalam Union

Dalam penggunaan union kita bisa gunakan *ptr untuk pointernya. Dan ini juga bisa digunakan untuk mengubah nilai baik pointer maupun union. Contohnya bisa dilihat dalam script kode nilai.c dibawah ini:


#include <stdio.h>


union nilai {

  int hasil;

  float hasil2;

  char ket[20]; 

};


int main() {  

  union nilai mtk;

  union nilai *ptr = NULL;

  ptr = &mtk;

  ptr->hasil2=8.2;

  printf("mtk.hasil2 adalah %0.3f \n", mtk.hasil2);

  printf("ptr->hasil2 adalah %0.3f \n", ptr->hasil2);

  return 0;

}

pointer union bahasa c

Semoga bermanfaat, sekses selalu.

Tidak ada komentar:

Posting Komentar