我們在使用C語言的結構體時,經常都是只定義幾個成員變量,而學過面向對象的人應該知道,我們定義類時,不只是定義了成員變量,還定義了成員方法,而類的結構和結構體非常的相似,所以,為什么不想想如何在C語言結構體中添加成員變量呢
在C語言的結構體中是不能直接定義成員函數的,這點和C++不同,但是我們可以通過定義一個函數指針的方式來指向一個方法。
示例代碼如下:
#include<stdio.h> #include<stdlib.h> typedef struct node { int a; void(*p)(int b); }no; void fun(int b) { printf("hello,%d\n",b); } int main() { no a = { 1,fun }; a.p(a.a); system("pause"); return 0; }
這段代碼運行出來,控制台會打印出hello,1.這就表面明了,我們成功的調用了函數,並且成功的傳遞了參數進去。