Page 198 - Project Akhir Media Pendidikan
P. 198

union nama_struktur {
                           tipe_data field1;
                           tipe_data field2;
                           ...
                        } var1, var2, ...;         /* ingat tanda titik koma */

                      Agar Anda dapat lebih memahami perbedaan yang terdapat antara union dan struktur,
                      coba Anda perhatikan contoh program berikut dimana akan ditunjukkan bahwa setiap
                      field dari union akan mengacu ke alamat yang sama.


                      #include <stdio.h>

                      /* Mendefinisikan sebuah struktur */
                      struct STRUKTUR {
                         int x;
                         char y;
                      } S;
                      /* Mendefinisikan sebuah union */
                      union UNION {
                         int  x;
                         char y;
                      } U;

                      /* Fungsi utama */
                      int main(void) {

                         /* Menampilkan alamat dari field x dan y yang terdapat dalam
                            struktur S */
                         printf(“Pada Struktur S:\n”);
                         printf(“Alamat x \t\t: %p\n”, &(S.x));
                         printf(“Alamat y \t\t: %p\n”, &(S.y));
                         printf(“Ukuran struktur \t: %d byte\n”, sizeof(S));

                         /* Menampilkan alamat dari field x dan y yang terdapat dalam
                            union U */
                         printf(“Pada Union U:\n”);
                         printf(“Alamat x \t\t: %p\n”, &(U.x));
                         printf(“Alamat y \t\t: %p\n”, &(U.y));
                         printf(“Ukuran union \t\t: %d byte\n”, sizeof(U));

                         return 0;
                      }



                      Hasil yang akan diperoleh dari program di atas adalah sebagai berikut.


                      Pada Struktur S:

                                                          194
   193   194   195   196   197   198   199   200   201   202