我的意思是,即使在函数调用之前定义了函数,它是否需要有一个函数原型?我尝试了一个带有定义b4调用的程序,它是worked.but in C++,由Herbert设计,它说C++需要完整的函数,prototyping.so很困惑。那么,C++真的需要完整的功能原型吗?
发布于 2017-07-09 17:53:34
考虑到这个问题,我假设你处于初级阶段。首先,你应该开始学习一本更好的书。
将编译器视为读取程序并将其转换为机器语言的智能人员。当编译器开始编译您的程序时,它可能会遇到一个函数调用,例如:foo();,它必须使控件跳转到函数的地址,以便在运行期间执行所需的指令,但是编译器不知道函数是什么或函数在哪里!为编译器提供引用可以帮助编译器编译代码。
原型是这样的引用,您也可以在任何函数调用之前定义一个函数,并且它仍然可以工作。
除了技术上的原因,原型使代码在大型项目中更加清晰。
否则,您就会在函数定义中滚动,而不知道这些函数正在做什么。记住,你也像一个人类编译器!
--我注意到了一个常见的错误:,人们通常会反对这个想法,并在上面定义他们的功能。虽然,当从函数调用另一个函数时,可能会出现问题。
int function_1()
{
return function_2();
}
int function_2()
{
return function_1();
}在这里,没有功能定义的安排是可行的。原型要好得多。
假设:显然还有更多的语句来打破没完没了的循环和返回值,这只是为了说明这个概念。
发布于 2017-07-09 16:59:39
函数定义也是函数声明(即原型)。因此,如果在调用之前定义函数,那么一切都将是hunkydory。我强烈建议不要尝试从Herb的作品中学习C++。
发布于 2017-07-09 18:18:50
函数原型或函数接口是一个函数的声明,它指定函数的名称和类型签名(数据类型、参数类型和返回类型),但忽略了函数体。 函数原型仅仅指定了它的(函数)接口(I/O)。 函数的原型也称为函数的签名。
如果在实际函数定义之前必须对代码部分中的函数进行调用或引用,则函数原型是强制性的。
一个函数原型可以被“识别”或从其定义中得到,因此,如果在函数的实际定义之前没有调用该函数,则声明该函数原型并不是强制性的。
https://stackoverflow.com/questions/44998857
复制相似问题