c++ - 为什么要在定义函数之前声明它?
问题描述
为什么要在定义函数之前声明它?我正在使用 C++。我知道有人可能会认为这是一个幼稚的问题,但我真的很困惑。
解决方案
为什么要在定义函数之前声明它?
因为很可能部分或全部想要调用您的函数的代码将无法访问定义。考虑在与您的函数不同的 .cpp 文件中定义的函数;编译该 .cpp 时,编译器不会加载函数的 .cpp 文件来检查函数的名称、参数类型和返回类型——但我们仍然希望编译器在函数调用不正确时发出错误,因此编译器需要以某种方式了解您的函数的名称和签名——C ++ 设计者采用的解决方案是将函数名称和签名的声明放在编译器确实可以访问的单独 .h 文件中(通过#include
) .
(如果你想知道为什么编译器不能只读取所有必要的 .cpp 文件——理论上它可以,尽管以增加编译时间为代价——但这仍然会给我们留下一个问题包含您的函数的 .cpp 文件在想要使用您的函数的系统上不存在的用例,因为您的函数仅作为预编译库的一部分提供给调用代码。在这种情况下, .h 文件中的单独声明仍然是必要的)
推荐阅读
- python-3.x - 我的 f' 字符串是否禁用了我的 sorted() 函数?
- r - 使用 tesseract 进行 OCR 后提取一段文本
- android-studio - 单击每个列表项,如何在另一个活动中播放该项目的歌曲?
- webhooks - Google Cloud Build 的 POST 正文 - Webhook 触发器
- sql - 如何根据具有更新值的列过滤源表中的更新?只需要为一个特定的列更新具有新值的行
- html - 无法分别添加滚动到内容和侧栏 div
- excel - 在上下文单元菜单中放置一个按钮
- regex - 正则表达式积极看待记事本++
- java - 简单的OOPS演示,卡住了for循环的功能及其在main方法中的作用
- php - 试图让 icu4c 版本 64 在 Mac Catalina 上与 PHP 5.6 一起使用