我有两个功能:
int hash64(int key0, int key1);
int hash32(int key0, int UNUSED_ARG);
和带有函数指针的结构
int (*hash)(int key0, int key1);
因此,hash32
仅使用key0
,但我需要以这种方式声明它以便将其分配给函数指针。但是当我这样做时,GCC显然抱怨很多。如果它是单参数函数,我们可以做
int hash1(int key);
int hash2(void);
或者其他什么,但显然int hash32(int key0, void)
根据GCC不是有效的语法。那么,声明hash32的正确方法是什么?
答案 0 :(得分:5)
您应该始终定义与您要使用函数的指针类型匹配的函数。
如果GCC抱怨未使用的参数,你可以用
将其静音int hash1(int key0, int key1)
{
(void)key1;
...
答案 1 :(得分:2)
声明如下所示
>>> x = [1, 2, 20, 6, 210]
>>> sorted(set(x), key=x.index)
[1, 2, 20, 6, 210]
并在函数定义中
int hash32(int key0, int dummy);