কাঠামোর মান এক ফাংশন থেকে অন্য ফাংশনে স্থানান্তর করা যেতে পারে এমন তিনটি উপায় রয়েছে। তারা নিম্নরূপ -
- ফাংশনের আর্গুমেন্ট হিসাবে পৃথক সদস্যদের পাস করা।
- ফাংশনের জন্য একটি আর্গুমেন্ট হিসাবে সমগ্র কাঠামো পাস করা।
- ফাংশনের আর্গুমেন্ট হিসাবে কাঠামোর ঠিকানা পাস করা।
এখন দেখা যাক কিভাবে গঠন উপাদানগুলির একটি পৃথক সদস্যকে কার্য করার আর্গুমেন্ট হিসাবে পাস করা যায়।
-
প্রতিটি সদস্যকে ফাংশন কলে একটি আর্গুমেন্ট হিসাবে পাস করা হয়।
-
এগুলি ফাংশন হেডারে সাধারণ ভেরিয়েবলে স্বাধীনভাবে সংগ্রহ করা হয়।
উদাহরণ
একটি ফাংশনে গঠনের পৃথক আর্গুমেন্ট পাস করার জন্য একটি সি প্রোগ্রাম নিচে দেওয়া হল -
#include<stdio.h> struct date{ int day; int mon; int yr; }; main ( ){ struct date d= {02,01,2010}; // struct date d; display(d.day, d.mon, d.yr);// passing individual mem as argument to function 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
উদাহরণ 2
আরেকটি উদাহরণ বিবেচনা করুন, যেখানে, একটি ফাংশনে কাঠামোর পৃথক আর্গুমেন্ট পাস করার জন্য একটি সি প্রোগ্রাম নীচে ব্যাখ্যা করা হয়েছে -
#include <stdio.h> #include <string.h> struct student{ int id; char name[20]; float percentage; char temp; }; struct student record; // Global declaration of structure 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