C语言编程常见错误与解决办法

warning: excess elements in array initializer

警告:数组初始值设定项中有多余元素 (定义的数组长度比赋值的个数小)
数组定义出错

“conflicting types for …” 错误

原因一:
原来是因为没有先做函数声明,而函数位于main()之后。
在main函数前声明了函数原型后,一切ok.

原因二:
头文件的被循环引用,在引用时考虑清楚包含顺序

原因三:
头文件声明和定义参数稍有不同
例:
头文件中声明 void Hanlder(const char * buf);
在定义时写作 void Hanlder(char * buf);
这是就会发生conflicting types for 错误问题

error: two or more data types in declaration specifiers

  1. 少了一个分号”;”,比如定义一个结构体时,在最后忘了加分号。
    解决方法:加上分号即可。
  2. 重复定义:去掉重复即可。

warning: implicit declaration of function ‘dic_is__name_dao’

未在头文件定义函数;

error: previous declaration of ‘**’ was here

在头文件和.C文件里函数参数不一致导致

undefined reference to “”

这是因为在链接的时候找不到目标函数,具体缺失了文件,可能如下:


  1. 链接时缺失了相关目标文件(.o)
  2. 链接时缺少相关的库文件(.a/.so)
  3. 链接的库文件中又使用了另一个库文件,但是缺失。
  4. 多个库文件链接顺序问题
  5. 在c++代码中链接c语言的库
展开阅读全文

没有更多推荐了,返回首页