C語(yǔ)言中如何在結(jié)構(gòu)體內(nèi)定義函數(shù)
更新時(shí)間:2023年02月24日 10:36:12 作者:徒步者~
這篇文章主要介紹了C語(yǔ)言中如何在結(jié)構(gòu)體內(nèi)定義函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
如何在結(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)文章
Visual Studio 2022無(wú)法打開源文件的解決方式
這篇文章主要介紹了Visual Studio 2022無(wú)法打開源文件的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
C語(yǔ)言怎么連接兩個(gè)數(shù)組的內(nèi)容你知道嗎
這篇文章主要為大家介紹了C語(yǔ)言怎么連接兩個(gè)數(shù)組的內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境
這篇文章主要介紹了windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C++新特性詳細(xì)分析基于范圍的for循環(huán)
C++11這次的更新帶來(lái)了令很多C++程序員期待已久的for?range循環(huán),每次看到j(luò)avascript,?lua里的for?range,心想要是C++能有多好,心里別提多酸了。這次C++11不負(fù)眾望,再也不用羨慕別家人的for?range了。下面看下C++11的for循環(huán)的新用法2022-04-04

