Minggu, Juni 28, 2020

Keyword _Generic pada bahasa C

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

Output:
eeks 11

Meskipun penggunaan makro perlu dihidari. 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. 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:
Output:
Catatan: jika menjalankan kompilator C11 maka nilai keluaran adalah sebagai berikut.
3
0
3

Output:
2
0





Related Posts

Keyword _Generic pada bahasa C
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "