Manfaat Utama Keyword _Generic pada Bahasa C
// 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;
}
// 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;
}
// 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;
}
amiiinn
BalasHapusApa yang dimaksud dengan keyword _Generic pada bahasa pemrograman C?
BalasHapusKeyword _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.
HapusPada dasarnya keyword tersebut bekerja seberti sebuah switch, dimana label adalah nama jenis yang diuji terhadap jenis ekspresi pertama. Hasilnya menjadi kesimpulan dari evaluasi _Generic().
BalasHapusPenggunaan 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.
BalasHapusApakah akan ada standar baru lagi yang lebih update daripada standar C11 pada bahasa C?
BalasHapusJawabannya adalah iya,
HapusC11 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.