কাঠামোর মান এক ফাংশন থেকে অন্য ফাংশনে স্থানান্তর করা যেতে পারে এমন তিনটি উপায় রয়েছে। তারা নিম্নরূপ -
- ফাংশনের আর্গুমেন্ট হিসাবে পৃথক সদস্যদের পাস করা।
- ফাংশনের জন্য একটি আর্গুমেন্ট হিসাবে সমগ্র কাঠামো পাস করা।
- ফাংশনের আর্গুমেন্ট হিসাবে কাঠামোর ঠিকানা পাস করা।
এখন দেখা যাক কিভাবে গঠন উপাদানগুলির একটি পৃথক সদস্যকে কার্য করার আর্গুমেন্ট হিসাবে পাস করা যায়।
-
প্রতিটি সদস্যকে ফাংশন কলে একটি আর্গুমেন্ট হিসাবে পাস করা হয়।
-
এগুলি ফাংশন হেডারে সাধারণ ভেরিয়েবলে স্বাধীনভাবে সংগ্রহ করা হয়।
উদাহরণ
একটি ফাংশনে গঠনের পৃথক আর্গুমেন্ট পাস করার জন্য একটি সি প্রোগ্রাম নিচে দেওয়া হল -
#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