#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; }