2013-05-10 40 views
-4

這是我在C++代碼:有人可以解釋爲什麼只有我的一個功能打印到控制檯?

#include <iostream> 
using namespace std; 

int tuna = 20; // this is global 

//main function 
int main() 
{ 
    int tuna = 69; // this is local 
    cout << tuna << endl; 
} 

//fish function 
int fish() 
{ 
    cout << tuna << endl; // this should print global? 
} 

當我運行它的fish功能不打印到控制檯。我不知道爲什麼,這對我沒有意義。

+5

你是如何「運行」它? 'main'是程序的入口點,所以它被自動調用。你需要自己打電話給「魚」。 – 2013-05-10 16:48:56

+3

如果這是你的代碼的全部,你永遠不會調用'fish()',因此方法內的代碼永遠不會運行。 – XGundam05 2013-05-10 16:50:52

+0

它應該打印'20'和*會*,如果只有它有機會! – 2013-05-10 16:55:02

回答

4

你沒有調用fish(),所以它看起來並不奇怪,它的主體沒有被執行。

嘗試用:

int main() 
{ 
    fish(); 

    return 0; 
} 

因爲main()是唯一可能的入口點計劃,並呼籲其他,用戶自定義,功能的唯一途徑。

+0

別忘了金槍魚 – UmNyobe 2013-05-10 16:55:16

2

你曾經稱過功能(魚)嗎?不在你的樣品中。

2

因爲你根本就沒有打過電話。

+2

爲什麼downvote? – 2013-05-10 16:50:01

+0

不是我的失望,但我會冒險猜測downvote的原因:答案甚至不是一個完整的句子,更重要的是它沒有單獨的意義,但不清楚從答案中得出的「它」是什麼。我喜歡的經驗法則是:答案應該仍然有意義,即使問題被編輯。 – hyde 2013-05-10 17:11:09

+0

@hyde也許這只是我不是英語母語的人,但是1.答案是一個完整的句子,2.「當我運行它時,魚的功能不會打印到控制檯上。」 - 所以很清楚「it」是指'tuna()'函數。無論如何,這個「問題」不值得超過這個答案。 – 2013-05-10 17:12:18

相關問題