2017-09-11 8 views
-1

私は、ユーザーからの2つの整数を取り、それらの減算と加算を行う、構文に忠実で非常に単純なアプリケーションを持っています。私はプログラムをコンパイルしようとする。しかし、私はこのエラーを取得しています:シンプルなC++アプリケーションをコンパイルする際のエラー

Could not find 'C:\Users\MyUsername\source\repos\SimpleCalculator\SimpleCalculator\Debug\SimpleCalculator.obj'. SimpleCalculator.exe was built with /DEBUG:FASTLINK which requires object files for debugging.

ここに私のコードです:

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

void main() 
{ 
int a, b; 
cout << "Welcome." << endl; 

cout << "Enter first number: "; 
cin >> a; 
cout << "Enter second number: "; 
cin >> b; 

cout << "A+B is: "; 
cout << addition(a,b) << endl; 

cout << "A-B is: "; 
cout << substraction(a,b) << endl; 

system("pause"); 

} 

int addition(int a, int b) { 
    return a + b; 
} 

int substraction(int a, int b) { 
    return a - b; 
} 

私は機能を持っている場合、このエラーが発生しただけ。コードが次のような場合:

cout << "A+B is: "; 
cout << a+b << endl; 

エラーはありません。

+3

宣言する前に関数を呼び出すことはできません – user463035818

+0

あなたがコンパイラであるとすれば、これまで上から読んだものだけを有効と判断できます。一番下のものはすべてあなたには分かりません。今、あなたは '(a、b)'に来ます。どのように '追加 'が何であるか知っていますか? – StoryTeller

+2

'main'の戻り値の型は' int'でなければなりません。 – rndus2r

答えて

4

main前にそれらを宣言します。

int addition(int a, int b); 
int substraction(int a, int b); 

またはmainの前で彼らの全体の定義を移動します。

0

C++コンパイラはコードを上から下に読み取ります。 additionの存在が宣言されるまで認識されません。宣言がエラーになる前にそれを使用しようとします。

コンパイルエラーを修正するには、additionsubstractionの定義をmainより上に移動します。あなたは基本的に2つのオプション持っているので、あなたは、あなたがそれらを呼び出す前に、関数を宣言する必要が

0

C++(およびC99、C11ではなく古いC標準)では、使用する前に関数を宣言する必要があります。これは、定義と同じである必要がありますが、本体({})はヘッダーファイル内のものと似ています。

int addition(int a, int b); 
int substraction(int a, int b); 
void main() 
{ 
    ... 
1

あなたがにそれらを使用する前に、ちょうどこのように、機能にを宣言:

int addition(int a, int b); 
int substraction(int a, int b); 

、あなたは罰金になります。

それとも、あなたの関数の定義(実装)を移動し、main()


PS:What should main() return in C and C++?int、ないvoid

関連する問題