Có ba cách mà các giá trị của cấu trúc có thể được chuyển từ chức năng này sang chức năng khác. Chúng như sau -
- Chuyển các thành viên riêng lẻ làm đối số để hoạt động.
- Chuyển toàn bộ cấu trúc làm đối số cho hàm.
- Truyền địa chỉ của cấu trúc làm đối số cho hàm.
Bây giờ, hãy xem cách chuyển một thành viên riêng lẻ của các phần tử cấu trúc làm đối số cho hàm.
-
Mỗi thành viên được chuyển như một đối số trong lệnh gọi hàm.
-
Chúng được thu thập độc lập trong các biến thông thường trong tiêu đề hàm.
Ví dụ
Dưới đây là một chương trình C để chứng minh việc chuyển các đối số riêng lẻ của cấu trúc sang một hàm -
#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); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
day = 2 month = 1 year = 2010
Ví dụ 2
Hãy xem xét một ví dụ khác, trong đó, một chương trình C để chứng minh việc chuyển các đối số riêng lẻ của cấu trúc cho một hàm được giải thích bên dưới -
#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); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Id is: 1 Name is: Raju Percentage is: 86.5