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


  我們在使用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.這就表面明了,我們成功的調用了函數,並且成功的傳遞了參數進去。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM