我有以下代码:
typedef int state_requester(void* request_paramaters);
int doSomething(state_requester* requester) {
// This if statement is what I'm trying to
// figure out how to do.
if (requester isoftype state_requester) {
requester(NULL);
return 1;
}
return 0;
}
我试图找到一种方法来验证
传递的参数实际上是有效的state_requester
在尝试执行它之前的函数格式。
以上代码仅作为示例,显然并不是事情真正起作用的方式。我只需要知道如何在函数typedef方面做if ( x isoftype y )
。
答案 0 :(得分:1)
你不能在C中这样做。
在编译时检查类型,而不是运行时。
注意:requester
类型为state_requester*
,而不是state_requester
。
答案 1 :(得分:0)
虽然没有真正的方法来直接验证数据是否属于特定类型,但我已经提出了一种方法来推测'类型匹配。
这并非100%保证它将是指定的类型。但是,它会假定它基于类型代码。
我还添加了一些测试。我在几分钟内写完了这篇文章,所以我确信它还有改进的余地,我绝不是本土的开发者。我只是有需要并写下来。如果它对某人有帮助,真棒!
StrMethodFormatter