天天看点

string.h 和memory.h,以及memory的关系

一、C语言string.h和memory.h某些函数重复

在C语言中,为了使用memset()函数,你是选择#include <string.h>还是<memory.h>?两个都可以,如何选择?

<string.h>,标准里面这么写的,全平台通用,<memory.h> 这个 大部分编译器都实现了。

http://pubs.opengroup.org/onlinepubs/7908799/xsh/string.h.html 

http://www.cplusplus.com/reference/clibrary/cstring/

VC15里面,memory.h定义了string.h里面的部分函数,包括memset、memchr、memcmp以及相关的安全操作,定义的部分是和string.h里面一模一样的。

而gcc(4.4.5)里面,memory.h里面就直接写了#include<string.h>。

二、memory由C++语言提供

此头定义用于管理动态内存的常规实用程序,是动态内存管理库的一部分。

继续阅读