如何解决编译器警告’隐式声明函数memset’
我的c代码使用’memset’和’close’。 我补充说:
#include #include #include
但我仍然得到这些警告:
main.c:259: warning: implicit declaration of function 'memset' main.c:259: warning: incompatible implicit declaration of built-in function 'memset' main.c:268: warning: implicit declaration of function 'close' main.c:259: warning: incompatible implicit declaration of built-in function 'close'
你能告诉我怎样才能解决这些警告?
谢谢。
你需要:
#include /* memset */ #include /* close */
在你的代码中。
参考文献:POSIX for close
, memset
的C标准。
找出缺少的头文件的好方法:
man
要查找该部分使用:
apropos
例:
man 3 memset man 2 send
编辑以回应詹姆斯莫里斯:
- 部分| 描述
- 1常规命令
- 2系统调用
- 3 C库函数
- 4特殊文件(通常是设备,在/ dev中找到的)和驱动程序
- 5文件格式和约定
- 6游戏和屏保
- 7杂记
- 8系统管理命令和后台驻留程序
来源: 维基百科人页
memset
要求您导入头string.h
文件。 所以只需添加以下标题即可
#include ...
尝试在.c文件的开头添加下一个define:
#define _GNU_SOURCE
它帮助我使用pipe2function。
老问题,但我有类似的问题,我通过添加解决了它
extern void* memset(void*, int, size_t);
要不就
extern void* memset();
在翻译单元的顶部(* .c文件)。