社区
C语言
帖子详情
C高手们!帮我看看这句代码...
cai_bird
2005-03-14 05:29:24
C语言代码:其中TD是指向一个struct的指针
void (*work)(void),*para;
if(TD->work)
((void(*)(void *))TD->work)(TD->para);
求教:
void (*work)(void)和((void(*)(void *))TD->work)分别是什么意思?
...全文
148
11
打赏
收藏
C高手们!帮我看看这句代码...
C语言代码:其中TD是指向一个struct的指针 void (*work)(void),*para; if(TD->work) ((void(*)(void *))TD->work)(TD->para); 求教: void (*work)(void)和((void(*)(void *))TD->work)分别是什么意思?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cai_bird
2005-03-15
打赏
举报
回复
谢谢各位!接帖
krw
2005-03-14
打赏
举报
回复
上面说得对
可惜啊
jacksting
2005-03-14
打赏
举报
回复
TD的work函数是void *类型的,不为空,就把work转换一下,现在它指向一个没有参数和返回值的函数了。
llmsn
2005-03-14
打赏
举报
回复
晚了呵呵.
yxxng
2005-03-14
打赏
举报
回复
我也晚了,楼上的都是正解!
sankt
2005-03-14
打赏
举报
回复
up
Salam2001
2005-03-14
打赏
举报
回复
晚了...
loverP
2005-03-14
打赏
举报
回复
void (*work)(void)声明了一个指针,它可以指向这样一个函数:void func(void)
顺便说一下,这个指针的名字是work,它的类型是void (*)(void)
((void(*)(void *))是一个转型,类比一下(int)a是把a转换为int,这个东西可以把它后面的TD->work转型为一个指向 void func(void *)的函数指针,这时,((void(*)(void*))TD->work)可以认为就是一个函数,类比func(...)是以...为参数调用func,在上面转换结果所表示的函数指针后面加(TD->para)表示以TD->para为参数去调用那个指针所指向的函数。
这样将可能还不太清楚。不过这正是C语言的魅力所在。应该把这个帖子推荐给那些问“我学完C语言了,该学什么呀?”的人看……
cenlmmx
2005-03-14
打赏
举报
回复
((void(*)(void *))TD->work)
============================
為強制類型轉換把TD->work轉換成指向一個沒有參數和返回值的指針。
==就是把TD->work指向的地址作为函数指针来使用,TD->para为函数参数
相当于
work=(void *))TD->work;
zhousqy
2005-03-14
打赏
举报
回复
((void(*)(void *))TD->work)
============================
為強制類型轉換把TD->work轉換成指向一個沒有參數和返回值的函數的指針。
zhousqy
2005-03-14
打赏
举报
回复
typedef void (*work)(void)
================
說明work是一個函數指針,這個函數沒有參數和返回值。
((void(*)(void *))TD->work)
============================
為強制類型轉換把TD->work轉換成指向一個沒有參數和返回值的指針。
一小段C语言
代码
!为何都说牛逼?
C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。 有人说C语言是世界上最牛逼的语言 ... 此外,还有一位C语言
高手
,想挑战大家的水平,快来
看看
! 一...
c语言必背100
代码
,初学者
代码
大全(c语言必背100
代码
)
一个完全入门初学者如何学
代码
,读
代码
和写
代码
,,我想学
代码
不知道方向谁能给我指明一个方向?1、学
代码
:前提是你的复有一个比较系统的学习.认真完成每一个课程中的案例.2、读
代码
:分制两步走:前期能读懂自己写的
代码
....
这段c语言
代码
牛逼在哪?
有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言。为此,有人分享了下面一段
代码
,说是很...此外,还有一位国外的C语言
高手
,想挑战大家的水平,快来
看看
! ...
d java.lang.double_d != java.lang.Double
importjava.util.*;publicclassRetirement{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);System.out.println("Pleaseinsertanuber");doublenum=in.nextInt()...import java.util...public c...
牛逼c语言
代码
,这段c语言
代码
牛逼在哪?
原标题:这段c语言
代码
牛逼在哪?有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言。为此,有人分享了下面一段
代码
,说是很牛逼的c语言
代码
,看得W3Cschool小编...
C语言
69,379
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章