Coding部分:
#include<stdio.h> struct Student{ int ID; char* Name; int Age; void(*toString)(int id,char* name,int age); };//定义包含学生ID、姓名、年龄和输出函数指针的结构体Student void toString(int id,char* name,int age){ printf("myStudent实例变量的ID值:%d\n",id); printf("myStudent实例变量的Name值:%s\n",name); printf("myStudent实例变量的Age值:%d\n",age); }//输出函数,在实例化结构体时需要将内部函数指针与该函数链接起来 int main(){ struct Student myStudent = {1,"罗帅",20}; myStudent.toString = toString;//将外部的toString函数链接至结构体内部的函数指针上 myStudent.toString(myStudent.ID,myStudent.Name,myStudent.Age);//调用结构体内部函数 return 0;//退出程序 }
附上效果图(和上一篇随笔的效果是一样的,只是封装成了结构体内部函数):
笔者提醒:由于在C中,结构体内部不允许有函数的定义,所以只能通过在外部定义函数,并在结构体中给出函数指针,然后通过该指针来链接到该函数,从而实现调用结构体内部函数的效果。
在下一篇,我们将开始尝试用所学的东西,做一个基本的计算器功能,加油吧!
时间: 2024-10-02 17:01:30