完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
先附上一段代码(摘自老师I2C部分代码)
我的理解:p_i2c_controller *p,对于函数形参,p_i2c_controller本身是一个结构体指针类型,再加一个*,不应该是一个二级指针吗? 举例说明: typedef int * p_int; p_int *a; 此时的a应该是一个二级指针,相当于 int **a; 因此,我的结论是p是一个二级指针。 而加粗的代码 p_i2c_controllers 【i】是什么类型? 举个说明: typedef int * p_int; p_int array[10]; //相当于 int *array[10],array是一个数组,里面的元素是一级指针 array[0] = a; //array[0]为int *,而a为int ** , 它俩为啥会相等? 回到程序: p_i2c_controllers【i】 = p; 这个赋值语句,我的理解:p_i2c_controllers是一个指针数组,此数组有10个元素,每个元素是指针类型, 取出数组中的某个元素,因此这个元素是指针类型,而p,我在上文中,我的理解是一个二级指针,要想这个赋值语句成立:我觉得应该这么写:p_i2c_controllers 【i】= *p ;
复制代码 还有这个函数,master_xfer是一个函数指针,而返回值用的是int型来接,可以用int型来接函数指针吗? |
|
相关推荐
2个回答
|
|
就上述代码而言,你的理解完全正确,代码有bug,谢谢指正~
|
|
|
|
这里接的不是函数指针,而是这个函数p_i2c_con_selected->master_xfer(msgs, num);的返回值
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2177 浏览 6 评论
1982 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4540 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 05:40 , Processed in 0.616674 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号