我有一个非常语法正确且非常简单的应用程序,它从用户获取两个整数并进行减法和添加它们。但是当我尝试编译程序时,我收到了这个错误:
找不到' C:\ Users \ MyUsername \ source \ repos \ SimpleCalculator \ SimpleCalculator \ Debug \ SimpleCalculator.obj'。 SimpleCalculator.exe是使用/ DEBUG:FASTLINK构建的,它需要对象文件进行调试。
这是我的代码:
#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;
没有错误。
答案 0 :(得分:4)
您需要在调用函数之前声明函数,因此您基本上有两个选项:
在main
:
int addition(int a, int b);
int substraction(int a, int b);
或在main
前面移动它们的整个定义。
答案 1 :(得分: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
。
答案 2 :(得分:0)
C ++编译器从上到下读取您的代码。在声明之前,它不知道addition
的存在 - 在声明是错误之前尝试使用它。
要修复编译器错误,请将addition
和substraction
的定义移到main
之上。
答案 3 :(得分:0)
在C ++(和C99,C11但不是旧的C标准)中,必须先声明函数才能使用它们。这应该与定义相同,但没有正文({}
),就像在头文件中找到的一样。
int addition(int a, int b);
int substraction(int a, int b);
void main()
{
...