日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言中如何在結構體內定義函數_C 語言

作者:徒步者~ ? 更新時間: 2023-06-16 編程語言

如何在結構體內定義函數

結構體中引入函數

#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;

總結

原文鏈接:https://blog.csdn.net/qq_43566054/article/details/104211794

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新