当其他函数调用该函数时,我遇到了问题。
我的功能是如此:
for
编译时收到警告。问题是我无法更改参数的类型。
答案 0 :(得分:0)
在C语言中,您可以直接对其进行强制转换以删除'const'属性。
void *table_lookup(const table *t)
//Here I want to call my other function.
table_remove((table*)t) // remove 'const' by directly casting.
...
return
void table_remove(table *t)
...
答案 1 :(得分:0)
您可以放弃const
限定词:table_remove((table *)t);
,但是如果table_remove
试图修改table
结构,您可能会遇到麻烦,例如,如果将其存储在只读段中。
因此,您不应这样做。查找功能无论如何都会修改表,这是非常意外的。如果这样做是出于正当理由(例如,建立哈希表或维护缓存),则不应将参数声明为const
。
答案 2 :(得分:0)
是的,没错。放弃const限定词是个坏主意。 。我也无法添加新功能。 ((table)*)出现问题。