1. 程式人生 > >在C語言結構體中添加成員函數

在C語言結構體中添加成員函數

我們 pau 打印 log print class 控制 stdio.h 語言

  我們在使用C語言的結構體時,經常都是只定義幾個成員變量,而學過面向對象的人應該知道,我們定義類時,不只是定義了成員變量,還定義了成員方法,而類的結構和結構體非常的相似,所以,為什麽不想想如何在C語言結構體中添加成員變量呢

  在C語言的結構體中是不能直接定義成員函數的,這點和C++不同,但是我們可以通過定義一個函數指針的方式來指向一個方法。

  示例代碼如下:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct node
 4 {
 5     int a;
 6     void(*p)(int
b); 7 }no; 8 9 void fun(int b) 10 { 11 printf("hello,%d\n",b); 12 } 13 14 int main() 15 { 16 no a = { 1,fun }; 17 18 a.p(a.a); 19 system("pause"); 20 return 0; 21 }

  這段代碼運行出來,控制臺會打印出hello,1.這就表面明了,我們成功的調用了函數,並且成功的傳遞了參數進去。

在C語言結構體中添加成員函數