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)文章
Visual Studio 2022無法打開源文件的解決方式
這篇文章主要介紹了Visual Studio 2022無法打開源文件的解決方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境
這篇文章主要介紹了windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03C++新特性詳細(xì)分析基于范圍的for循環(huán)
C++11這次的更新帶來了令很多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