首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >编译器错误:未在此范围内声明memset

编译器错误:未在此范围内声明memset
EN

Stack Overflow用户
提问于 2010-03-24 12:38:08
回答 2查看 172.3K关注 0票数 107

我正在尝试用Ubuntu 9.10 (gcc 4.4.1)编译我的C程序。

我得到了这个错误:

代码语言:javascript
复制
Rect.cpp:344: error: ‘memset’ was not declared in this scope

但问题是我已经在我的cpp文件中包含了:

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

同样的程序在Ubuntu 8.04 (gcc 4.2.4)下编译得很好。

请告诉我我漏掉了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-24 12:40:26

您应该包含<string.h> (或其C++等效项<cstring>)。

票数 188
EN

Stack Overflow用户

发布于 2010-03-24 15:40:32

无论什么时候你遇到这样的问题,只要转到有问题的man page for the function,它就会告诉你你遗漏了什么标题,例如

代码语言:javascript
复制
$ man memset

MEMSET(3)                BSD Library Functions Manual                MEMSET(3)

NAME
     memset -- fill a byte string with a byte value

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <string.h>

     void *
     memset(void *b, int c, size_t len);

请注意,与C的<string.h>/<stdio.h>/<stdlib.h>/etc.相比,对于C++,通常更可取的是使用适当的等效C++标头<cstring>/<cstdio>/<cstdlib>/etc,

票数 140
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2505365

复制
相关文章

相似问题

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