程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 定義函數聲明誤區和函數相互調用導致的問題

定義函數聲明誤區和函數相互調用導致的問題

編輯:關於.NET

我們編寫程序時一般有個習慣,寫函數都愛把函數寫到主函數的前面,

一般常用的寫法:

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

運行結果:

現在看著很正常是吧?運行結果也對,我們一般定義函數都習慣這樣寫,以為這樣就不用聲明函數啦。

那麼現在我們看下這個程序修改後這個源碼是不是還可以這樣?而不用聲明呢?

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

此程序未聲明前會報錯,原因沒有聲明。

本欄目

看到上面沒?出現了報錯,這時候就必須要對函數進行聲明了。

聲明修改後正確的源碼為:

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

注意,此程序雖然修改後能正確運行但是由於在函數A中調用函數B,函數B中調用函數A,會導致無窮循環。

這個也要注意編寫程序中盡量避免函數的相互調用出現混亂。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved