六月刀 发表于 2017-9-23 14:30:10

(void (*)(void))abc

http://blog.163.com/huangwei820410@126/blog/static/240704922009629101127567/
void (*run)(void) = (void (*)(void))0x0; 这句话什么意思阿,没见过这样的阿
网友回复:定义了一个不带参数和返回值的函数指针run ,同时对它进行初始化。指向了内存的0号单元。网友回复:run是一个指向返回值和参数都为空的函数的指针,0x0就是0,这个赋值就是将地址0强制转换为返回值和参数都为空的函数的地址赋给run。
网友回复:严重同意楼上两位
网友回复: (void (*)(void))0x0;这句看不懂
网友回复: (void (*)(void))0x0;这句看不懂------------------------------------进行强制转换.就好象(char *)str一样
网友回复:void (*run)(void)与void (*)(void)有什么区别呢
只是差个名称
对于类型来说本身叫什么就没必要
void (*)(void) 就是函数指针,它是个类型说明
网友回复:继续细化
void (*)(void)(*) --我是函数指针
(void)-不需要传给我参数
void --我的返回类型为空
------------------
void (*run)(void)
(*run) --我是函数指针 ,我叫run
(void)-不需要传给我参数
void --我的返回类型为空你可以这么看typedef void (*run)(void) 然后run a = (run)0x00; 这样总能理解了吧
页: [1]
查看完整版本: (void (*)(void))abc