警告:从不兼容的指针类型传递'xyz'的参数x

时间:2016-06-24 11:33:27

标签: c pointers gcc gcc-warning

如果变量声明为:

char ** argv; 

函数的定义类似于:

extern int my_system(const char *argv[]);

现在,如果我们将函数中的参数传递为:

(my_system(argv))

然后它从不兼容的指针类型抛出警告传递'my_system'的参数1。

可能的解决办法是什么?

1 个答案:

答案 0 :(得分:0)

在C中,T**const T**之间没有隐式转换,因为它不会阻止在所有情况下修改最终元素。有关“后门”修改的增强说明和示例,请参阅C FAQ的问题11.10

在你的情况下,了解了复杂性,你可以将指针投射到无声的警告:

extern int my_system(const char *argv[]);

int main(int argc, char* argv[])
{
    my_system((const char**)argv);
}