C語(yǔ)言中如何在結(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
FFmpeg獲取網(wǎng)絡(luò)攝像頭數(shù)據(jù)解碼
這篇文章主要為大家詳細(xì)介紹了FFmpeg獲取網(wǎng)絡(luò)攝像頭數(shù)據(jù)解碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
c++ 寫(xiě)注冊(cè)表方式讓程序開(kāi)機(jī)自啟動(dòng)
這篇文章主要介紹了c++ 寫(xiě)注冊(cè)表方式讓程序開(kāi)機(jī)自啟動(dòng),需要的朋友可以參考下2017-09-09
C/C++內(nèi)存管理之new與delete的使用及原理解析
這篇文章主要介紹了C/C++內(nèi)存管理之new與delete的使用及原理解析,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
C++求1到n中1出現(xiàn)的次數(shù)以及數(shù)的二進(jìn)制表示中1的個(gè)數(shù)
這篇文章主要介紹了C++求1到n中1出現(xiàn)的次數(shù)以及數(shù)的二進(jìn)制表示中1的個(gè)數(shù),兩道基礎(chǔ)的算法題目,文中也給出了解題思路,需要的朋友可以參考下2016-02-02
基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
C語(yǔ)言修煉之路靈根孕育源流出?初識(shí)C言大道生下篇
C語(yǔ)言是一門(mén)面向過(guò)程、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語(yǔ)言是僅產(chǎn)生少量的機(jī)器語(yǔ)言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語(yǔ)言2022-03-03
關(guān)于C++中的友元函數(shù)的一些總結(jié)
以下是對(duì)C++中的友元函數(shù)進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下2013-09-09
用C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲
這篇文章主要為大家詳細(xì)介紹了用C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
C語(yǔ)言從基礎(chǔ)到進(jìn)階全面講解數(shù)組
數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計(jì)算機(jī)內(nèi)存里連續(xù)存放,地址編號(hào)最低的存儲(chǔ)單元存放數(shù)組的起始元素,地址編號(hào)最高的存儲(chǔ)單元存放數(shù)組的最后一個(gè)元素2022-05-05

