编译器错误:memset未在此范围内声明
我想在Ubuntu 9.10(gcc 4.4.1)中编译我的C程序。
我得到这个错误:
Rect.cpp:344: error: 'memset' was not declared in this scope
但问题是我已经包含在我的cpp文件中:
#include <stdio.h> #include <stdlib.h>
和Ubuntu 8.04(gcc 4.2.4)相同的程序编译好。
请告诉我我错过了什么。
您应该包含<string.h>
(或其C ++等效, <cstring>
)。
Whevever你得到这样的问题只是去问题的function的手册页 ,它会告诉你什么头你缺less,例如
$ 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 ++,通常最好使用合适的等效C ++头文件<cstring>
/ <cstdio>
/ <cstdlib>
/ etc,而不是C的<string.h>
/ <stdio.h>
/ <stdlib.h>
等等