C语言实现C++中对象属性和方法

在C++中,我们常见到用类定义一个对象,这个对象可以有他自己的属性(数据)和方法(函数),而在C语言的正常语法中,是禁止在结构体中定义函数的。

在一个关于触摸屏的驱动程序中发现,用C语言的结构体也可以实现对象的方法(函数)。

首先定义一个触摸按键的结构体。

然后,我们来看下这个结构体的其中一个成员 void(*draw_btn)(void *btn);

这是定义了一个函数指针变量draw_btn,入口参数需要一个任意类型的指针,我们在使用它时,需要用强制转换类型操作,将其转换为我们需要的指针类型(实参的指针类型)。这个方法在使用前,需要将他赋值为一个同类型函数的函数指针(此处是形参为一个任意类型的指针)。

采用如下方法将同类型函数指针赋值给成员函数指针变量draw_btn

同类型函数如下:

在这里函数的名字,即为指向该函数的指针。在使用此方法时,只需

/*按钮结构体数组*/
Touch_Button button[BUTTON_NUM];

button[i].draw_btn(&button[i]);

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值