我有以下代碼:代碼塊不正確的C++輸出
#include <iostream>
using namespace std;
Sum (int a, int b)
{
int x = a - b;
//cout << x << " \n";
return x;
}
int main()
{
int s1 = Sum(3, 6);
cout << s1;
return 0;
}
系統信息: 贏7 SP1 64位旗艦版/專業版或Windows 8.1 x64的 代碼塊16.01 MinGW的 調試器名和版本:GNU GDB (GDB)7.6.1 編譯器:GNU GCC編譯器
此代碼編譯沒有問題,但這是問題,應該有錯誤。
1)功能總和,沒有返回值,在http://cpp.sh/它不讓我編譯,因爲這一點。
2)無論我是否寫入「return x」,變量的s1值爲-3。
它在某種程度上通過x
每次的價值,但如果我取消了cout
聲明上面的「return x
」一切都開始工作了預期,什麼是地獄:) - >s1
會有一個隨機值時,沒有return語句(因爲它在用於函數調用之前未被初始化),而當return
在那裏時是-3。
我已經在3臺獨立的電腦上試過了,它們都表現出相同的行爲。所以我不認爲機器是問題。 我也試過使用不同的編譯器,但我不知道我是否正確配置它們,並且它們沒有調試器?我試過Borland C++ and Digital Mars。 Borland有一個新的版本10.1,而不是代碼塊支持的5.5,我不能讓新的工作。 我甚至不知道這是編譯器還是程序問題?
我想學習C++,這是非常煩人的。我們的老師在課堂上使用相同的軟件,但是在Linux上,它完美地工作。
Off topic:有沒有辦法在這裏插入帶有行號的代碼?首先在這裏發佈,所以我仍然是新的:)。
謝謝!
使用更嚴格的編譯器選項。 – juanchopanza
您使用的是哪個版本的GCC?因爲就像你說的那樣,不應該用任何C++編譯器的版本進行編譯。 –
什麼是問題?爲什麼不正確的代碼行爲不確定? – Fureeish