স্ট্রাকচারের মানগুলো এক ফাংশন থেকে অন্য ফাংশনে ট্রান্সফার করার তিনটি পদ্ধতি আছে। সেগুলো হলো −
- ফাংশনে আর্গুমেন্ট হিসেবে ইনডিভিজুয়াল মেম্বার পাস করা।
- ফাংশনে আর্গুমেন্ট হিসেবে সম্পূর্ণ স্ট্রাকচার পাস করা।
- ফাংশনে আর্গুমেন্ট হিসেবে স্ট্রাকচারের অ্যাড্রেস পাস করা।
এখন দেখি কিভাবে স্ট্রাকচার এলিমেন্টের ইনডিভিজুয়াল মেম্বার ফাংশনে আর্গুমেন্ট হিসেবে পাস করতে হয়।
ফাংশন কল-এ প্রতিটি মেম্বার আর্গুমেন্ট হিসেবে পাস করা হয়।
ফাংশন হেডারে সাদা ভেরিয়েবলগুলোর মাধ্যমে স্বতন্ত্রভাবে এগুলো সংগ্রহ করা হয়।
উদাহরণ
নিচে স্ট্রাকচারের ইনডিভিজুয়াল আর্গুমেন্ট ফাংশনে পাস করার C প্রোগ্রাম দেওয়া হলো −
#includestruct date{ int day; int mon; int yr; }; main ( ){ struct date d = {02, 01, 2010}; // struct date d; display(d.day, d.mon, d.yr); // ইনডিভিজুয়াল মেম্বার আর্গুমেন্ট হিসেবে পাস করা getch(); } display(int a, int b, int c){ printf("day = %d\n", a); printf("month = %d\n", b); printf("year = %d\n", c); }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যায় −
day = 2 month = 1 year = 2010
উদাহরণ ২
আরেকটি উদাহরণ বিবেচনা করুন, যেখানে স্ট্রাকচারের ইনডিভিজুয়াল আর্গুমেন্ট ফাংশনে পাস করার 모습을 ব্যাখ্যা করা হয়েছে −
#include#include struct student{ int id; char name[20]; float percentage; char temp; }; struct student record; // স্ট্রাকচারের গ্লোবাল ঘোষণা int main(){ record.id = 1; strcpy(record.name, "Raju"); record.percentage = 86.5; structure_demo(record.id, record.name, record.percentage); return 0; } void structure_demo(int id, char name[], float percentage){ printf(" Id is: %d \n", id); printf(" Name is: %s \n", name); printf(" Percentage is: %.2f \n", percentage); }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যায় −
Id is: 1 Name is: Raju Percentage is: 86.5