极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8802|回复: 4

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

[复制链接]
发表于 2013-3-3 21:23:52 | 显示全部楼层 |阅读模式
我在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
这不是定义的变量,而是定义一个返回值为字节类型的带有四个参数的静态指针函数。

哦,谢谢,虽然不是完全懂,但是有了一个学习的入口了
回复 支持 反对

使用道具 举报

发表于 2013-3-5 14:56:55 | 显示全部楼层
静态指针函数 四个参数。
回复 支持 反对

使用道具 举报

发表于 2013-3-5 20:15:39 | 显示全部楼层
本帖最后由 histamine 于 2013-3-5 20:26 编辑

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

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

补充一下:
该变量出现在ethercard / tcpip.cpp中,本身就是全局变量,加static是为了在编译期间不导出该全局变量的符号,保证该全局变量只在该tcpip.cpp文件中被使用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 23:58 , Processed in 0.039162 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表