金牌会员
 
- 积分
- 1185
- 金钱
- 1185
- 注册时间
- 2015-9-18
- 在线时间
- 422 小时
|
10金钱
本帖最后由 liuchang 于 2016-1-5 09:17 编辑
小弟最近在看lwip,其中netif结构体中包含几个函数指针
[mw_shl_code=c,true]struct netif {
struct netif *next;
ip_addr_t ip_addr;
ip_addr_t netmask;
ip_addr_t gw;
netif_input_fn input;
netif_output_fn output;[/mw_shl_code]
小弟想请问大神,这有什么作用?按照小弟的理解,在结构体中放入变量,指针,可以理解为成员的属性,可是如果放入函数指针,它有什么作用,还是某种约定?
而且,还需要在结构体外完成这个函数类型的定义,初始化,有什么必要呢?恳请大神指教~
|
最佳答案
查看完整内容[请看2#楼]
这几个确实是函数指针。以后在具体硬件平台上,会被初始化成不同的函数。比如在stm32f107上用的就是st的库函数,而在stm32f103+enc28j60时,初始化成enc28j60的驱动函数。trochili rtos上用的是stm32f107, st的dma方式的库函数。
|