首页 > 代码库 > C/C++ 学习之旅 - 实战3 - 在Struct结构体中使用函数Function

C/C++ 学习之旅 - 实战3 - 在Struct结构体中使用函数Function

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中,结构体内部不允许有函数的定义,所以只能通过在外部定义函数,并在结构体中给出函数指针,然后通过该指针来链接到该函数,从而实现调用结构体内部函数的效果。

在下一篇,我们将开始尝试用所学的东西,做一个基本的计算器功能,加油吧!

C/C++ 学习之旅 - 实战3 - 在Struct结构体中使用函数Function