1
1
在C中,这是您所能做的最好的:
您必须使函数签名符合其调用者的期望,并且其调用者是伪泛型的,因此它必须通过
顺便说一句,你真的应该摆脱它
还请注意我对您的代码所做的文体更正:
|
2
0
函数指针只有在其类型相同时才兼容。严格来说,从一种类型到另一种类型的广泛转换是未定义的行为(尽管某些情况下可能在许多系统上作为非标准扩展)。 因此,您要么在所有情况下都需要使用相同的类型,要么编写如下包装函数:
也就是说,使用void指针的泛型编程是老式的C语言,非常危险。现在,您最好编写完全类型安全的代码:
|
3
0
可以同时保留警告缺失和代码可读性的解决方案可能是引入以下宏:
通过这种方式,您不会生成警告,但可以保持签名的可读性(尽管它需要一些额外的类型)。 |
Jean-Francois T. · C(C99)中嵌套函数调用的限制 6 年前 |
Tarun Maganti · 字符串在C中是如何工作的? 7 年前 |
Mushy · 另一个空洞的话题;我只是想问一下,因为我很困惑 7 年前 |
Rahul · 编译器如何在编译时不知道内存大小的情况下分配内存? 7 年前 |
Sam · 将十六进制转换为循环中的一个字符串 7 年前 |
Dror K. · 用%p打印空指针是未定义的行为? 7 年前 |
lvella · 这个代码有效吗?[已关闭] 8 年前 |