iostream.h在海湾合作委员会中的位置
Location of iostream.h in GCC
近十年后,我又回到了C++世界。我已经安装了GCC并在Windows 7机器上编写了一个初步程序。我有以下问题:
当我说#include <iostream.h>
时,我收到一个错误,说找不到文件。我不得不说#include <iostream>
让它工作。此外,当我转到安装了GCC的文件夹时,我找不到任一名称的听觉器文件。iostream是从哪里挑选的?
><iostream>
是您需要包含的标准C++标头。它的位置取决于您的平台。在我的身上,它在
/usr/include/c++/4.4.3/iostream
您可以使用以下命令了解g++
配置的详细信息
g++ --verbose
除其他外,这将打印出来,
--with-gxx-include-dir=/usr/include/c++/4.4
.h
标题(如iostream.h
)已被弃用,取而代之的是"现代"样式的标题(iostream
)。这可确保实现不需要将标头作为物理上位于磁盘上的文件提供。可以自由选择任何适当的实现。
例如,<math.h>
要求实现提供具有此名称的文件,但如果仅指定 <cmath>
,则实现可以根据需要自由提供数学实用程序,而无需物理文件。
此外,.h
标头将其声明放在全局命名空间中,而"non-.h"标头将其声明放在std
命名空间中。因此,新标头不太可能导致任何命名冲突。
编辑 正如Basile Starynkevitch在评论中指出的那样,这个概念并不仅限于C++,但C标准也支持它。
C++中没有iostream.h
标题,这些在前标准时代就已经存在了。没有C++标准库标头以 .h
结尾。
如果您的编译器安装是合理的,则永远不必将包含标准库标头的目录添加到包含目录中 - 编译器已经最清楚在哪里查找。
在我的 Windows 盒子上,iostream
(现在没有 .h
)处于 :cygwinlibgcci686-pc-cygwin4.5.3include
。(我正在搜索它,因为日食错误,并搜索了谷歌和我的高清。
实际上你可以在GCC的源代码中找到它:libstdc++-v3/include/std/iostream
没有 .h
扩展GCC-4.7
示例
使用 GCC 的-H
预处理器选项使其显示每个包含的标头。
正如其他人告诉您的那样,标准C++标头不再以.h
或.hh
结尾
(我的建议是将.hh
用于您自己的C++头文件,.cc
用于C++源文件;我还建议使用 GCC 4.7 并针对 C++2011 标准进行编码,特别是使用 auto
关键字对初始化的局部变量进行"类型推断")
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 海湾合作委员会 ARM 性能下降
- iostream.h在海湾合作委员会中的位置