为什么在定义函数之前先声明一个函数?

时间:2020-02-24 03:44:08

标签: c++

为什么在定义函数之前先声明一个函数?我正在使用C ++。我知道有人可能认为这是一个幼稚的问题,但我真的很困惑。

1 个答案:

答案 0 :(得分:1)

为什么在定义函数之前先声明一个函数?

因为要调用您的函数的部分或全部代码很可能无法访问该定义。考虑一个在与您的函数不同的.cpp文件中定义的函数;编译.cpp时,编译器不会加载到函数的.cpp文件中以检查函数的名称,参数类型和返回类型,但是我们仍然希望编译器在错误调用函数时发出错误消息,因此,编译器需要以某种方式知道函数的名称和签名-C ++设计人员采用的解决方案是将函数名称和签名的声明放入一个单独的.h文件中,该文件由编译器提供确实具有访问权限(通过#include)。

(并且,如果您想知道为什么编译器不能只读取所有必需的.cpp文件,尽管从理论上讲可以,但是以增加编译时间为代价,但是这仍然会使我们在用例中出现问题的情况是,要使用您的函数的系统上不存在包含您函数的.cpp文件,因为您的函数仅作为预编译库的一部分提供给了调用代码。情况下,仍然需要在.h文件中单独声明)