มีสามวิธีที่สามารถถ่ายโอนค่าของโครงสร้างจากฟังก์ชันหนึ่งไปยังอีกฟังก์ชันหนึ่งได้ ดังต่อไปนี้ −
- ส่งผ่านสมาชิกแต่ละคนเป็นอาร์กิวเมนต์ในการทำงาน
- ส่งผ่านโครงสร้างทั้งหมดเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน
- ส่งที่อยู่ของโครงสร้างเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน
ตอนนี้เรามาดูวิธีการส่งผ่านสมาชิกขององค์ประกอบโครงสร้างเป็นอาร์กิวเมนต์ในการทำงาน
-
สมาชิกแต่ละคนจะถูกส่งผ่านเป็นอาร์กิวเมนต์ในการเรียกใช้ฟังก์ชัน
-
พวกมันถูกรวบรวมอย่างอิสระในตัวแปรธรรมดาในส่วนหัวของฟังก์ชัน
ตัวอย่าง
รับด้านล่างเป็นโปรแกรม C เพื่อแสดงการส่งต่ออาร์กิวเมนต์โครงสร้างแต่ละรายการไปยังฟังก์ชัน -
#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
ลองพิจารณาอีกตัวอย่างหนึ่ง ซึ่งอธิบายโปรแกรมภาษา C เพื่อแสดงการส่งต่ออาร์กิวเมนต์ของโครงสร้างไปยังฟังก์ชันแต่ละรายการด้านล่าง -
#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