文申特 发表于 2013-3-3 21:23:52

请问这句c语言是什么意思

我在EtherCard库里看到的,请问这是定义了一个什么类型的变量?

static byte (*client_tcp_result_cb)(byte,byte,word,word);

春泥蛋炒饭 发表于 2013-3-4 04:35:04

这不是定义的变量,而是定义一个返回值为字节类型的带有四个参数的静态指针函数。

文申特 发表于 2013-3-4 09:27:05

春泥蛋炒饭 发表于 2013-3-4 04:35 static/image/common/back.gif
这不是定义的变量,而是定义一个返回值为字节类型的带有四个参数的静态指针函数。

哦,谢谢,虽然不是完全懂,但是有了一个学习的入口了:D

Damn_intuition 发表于 2013-3-5 14:56:55

静态指针函数 四个参数。

histamine 发表于 2013-3-5 20:15:39

本帖最后由 histamine 于 2013-3-5 20:26 编辑

这个变量是个函数指针,其指向接受byte,byte,word,word这四个参数并返回byte的函数

函数指针常见用法之一就是注册回调:lol

补充一下:
该变量出现在ethercard / tcpip.cpp中,本身就是全局变量,加static是为了在编译期间不导出该全局变量的符号,保证该全局变量只在该tcpip.cpp文件中被使用
页: [1]
查看完整版本: 请问这句c语言是什么意思