解密C/C++函数指针typedef的工具

4

我记得曾经看过一个网站,它解密了复杂的C++ typedefs,包括返回函数指针的函数指针,返回一个数组的函数,并且需要带入long和回调函数(带有int参数)。

它可以将这些定义转换为可读的英文文本:“指向函数的指针,返回一个int-pointer数组,使用long和回调函数(带有int参数)作为参数”。 (大致如此)

typedef int * (*f)(long, void (*)(int))[];

有人还记得那个工具/网站吗?非常感谢提供任何线索。

有趣的是,cdecl 在您的示例声明上出现错误 :-) 也许您的意思是 int* (*f)(long, void (*)(int));,它的翻译是 声明 f 为指向函数 (long, 指向函数 (int 返回 void) 的指针) 返回指向 int 的指针 - paxdiablo
1
顺便说一下,如果你想知道如何手动完成这个(超级极客),请参考https://dev59.com/UVfUa4cB1Zd3GeqPLcwz#6202269,该链接引用了http://cskill.wordpress.com/2010/06/09/the-clockwisespiral-rule-by-david-anderson/。 - paxdiablo
@paxdiablo:我的typedef里有个错误,我已经改正了,谢谢!(尽管g ++无法编译它,“error:‘f’声明为返回数组的函数”)-好的,我必须返回int ** - knittl
2个回答

6

似乎它不理解Windows数据类型(如HANDLE等)? - bayCoder
我自己并没有多少使用过它,但我猜想它只能与C标准中的数据类型一起使用。 - iceaway
链接已经失效,相同的项目似乎托管在 https://cdecl.org/。使用 wayback machine 工具验证了它们具有相同的用户界面 - 但是也许 http://cdecl.ridiculousfish.com/ 需要一些当前不可用的后端服务,因此仅仅用 wayback machine 的版本替换无法解决问题。 - Sahil Singh
1
@SahilSingh,我已经调整了链接。感谢您指出这个问题。 - Rudi

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接