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,会导致无穷循环。

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

  • 相关阅读:
    Android之dialog
    android上下文菜单(ContextMenu)
    Android中Handler的使用2
    Intent 各种跳转 .
    Android之Adapter用法总结
    android之Menu 实例与详解
    android学习之FrameLayout
    Andriod: 在xml布局中使用自定义属性
    你软考了吗?
    菜鸟从零学习数据库(三)——存储过程
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/3693311.html
Copyright © 2011-2022 走看看