首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决编译器警告“函数memset的隐式声明”

如何解决编译器警告“函数memset的隐式声明”
EN

Stack Overflow用户
提问于 2010-01-27 12:40:02
回答 5查看 118.7K关注 0票数 37

我的c代码使用了'memset‘和'close’。我补充说:

代码语言:javascript
运行
复制
#include <stdio.h>
#include <glib.h>
#include <stdlib.h>

但我还是收到了这些警告:

代码语言:javascript
运行
复制
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’

您能告诉我如何解决这些警告吗?

谢谢。

EN

回答 5

Stack Overflow用户

发布于 2010-01-27 12:41:03

您需要:

代码语言:javascript
运行
复制
#include <string.h> /* memset */
#include <unistd.h> /* close */

在你的代码中。

参考资料:用于close的POSIX,用于memset的C标准。

票数 77
EN

Stack Overflow用户

发布于 2010-01-27 13:04:54

找出缺少哪个头文件的好方法:

代码语言:javascript
运行
复制
 man <section> <function call>

要找到该节,请使用以下命令:

代码语言:javascript
运行
复制
apropos <function call>

示例:

代码语言:javascript
运行
复制
 man 3 memset
 man 2 send

编辑以回应詹姆斯·莫里斯:

  • 部分|说明
  • 1常规命令
  • 2系统调用
  • 3 C库函数

H1124特殊文件(通常是设备,可在游戏中找到的文件)和驱动程序

  • 5文件格式以及conventions
  • 6游戏和screensavers
  • 7 Miscellanea
  • 8系统管理命令和后台程序

来源:Wikipedia Man Page

票数 30
EN

Stack Overflow用户

发布于 2014-02-25 23:56:36

memset要求您导入头string.h文件。因此,只需添加以下标头

代码语言:javascript
运行
复制
#include <string.h>
...
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2144617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档