求助,一个困惑的语法!

finalday 2010-09-06 09:35:50
最近在看一些开源的代码,见到一个很奇怪的语法
void fill_fopen_filefunc OF ((zlib_filefunc_def *pzlib_filefunc_def));
void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def)
{
...
}

有人知道这个声明里OF是什么意思吗?
...全文
182 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2010-09-06
  • 打赏
  • 举报
回复
用Google Desktop搜define OF
小魔菇 2010-09-06
  • 打赏
  • 举报
回复
应该就是个宏
mLee79 2010-09-06
  • 打赏
  • 举报
回复
OF 显而易见的是个宏, 并且应该大概像这个样子, 因为远古时期的C语言函数声明是不带参数列表地 ...

#ifdef __STD_ARGS__
#define OF( a ) a
#else
#define OF( a )
#endif

finalday 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zxk860611 的回复:]

LZ不妨百度一下typedef的用法,相信就会明白了~
[/Quote]
函数指针的用法?
typedef datatypename (* typename)(args)
这个我觉得不用百度我就知道了
关键是个OF找不到它是哪里冒出来的让我很有挫败感。

PS,我更喜欢放狗,:)
finalday 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hai040 的回复:]

你用什么环境?
vs的话装个va
点OF上就可以看到定义
[/Quote]
是的,就是在VS底下va也看不出来,光标停在typedef...的OF上时,va指向的是
void fill_fopen_filefunc OF ((zlib_filefunc_def *pzlib_filefunc_def));
点击GO,弹出一坨的typedef中含有OF的目标
zxk860611 2010-09-06
  • 打赏
  • 举报
回复
LZ不妨百度一下typedef的用法,相信就会明白了~
zxk860611 2010-09-06
  • 打赏
  • 举报
回复
LZ仔细找一下应该有一个语句是这样的

typedef xxx OF ((zlib_filefunc_def *pzlib_filefunc_def));

然后你在那个函数原型声明的地方用xxx替换OF ((zlib_filefunc_def *pzlib_filefunc_def))

再看看~
zxk860611 2010-09-06
  • 打赏
  • 举报
回复
呵呵,typedef用来定义类型的别名的。

比如说 typedef double dd[10];

那么以后我再定义一个double类型的10个元素的数组时,就可以用

dd dArray;

来代替 double dArray[10];
hai040 2010-09-06
  • 打赏
  • 举报
回复
你用什么环境?
vs的话装个va
点OF上就可以看到定义
finalday 2010-09-06
  • 打赏
  • 举报
回复
typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
finalday 2010-09-06
  • 打赏
  • 举报
回复
源代码里好多地方有这个OF,但我死活就没有找到这个OF的宏定义。。。。
代码可以编译过。。。。
zxk860611 2010-09-06
  • 打赏
  • 举报
回复
OF
除了在这个地方用到外,还在哪儿用到了?程序可以编译通过么?
zxk860611 2010-09-06
  • 打赏
  • 举报
回复

OF 会不会是一个宏?
finalday 2010-09-06
  • 打赏
  • 举报
回复
不是宏哦,我在源代码里没有找到这个OF的宏定义
hai040 2010-09-06
  • 打赏
  • 举报
回复
应该是宏

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧