C语言中如何在结构体内定义函数
作者:徒步者~
这篇文章主要介绍了C语言中如何在结构体内定义函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
如何在结构体内定义函数
结构体中引入函数
#include <stdio.h> struct student { char *name; int age; void (*printInfo)(struct student *stu); }; void printInfo(struct student *stu) { printf("name = %s, age = %d", stu->name, stu->age); } int main(int argc, char**argv) { struct student students[] = { {"zhangsan", 10, printInfo}, {"lisi", 26, printInfo}, }; students[0].printInfo(&students[0]); students[1].printInfo(&students[1]); }
C++中结构体引入
#include <stdio.h> struct student { char *name; int age; void printInfo(void) { printf("name = %s, age = %d\n", name, age); } }; int main(int argc, char**argv) { struct student students[] = { {"zhangsan", 10}, {"lisi", 26}, }; students[0].printInfo(); students[1].printInfo(); }
C++中类引入
#include <stdio.h> class student { public: char *name; int age; void printInfo(void) { printf("name = %s, age = %d\n", name, age); } }; int main(int argc, char**argv) { struct student students[] = { {"zhangsan", 10}, {"lisi", 26}, }; students[0].printInfo(); students[1].printInfo(); }
结构体成员有函数的定义与使用
```c #include <stdio.h> typedef int (*FunHandle)(int, int); //定义 指向函数的指针 struct Example { int a; int b; FunHandle fun; //函数作为结构体成员 }; int add(int, int); int main() { struct Example ex; int r; ex.a = 1; ex.b = 2; ex.fun = add; r = ex.fun(ex.a, ex.b); //结构体中函数的 使用 printf("%d + %d = %d \n", ex.a, ex.b, r); return 0; } int add(int a, int b) { return a+b;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。