【问题标题】:Tool to decipher C/C++ function pointer typedefs破译 C/C++ 函数指针类型定义的工具
【发布时间】:2011-06-22 08:57:12
【问题描述】:

我记得有一次看到一个网站,它破译了复杂的 C++ 类型定义,包括返回函数指针的函数指针,这些函数返回一个数组......

它将这些定义变成可读的英文文本:»指向函数的指针,返回一个 int 指针数组,将 long 和一个回调函数(采用 int)作为参数«。 (类似的东西)

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

有人记得那个工具/网站吗?任何提示都非常感谢

【问题讨论】:

  • 有趣的是,cdecl barfs 在您的示例声明中 :-) 也许您的意思是 int* (*f)(long, void (*)(int)); 转换为 declare f as pointer to function (long, pointer to function (int) returning void) returning pointer to int
  • 顺便说一句,如果您想知道如何手动执行此操作(超级极客),请参阅 stackoverflow.com/questions/6202203/… 引用 cskill.wordpress.com/2010/06/09/…
  • @paxdiablo:我的 typedef 有一个错误。我更正了,谢谢! (尽管 g++ 不会编译它,error: ‘f’ declared as function returning an array)——好的,我必须返回 int **

标签: c++ function-pointers typedef


【解决方案1】:

我想你正在寻找https://cdecl.org/

你可以在https://github.com/ridiculousfish/cdecl-blocks找到程序本身

【讨论】:

  • 看起来它不理解 Windows 数据类型(如 HANDLE 等)?
  • 我自己用的不多,但我猜它只适用于属于 C 标准的数据类型。
  • 链接失效,同一个项目似乎托管在cdecl.org。使用 Wayback 机器验证它们具有相同的 UI - 但可能 cdecl.ridiculousfish.com 需要一些已关闭的后端服务,因此只需用 Wayback 机器版本替换断开的链接将无济于事。
  • @SahilSingh 我调整了链接。感谢您指出这一点。
【解决方案2】:

该工具也可以在http://cdecl.org下获得

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2016-05-12
    • 2018-12-08
    • 1970-01-01
    相关资源
    最近更新 更多