কম্পিউটার টিউটোরিয়াল

C-তে প্রিডিফাইনড আইডেন্টিফায়ার __func__


আইডেন্টিফায়ার হল প্রোগ্রামিং-এ একটি এন্টিটিকে প্রোগ্রামে আইডেন্টিফাই করার জন্য দেয়া নাম।

সাধারণত, আইডেন্টিফায়ার প্রোগ্রামার দ্বারা কার্যকর কাজের জন্য তৈরি করা হয় কিন্তু কিছু প্রিডিফাইনড আইডেন্টিফায়ার রয়েছে যা প্রোগ্রামিং-এ ইনবিল্ট থাকে। উদাহরণস্বরূপ, 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__ আইডেন্টিফায়ার ব্যবহার করে ফাইলনেম, কোড লাইন এবং করেন্ট ইনভোক করা ফাংশন সম্পর্কে ইনফো পাই।


  1. C-তে graphics.h-র fillpoly() ফাংশন ব্যবহার

  2. C/C++-তে putwchar() ফাংশন

  3. C প্রোগ্রাম: ফাইল ডিলিট করা

  4. C গ্রাফিক্স-এ bar() ফাংশন