typedef এবং #define এর পার্থক্য

#define : এটি প্রিপ্রসেসর কাজ ।
typedef : এটি কম্পাইলারের কাজ ।

#define : এটি স্কোপিং এর নিয়ম মেনে চলে না । যেখানে define করা হয় তারপর থেকে নীচের যে কোন জায়গায় ব্যাবহার করা হয় ।
typedef : এটি স্কোপিং এর নিয়ম মেনে চলে ।


#include<stdio.h> 

int add(int , int b);

int main()
{
    #define i int

    i sum;
    sum = add(5,6);
    printf("%d",sum);

    return 0;
}

int add(i a, int b){ // এখানে কোনো এরর হবে না । 
                     // কারণ i আগে ডিক্লিয়ার করা হইছে । 
                     // ( main ফাংশনের স্কোপ হইলেও )
return a+b;
}

কিন্তু


#include<stdio.h> 

int add(int , int b);

int main()
{
    typedef int i;
    i sum;
    sum = add(5,6);
    printf("%d",sum);

    return 0;
}

int add(i a, int b){ // এখানে এরর হবে । 
                     // কারণ i আগে ডিক্লিয়ার করা হইছে main ফাংশনের স্কোপে। 
                     //তাই i, main ফাংশন শেষ হওয়ার সাথে সাথে destroy হয়ে গেছে । 
    return a+b;
}

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।