我使用Dev C ++ 5.11。 TDM-GCC 4.8.1
此代码运行良好。
#include<iostream>
using namespace std;
int main()
{
printf("%d\n", 42);
cout << "good";
}
但据我所知,iostream不包括&#34; printf&#34;。 (http://en.cppreference.com/w/cpp/header/iostream)
为什么这段代码会运行? iostream实际上包括printf?这是一种标准吗?
答案 0 :(得分:2)
系统/标准头文件中包含的头文件列表依赖于库实现(通常与您正在使用的编译器相关联),并且(据我记得)C ++标准不禁止一个头文件自动包含另一个
在您的情况下,<iostream>
可能也包括<stdio.h>
(或<cstdio>
)。
依赖于另一个包含的头文件不能移植到不同的标准库,编译器和平台,因此最好确保明确#include所需的一切。