Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 函数原型在C+中是强制性的吗+;?_C++ - Fatal编程技术网

C++ 函数原型在C+中是强制性的吗+;?

C++ 函数原型在C+中是强制性的吗+;?,c++,C++,我的意思是,即使我在函数调用之前定义了函数,它是否需要有一个函数原型? 我尝试了一个定义B4调用的程序,它是Word.但是在C++中,Herbert schildt说C++需要完全的函数原型,所以我很困惑。 那么,C++真的需要全函数原型吗?< P>函数定义也是函数声明(即原型)。因此,如果在调用函数之前先定义它,那么一切都会很困难。我强烈建议不要尝试从Hier-SHILDT的作品中学习C++。函数定义也是函数声明(即原型)。因此,如果在调用函数之前先定义它,那么一切都会很困难。我强烈建议不要尝

我的意思是,即使我在函数调用之前定义了函数,它是否需要有一个函数原型? 我尝试了一个定义B4调用的程序,它是Word.但是在C++中,Herbert schildt说C++需要完全的函数原型,所以我很困惑。
那么,C++真的需要全函数原型吗?

< P>函数定义也是函数声明(即原型)。因此,如果在调用函数之前先定义它,那么一切都会很困难。我强烈建议不要尝试从Hier-SHILDT的作品中学习C++。函数定义也是函数声明(即原型)。因此,如果在调用函数之前先定义它,那么一切都会很困难。我强烈建议不要尝试从《草本希尔德》的作品中学习C++。 我的意思是,即使我在函数调用之前定义了函数,它是否需要有一个函数原型

不,不是这个意思

< > C++真的需要全函数原型吗?< /P> 是的。编译器至少需要查看函数的声明才能使用:

void foo(int i);
或者,您可以提供完整(内联)定义

inline void foo(int i) {
   // do something
}
我的意思是,即使我在函数调用之前定义了函数,它是否需要有一个函数原型

不,不是这个意思

< > C++真的需要全函数原型吗?< /P> 是的。编译器至少需要查看函数的声明才能使用:

void foo(int i);
或者,您可以提供完整(内联)定义

inline void foo(int i) {
   // do something
}

考虑到这个问题,我假设你是初学者。首先,你应该从一本更好的书开始学习

将编译器视为一个聪明的人,他阅读您的程序并将其转换为机器语言。 当编译器开始编译程序时,可能会遇到如下函数调用:
foo()
现在,它必须使控件跳转到函数的地址,以便在运行期间执行所需的指令,但编译器不知道函数是什么或在哪里!
为编译器提供引用有助于它编译代码

原型就是这样的引用,您也可以在任何函数调用之前定义一个函数,它仍然可以工作

除了技术原因,原型使代码在大型项目中更加干净

否则,您只需滚动函数定义,而不知道函数在做什么。记住,你也像一个人类编译器

我注意到了一个常见的错误:人们通常会反对这种想法,并在上面定义自己的功能。但是,当从函数调用另一个函数时,可能会出现问题

int function_1()
{
        return function_2();
}

int function_2()
{
        return function_1();
}
在这里,没有功能定义的安排将起作用。原型设计要好得多


假设:显然还有一些语句可以打破无休止的循环并返回值,这只是为了说明这个概念。

考虑到这个问题,我假设您是初学者。首先,你应该从一本更好的书开始学习

将编译器视为一个聪明的人,他阅读您的程序并将其转换为机器语言。 当编译器开始编译程序时,可能会遇到如下函数调用:
foo()
现在,它必须使控件跳转到函数的地址,以便在运行期间执行所需的指令,但编译器不知道函数是什么或在哪里!
为编译器提供引用有助于它编译代码

原型就是这样的引用,您也可以在任何函数调用之前定义一个函数,它仍然可以工作

除了技术原因,原型使代码在大型项目中更加干净

否则,您只需滚动函数定义,而不知道函数在做什么。记住,你也像一个人类编译器

我注意到了一个常见的错误:人们通常会反对这种想法,并在上面定义自己的功能。但是,当从函数调用另一个函数时,可能会出现问题

int function_1()
{
        return function_2();
}

int function_2()
{
        return function_1();
}
在这里,没有功能定义的安排将起作用。原型设计要好得多

假设:显然还有一些语句可以打破无休止的循环并返回值,这只是为了说明这个概念

函数原型或函数接口是 函数,指定函数的名称和类型签名(arity, 参数的数据类型和返回类型),但忽略该函数 身体

函数原型仅指定其(函数)接口(I/O)

函数的原型也称为函数的签名

如果必须在实际函数定义之前对代码段中的函数进行调用或引用,则函数原型是必需的

函数原型可以“识别”或从其定义中获得,因此,如果在函数实际定义之前没有调用函数,则声明函数原型不是强制性的

函数原型或函数接口是 函数,指定函数的名称和类型签名(arity, 参数的数据类型和返回类型),但忽略该函数 身体

函数原型仅指定其(函数)接口(I/O)

函数的原型也称为函数的签名

如果必须在实际函数定义之前对代码段中的函数进行调用或引用,则函数原型是必需的

功能原型可以被“识别”或获得