zoukankan      html  css  js  c++  java
  • 定义函数声明误区和函数相互调用导致的问题

    我们编写程序时一般有个习惯,写函数都爱把函数写到主函数的前面,

    一般常用的写法:

    #include<iostream>
    using namespace std;
    void A()
    {
        cout<<"函数A
    ";
    }
    void B()
    {
        cout<<"函数B
    ";
    }
    int main()
    {
        A();
        B();
        return 0;
    }

    运行结果:

    现在看着很正常是吧?运行结果也对,我们一般定义函数都习惯这样写,以为这样就不用声明函数啦。

    那么现在我们看下这个程序修改后这个源码是不是还可以这样?而不用声明呢?

    #include<iostream>
    using namespace std;
    void A()
    {
        cout<<"函数A
    ";
        B();
    }
    void B()
    {
        cout<<"函数B
    ";
        A();
    }
    int main()
    {
        A();
        B();
        return 0;
    }

    此程序未声明前会报错,原因没有声明。

    看到上面没?出现了报错,这时候就必须要对函数进行声明了。

    声明修改后正确的源码为:

    #include<iostream>
    using namespace std;
    void A();
    void B();
    void A()
    {
        cout<<"函数A
    ";
        B();
    }
    void B()
    {
        cout<<"函数B
    ";
        A();
    }
    int main()
    {
        A();
        B();
        return 0;
    }

    注意,此程序虽然修改后能正确运行但是由于在函数A中调用函数B,函数B中调用函数A,会导致无穷循环。

    这个也要注意编写程序中尽量避免函数的相互调用出现混乱。

  • 相关阅读:
    centos7修改时区EDT------CST
    七种可能 | Linux丢包故障的定位与解决
    TCP超时、ping不丢包排查
    JavaScript 判断变量是否为空---三元运算,元组获取值-重组.map()。
    SSH 正、反向代理实现稳定的内网穿透实验_
    V3
    V3
    I4-6 At the hotel Teacher: Maggie
    English Voice of <<Everything I Need >>
    V3
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/3693311.html
Copyright © 2011-2022 走看看