我对此感到困惑了一段时间。为了对此进行测试,我制作了一个简单的程序,该程序仅创建一个std::string变量并将其打印到屏幕上。但是,它不包含
让我感到困惑的是,该程序可以完美地编译和运行。现在,我正在使用XCode Developer Tools附带的#include <iostream>
using namespace std;
int main()
{
string name = "Test";
cout << name << endl;
return 0;
}
clang
编译器。这是预期的行为吗?我希望自从我刚开始学习C++以来,这个问题就不会太荒谬。
最佳答案
您不需要包括#include <string.h>
头文件的原因是,当您包括#include <iostream>
头文件时,它包括std::string
。
但是,请不要依赖它。在您的编译器上可能有效的方法在另一编译器上可能无效。始终包括正确的头文件。
要编辑示例,应使用以下示例:
#include <iostream>
#include <string>
int main()
{
std::string name = "Test";
std::cout << name << std::endl;
return 0;
}
另请注意:为什么不应该使用 using namespace std;
。
关于c++ - 如果不包含<string.h>,为什么我的程序可以成功编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63293660/