包含字符串或string.h文件

18

使用memset()时,以下两者有什么不同:

#include <string>       //did not work

并且

#include <string.h>     //worked

谢谢!

2个回答

36

<string> 是C++标准库的一个头文件,而<string.h> 则是C标准库的一个头文件。

C++中与<string.h> 相当的是<cstring>,但两者都可用。

区别在于:<cstring>将所有内容封装在std命名空间中,而<string.h>则将所有内容放置在全局命名空间中。

同时,从<cstring>中期望更严格的类型安全规则。


“both work” 是什么意思?是指 “两者都符合标准并保证可用” 还是指 “两者因为某些原因在典型的实际环境下都能工作”? - Mark Amery
更新了答案并添加了一些额外信息。 - RushPL

6
在现代的C++环境中,您需要#include <cstring>来获取memset()

5
从技术上讲,你只能保证使用std::memset,但所有流行的实现都会包含 C 头文件并添加 using 语句... - rubenvb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接