C++只 include 了<iostream>,为什么也能用 isdigt()、swap()等其他头文件里的函数?

2020-02-01 10:39:02 +08:00
 good1uck
1984 次点击
所在节点    问与答
5 条回复
ipwx
2020-02-01 10:41:35 +08:00
因为你那个版本的编译器的标准库可能在 iostream 里面间接 include 了其他头文件。顺带一次,每个编译器可能引用关系不一样,所以还是得按照标准来。
churchmice
2020-02-01 10:54:33 +08:00
include 的作用是为了原型检查或者宏替换

如果 isdigit 这些不是用宏实现的,你不 include 对应的头文件,顶多编译的时候给你报个 warning,强制函数返回类型为 int
链接的时候你只要链接了对应的库,程序大概率跑起来没有问题
secondwtq
2020-02-01 12:52:25 +08:00
@churchmice C++ 没这条的
las917vki
2020-02-01 12:55:28 +08:00
@churchmice 你那个是 LINK 层面的东西,题主说的是头文件的东西,你这说得什么牛头不对马嘴的。
就是你没包含,但是 include 会套娃。
nicebird
2020-02-01 14:49:46 +08:00
iostream 里面间接引用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/641334

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX