আইডেন্টিফায়ার হল প্রোগ্রামিং-এ একটি এন্টিটিকে প্রোগ্রামে আইডেন্টিফাই করার জন্য দেয়া নাম।
সাধারণত, আইডেন্টিফায়ার প্রোগ্রামার দ্বারা কার্যকর কাজের জন্য তৈরি করা হয় কিন্তু কিছু প্রিডিফাইনড আইডেন্টিফায়ার রয়েছে যা প্রোগ্রামিং-এ ইনবিল্ট থাকে। উদাহরণস্বরূপ, cout, cin, ইত্যাদি।
এখানে, আমরা C প্রোগ্রামিং ভাষার এই প্রিডিফাইনড আইডেন্টিফায়ারগুলোর একটি দেখব যা হল __func__।
__func__-র অফিশিয়াল ডেফিনিশন হল −
"আইডেন্টিফায়ার __func__ শালimplicitly ডিক্লেয়ার করা হয় ট্রানস্লেটর দ্বারা যেন, প্রতিটি ফাংশন ডেফিনিশনের ওপেনিং ব্রেসের ঠিক পরে, ডিক্লেরেশন
static const char __func__[] = "function-name";
আপনার হয়, যেখানে function-name হল লেক্সিক্যালি-এনক্লোজিং ফাংশনের নাম।"
C প্রোগ্রাম __func__ হল একটি কম্পাইলার-জেনারেটেড আইডেন্টিফায়ার যা ফাংশন নাম দিয়ে ফাংশনটি আইডেন্টিফাই করার জন্য তৈরি হয়।
কনসেপ্টটি আরও ক্লিয়ার করার জন্য কিছু কোড উদাহরণ দেখি,
উদাহরণ
#include <stdio.h>
void function1 (void){
printf ("%s\n", __func__);
}
void function2 (void){
printf ("%s\n", __func__);
function1 ();
}
int main (){
function2 ();
return 0;
}
আউটপুট
function2 function1
ব্যাখ্যা − এখানে, আমরা __func__ মেথড ব্যবহার করেছি যেটি কল করা ফাংশনদের নাম রিটার্ন করে। আইডেন্টিফায়ারটি সেটি ইনভোক করা ফাংশনের নাম রিটার্ন করে। উভয় প্রিন্ট স্টেটমেন্ট নিজ নিজ মেথড রেফারেন্সের জন্য __func__ কল করেছিল।
এই আইডেন্টিফায়ার main মেথডেও কাজ করে। উদাহরণ,
উদাহরণ
#include <stdio.h>
int main (){
printf ("%s\n", __func__);
return 0;
}
আউটপুট
main
কিন্তু এটি ওভাররাইট করা যায় না অর্থাৎ __func__ ফাংশন নামের জন্য রিজার্ভড। অন্য কিছু স্টোর করতে ব্যবহার করলে এরর দেবে।
দेखি
উদাহরণ
#include <stdio.h>
int __func__ = 123;
int main (){
printf ("%s\n", __func__);
return 0;
}
আউটপুট
error
C প্রোগ্রামিং ভাষায় অন্যান্য কিছু সিমিলার ফাংশনও রয়েছে যা আইডেন্টিফিকেশনের সিমিলার কাজ করে। কিছু হল
__File__ − কারেন্ট ফাইলের নাম রিটার্ন করে।
__LINE__ − কারেন্ট লাইন নম্বর রিটার্ন করে।
ইমপ্লিমেন্টেশন দেখানোর একটি কোড
উদাহরণ
#include <stdio.h>
void function1(){
printf("The function: %s is in line: %d of the file :%s\n", __func__,__LINE__,__FILE__);
}
int main(){
function1();
return 0;
}
আউটপুট
The function: function1 is in line: 3 of the file :main.c
ব্যাখ্যা − এই সিমিলার ফাংশনগুলো সাধারণত ইউজফুল যেহেতু আমরা __func__,__LINE__,__FILE__ আইডেন্টিফায়ার ব্যবহার করে ফাইলনেম, কোড লাইন এবং করেন্ট ইনভোক করা ফাংশন সম্পর্কে ইনফো পাই।