C語言中如何在結(jié)構(gòu)體內(nèi)定義函數(shù)
更新時間:2023年02月24日 10:36:12 作者:徒步者~
這篇文章主要介紹了C語言中如何在結(jié)構(gòu)體內(nèi)定義函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
如何在結(jié)構(gòu)體內(nèi)定義函數(shù)
結(jié)構(gòu)體中引入函數(shù)
#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++中結(jié)構(gòu)體引入
#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();
}結(jié)構(gòu)體成員有函數(shù)的定義與使用
```c
#include <stdio.h>
typedef int (*FunHandle)(int, int); //定義 指向函數(shù)的指針
struct Example
{
int a;
int b;
FunHandle fun; //函數(shù)作為結(jié)構(gòu)體成員
};
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); //結(jié)構(gòu)體中函數(shù)的 使用
printf("%d + %d = %d \n", ex.a, ex.b, r);
return 0;
}
int add(int a, int b)
{
return a+b;總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
FFmpeg獲取網(wǎng)絡(luò)攝像頭數(shù)據(jù)解碼
這篇文章主要為大家詳細(xì)介紹了FFmpeg獲取網(wǎng)絡(luò)攝像頭數(shù)據(jù)解碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06
C/C++內(nèi)存管理之new與delete的使用及原理解析
這篇文章主要介紹了C/C++內(nèi)存管理之new與delete的使用及原理解析,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
C++求1到n中1出現(xiàn)的次數(shù)以及數(shù)的二進(jìn)制表示中1的個數(shù)
這篇文章主要介紹了C++求1到n中1出現(xiàn)的次數(shù)以及數(shù)的二進(jìn)制表示中1的個數(shù),兩道基礎(chǔ)的算法題目,文中也給出了解題思路,需要的朋友可以參考下2016-02-02
基于C語言實現(xiàn)簡單學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于C語言實現(xiàn)簡單學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
關(guān)于C++中的友元函數(shù)的一些總結(jié)
以下是對C++中的友元函數(shù)進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下2013-09-09
C語言從基礎(chǔ)到進(jìn)階全面講解數(shù)組
數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計算機(jī)內(nèi)存里連續(xù)存放,地址編號最低的存儲單元存放數(shù)組的起始元素,地址編號最高的存儲單元存放數(shù)組的最后一個元素2022-05-05

