所以我之前的一次考试有这个问题,到目前为止我一直在读你不需要任何语言的声明?
哪个是对的?如果没有声明,C++会报错还是会运行?
在涉及 C 和 C++ 的讨论中,“函数声明”是一个相当模糊的术语。这些语言在这方面有很大不同。
在C++语言中只有一种函数声明:带有所有参数类型和返回类型的声明。这样的声明是必要的,因为 C++ 语言支持函数超载。为了选择调用哪个函数,编译器需要了解该函数的所有信息,并且需要知道该函数的哪些重载版本可用。如果您“忘记”声明某个重载版本,重载决策将不会考虑它。这至少是 C++ 中需要函数声明的原因之一。
C语言中有两种函数声明:非原型声明和原型声明(或者简单地原型)。 C 中的原型与 C++ 声明非常相似 - 它包括所有参数类型。在标准 C 中,可变参数函数(带有...
参数)。对于非可变参数函数原型即使在今天也不需要声明。但至少从C99开始非原型所有其他函数都需要声明。在较旧的 C89/90 版本中,不需要非可变参数函数的语言函数声明。
所以,这基本上应该回答你的问题了。在 C++ 中,函数声明是必需的,因为语言功能严重依赖它们。在现代 C 语言中,还需要函数声明,只是为了使代码更安全。在旧版本的 C 函数声明中,不需要函数声明,主要是因为该语言被定义为无需函数声明即可工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)