C语言中如何在结构体内定义函数
徒步者~ 人气:0如何在结构体内定义函数
结构体中引入函数
#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;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容