#include<iostream.h>
int main()
{
char name[] = "Mary Mon";
cout<<strlen(name);
return 0;
}
该程序在没有#include<string.h>. 为什么?
#include<iostream.h>
int main()
{
char name[] = "Mary Mon";
cout<<strlen(name);
return 0;
}
该程序在没有#include<string.h>. 为什么?
首先,正如评论中指出的那样,没有名为<iostream.h>. iostream.h是 1998 年 C++ 语言标准化之前使用的头文件。标准发布时,名称改为 just <iostream>(不带.h)。
其次,该标准允许标头包含其他标头(C++03 §17.4.4.1/1)。因此,您的<iostream.h>标头可能会包含<string.h>,可能是因为那里的某些模板代码依赖于某些字符串函数。结果,您的代码可以干净地编译。
不过,您不应依赖此行为。为了使您的代码具有最大的可移植性,您应该#include需要每个头文件,无论它们是否#include由其他头文件递归。