开发者

C语言中如何在结构体内定义函数

目录
  • 如何在结构体内定义函数
    • 结构体中引入函数
    • C++中结构体引入
    • C++中类引入
  • 结构体成员有函数的定义与使用
    • 总结

      如何在结构体内定义函数

      结构体中引入函数

      #include <stdio.h>
      
      struct student {
       char *name;
       int age;
      
       void (*printInfo)(struct student *stu);
      };
      
      void printInfo(struct studwww.devze.coment *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},
       };
      
       studeuRceUsonts[0].printInfo();
       students[1].printInfo();
      }

      C++中类引入

      #include <stdio.h>
      
      class student {
      puRceUsoublic:
       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},
        {"开发者_Go开发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;

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜