C-তে জেনেরিক কীওয়ার্ডটি বিভিন্ন ডেটা প্রকারের জন্য MACRO সংজ্ঞায়িত করতে ব্যবহৃত হয়। এই নতুন কীওয়ার্ডটি C11 স্ট্যান্ডার্ড রিলিজে সি প্রোগ্রামিং ভাষায় যোগ করা হয়েছিল। _জেনারিক কীওয়ার্ডটি প্রোগ্রামারকে আরও দক্ষ উপায়ে MACRO ব্যবহার করতে সাহায্য করার জন্য ব্যবহার করা হয়।
এই কীওয়ার্ডটি ভেরিয়েবলের প্রকারের উপর ভিত্তি করে ম্যাক্রো অনুবাদ করে। একটি উদাহরণ নেওয়া যাক
#define dec(x) _Generic((x), long double : decl, \ default : Inc , \ float: incf )(x)
উপরের সিনট্যাক্সটি হল যে কোন MACRO কে বিভিন্ন পদ্ধতির জন্য জেনেরিক হিসাবে ঘোষণা করা যায়৷
একটি উদাহরণ কোড নেওয়া যাক, এই কোডটি একটি MACRO সংজ্ঞায়িত করবে যা ডেটা প্রকারের উপর ভিত্তি করে মান প্রদান করবে −
উদাহরণ
#include <stdio.h> #define typecheck(T) _Generic( (T), char: 1, int: 2, long: 3, float: 4, default: 0) int main(void) { printf( "passing a long value to the macro, result is %d \n", typecheck(2353463456356465)); printf( "passing a float value to the macro, result is %d \n", typecheck(4.32f)); printf( "passing a int value to the macro, result is %d \n", typecheck(324)); printf( "passing a string value to the macro, result is %d \n", typecheck("Hello")); return 0; }
আউটপুট
passing a long value to the macro, result is 3 passing a float value to the macro, result is 4 passing a int value to the macro, result is 2 passing a string value to the macro, result is 0