#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
由其他头文件递归。