Ach*_*int 13 c c++ declaration
所以我以前的一个考试有这个问题,到现在为止我一直在读你不需要任何语言的声明?
哪个是对的?如果没有声明,C++会出错,还是会运行?
AnT*_*AnT 20
在涉及C和C++的讨论中,"函数声明"是一个相当含糊的术语.在这方面,这些语言有很大不同.
在C++语言中,只有一种函数声明:声明包含所有参数类型和返回类型.这样的声明是必要的,因为C++语言支持函数重载.为了选择调用哪个函数,编译器需要知道函数的所有内容,并且需要知道函数的哪些重载版本可用.如果您"忘记"声明某些重载版本,则不会通过重载解析来考虑它.这至少是C++中必要的函数声明的原因之一.
在C语言中,有两种函数声明:非原型声明和原型声明(或简称原型).C中的原型与C++声明非常相似 - 它包含所有参数类型.标准C中一直需要原型用于可变参数函数(带...参数的函数).对于非可变函数,即使在今天也不需要原型声明.但是从C99开始,所有其他函数都需要至少非原型声明.在较旧的C89/90版本的语言函数中,不需要非变量函数的声明.
所以,这应该基本上回答你的问题.在C++中,函数声明是必需的,因为语言特性严格依赖于它们.在现代C函数中,还需要声明才能使代码更安全.在旧版本的C函数声明中,主要不需要声明,因为语言被定义为在没有它们的情况下工作.
| 归档时间: |
|
| 查看次数: |
11583 次 |
| 最近记录: |