调用函数B计划

来源:互联网 发布:淘宝上雪花秀小样真假 编辑:程序博客网 时间:2024/06/05 18:15

帽子的方式,时间由add() main()称,它将已经知道添加。由于这是一个简单的程序,这种变化是比较容易做到的。然而在一个大的程序这将是非常乏味的试图破译功能称为其他功能可以在正确的顺序声明

此外,这个选项是不可用。让我们说,我们写了一个,有两个功能,如果函数调用函数B计划,和功能的B细胞功能,那么有没有办法秩序的一种方式,他们都会很高兴的功能。如果你定义了一个第一,编译器会抱怨不知道B。如果你定义了B第一编译器会抱怨说,它不知道什么

因此,一个更好的解决方案是使用一个前向声明。在向前声明,我们声明(但不定义)我们提前在这里我们使用它的功能,通常在文件的顶部。这样,编译器会明白我们的功能看起来像它遇到一个打电话的时候,它。我们通过书面声明语句称为函数的原型。函数原型是一个函数,包括函数名参数和返回类型声明但没有实现的功能

这是我们最初的计划向前声明

#include <iostream>int add(int x, int y); // forward declaration of add() using a function prototypeint main(){    using namespace std;    cout << "The sum of 3 and 4 is: " << add(3, 4) << endl;    return 0;}int add(int x, int y){    return x + y;}Now when the compiler reaches add() in main, it will know what add looks like (a function that takes two integer parameters and returns an integer), and it won’t complain.It is worth noting that function prototypes do not need to specify the names of the parameters. In the above code, you could also forward declare your function like this:int add(int, int);

然而我们喜欢的方法,其中的参数是因为它是描述性的读者命名

一个问题,许多新的程序员都如果我们向前声明一个函数但不确定它会发生什么?

答案是:这取决于。如果一个前锋声明,但功能没有被调用,程序将编译和运行良好。然而,如果一个向前声明,函数被调用,但没有定义的功能的程序,程序将编译好的,但链接器会抱怨说,它不能解决函数调用。考虑下面的程序


0 0