为什么gcc给我警告?

时间:2020-10-27 13:23:24

标签: c gcc warnings

为什么当我用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)
  ^~~~

1 个答案:

答案 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])