为什么当我用gcc编译时会收到一些有关已编译代码的警告?
我试图更改代码的某些部分以禁止显示警告,但是当我在编译时禁止显示警告时,则在运行时会出现错误,并且调试会话将停止。
欢迎您帮助理解为什么会发生这种情况。
我得到的警告如下:
yarn add react-redux@5.0.5
产生它的C代码如下:
gcc Question_1.c -o Question_1
Question_1.c: In function ‘main’:
Question_1.c:43:10: warning: passing argument 1 of ‘menu’ from incompatible pointer type [-Wincompatible-pointer-types]
menu(&name_file_in,&name_file_out);
^
Question_1.c:5:6: note: expected ‘char *’ but argument is of type ‘char (*)[17]’
void menu(char *name_file_in,char *name_file_out)
^~~~
Question_1.c:43:24: warning: passing argument 2 of ‘menu’ from incompatible pointer type [-Wincompatible-pointer-types]
menu(&name_file_in,&name_file_out);
^
Question_1.c:5:6: note: expected ‘char *’ but argument is of type ‘char (*)[16]’
void menu(char *name_file_in,char *name_file_out)
^~~~
答案 0 :(得分:1)
menu(&name_file_in,&name_file_out);
使用&
时,您尝试传递的是完整数组的地址char (*)[17]
按如下所示传递数组中第一个元素的地址。
menu(name_file_in, name_file_out);
或
通过以下功能预期具有固定大小的数组。
void menu(char (*name_file_in)[17], char (*name_file_out)[16])