Artikel Terbaru

4 Keunggulan Utama Bitcoin

Sebelum membicarakan tentang bitcoin, terlebih dahulu mari pahami apa yang dimaksud dengan uang. Apa sebenarnya yang dimaksud dengan uang? Pada dasarnya, uang adalah segala sesuatu yang mewakili nilai tertentu.

Manfaat Utama Keyword _Generic pada Bahasa C

Kekurangan umum dari makro pada bahasa C dan C++ adalah argumen yang diperiksa sangatlah ketat. Namun, berbeda dengan yang makro dapat beroperasi pada tipe dari berbagai variabel berbeda tanpa harus diperiksa berikut.

// Program bahasa C untuk

// mengilustrasikan fungsi

// makro. 

#include<stdio.h> 

#define INC(P) ++P

 

int main() 

char *p = "Bambang"

int x = 10

 

printf("%s ", INC(p)); 

printf("%d", INC(x)); 

 

return 0

}

Output:
ambang 11

Meskipun penggunaan makro perlu dihidari pada pembuatan program, tetapi setelah implementasi dari standard C11 pada bahasa C, maka makro dapat digunakan dengan bantuan dari keyword new "_Generic". Dapat dilakukan pendefinsian makro untuk tipe-tipe data berbeda seperti diperlihatkan pada contoh berikut. Contoh, makro INC(X) diterjemahkan ke INCI(X), INC(X) atau INCf(X) tergantung pada tipe data dari x:

#define INC(x) _Generic((x), long double: INCl, \
default: INC, \
float: INCf)(x)

Contoh:

// Program bahasa C untuk

// mengilustrasikan fungsi

// makro. 

#include <stdio.h>

 

int main(void

// Keyword _Generic bertindak

// sebagai swich yang memilah

// operasi berdasarkan tipe

// data dari argumen.

printf("%d\n", _Generic( 1.0L, float:1, double:2, long double:3, default:0)); 

 

printf("%d\n", _Generic( 1L, float:1, double:2, long double:3, default:0)); 

 

printf("%d\n", _Generic( 1.0L, float:1, double:2, long double:3)); 

 

return 0

}

Output:
Catatan: Jika dijalankan pada kompilator C11, maka nilai keluaran adalah sebagai berikut.
3
0
3

// Program bahasa C untuk

// mengilustrasikan fungsi

// makro. 

#include <stdio.h>

#define Tetot(T) _Generic( (T), char: 1, int: 2, long: 3, default: 0)

 

int main(void

// Tipe char mengembalikan

// nilai ASCII yang bertipe

// integer. 

printf("%d\n", Tetot('A')); 

 

// Nilai A adalah sebuah

// string. 

printf("%d",Tetot("A")); 

return 0

}

Output:
2
0

Komentar

  1. Apa yang dimaksud dengan keyword _Generic pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Keyword _Generic dalam bahasa C digunakan untuk mendefinisikan MAKRO untuk tipe data yang berbeda. Keyword baru tersebut baru ditambahkan pada bahasa C pada standar C11. Keyword _Generic digunakan untuk membantu programmer untuk menggunakan MAKRO dalam sebuah program dengan lebih efisien. Keyword tersebut menerjemahkan Makro berdasarkan jenis dari tipe variabel yang digunakan.

      Hapus
  2. Pada dasarnya keyword tersebut bekerja seberti sebuah switch, dimana label adalah nama jenis yang diuji terhadap jenis ekspresi pertama. Hasilnya menjadi kesimpulan dari evaluasi _Generic().

    BalasHapus
  3. Penggunaan dari Generic memungkian user untuk membuat sebuah class / struct/ fungsi yang bekerja sama persis seperti yang diketik secara statis tanpa perlu menentukan jenis yang tepat dari sebelumnya.

    BalasHapus
  4. Apakah akan ada standar baru lagi yang lebih update daripada standar C11 pada bahasa C?

    BalasHapus
    Balasan
    1. Jawabannya adalah iya,


      C11 yang sebelumnya adalah C1X adalah nama informal untuk standar ISO / IEC 9899:2011, yang merupakan standar lama untuk bahasa pemrograman C. Standar ini menggantikan C99 atau Standar ISO / IEC 9899: 1999 yang juga sebelumnya telah digantikan oleh C18 atau standar ISO / IEC 9899: 2018.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

4 Contoh Program Java dan Multiple Inheritance

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java

3 Jenis Utama Looping pada Java