私は、次のコードを持っている:コードブロック間違って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のx64アルティメット/または勝利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つの別々のコンピュータでこれを試しましたが、すべて同じ動作を示します。だから私はマシンが問題だとは思わない。 別のコンパイラを使ってみましたが、正しく設定してもデバッガが正しくないのかどうかわかりません。私は試しましたボーランドC++とデジタル火星。 ボーランドには、コードブロックでサポートされている5.5ではなく新しいバージョン10.1が用意されています。 これがコンパイラやプログラムの問題であるかどうかわかりません。
私はC++を学ぼうとしていますが、これは非常に面倒です。私たちの先生はクラスで同じソフトウェアを使っていますが、のLinuxにあります。
トピックオフ:ここに行番号のコードを挿入する方法はありますか?最初の投稿はまだ私はまだこれで新しい:)。
ありがとうございました!
より厳密なコンパイラオプションを使用します。 – juanchopanza
どのGCCのバージョンを使用していますか? C++コンパイラのどのバージョンでもコンパイルしてはいけないと言っているからです。 –
質問とは何ですか?間違ったコードが不定に動作するのはなぜですか? – Fureeish