编译简单C 应用程序的错误

Error with compiling simple C++ application

本文关键字:错误 应用程序 简单 编译      更新时间:2023-10-16

我有一个漂亮的语法正确且非常简单的应用程序,该应用程序从用户中获取两个整数,并进行缩写和添加。但是,当我尝试编译程序时,我会遇到此错误:

找不到'c: users myusername source repos simplecalculator simplecalculator debug debug simplecalculator.obj'。使用/debug:fastlink构建了simpleCalculator.exe,它需要对象文件进行调试。

这是我的代码:

#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;

没有错误。

您需要在调用功能之前声明功能,因此您基本上有2个选项:

main之前声明它们:

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

或将它们的整个定义移动在main的前面。

在使用之前,请声明函数,如下:

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

你会没事的。

或,将功能的定义(实现)移动到 main()

之前

ps:c和c 中的main()应该返回什么?int,而不是void

C 编译器从上到下读取您的代码。在声明之前,它不知道addition的存在 - 在声明是错误之前尝试使用它。

要修复编译器错误,请在main上方移动additionsubstraction的定义。

在C 中(和C99,C11,但不是较早的C标准),您必须在使用它们之前声明功能。这应该与定义相同,但没有正文({}),就像您在标题文件中找到的一样。

int addition(int a, int b);
int substraction(int a, int b);
void main()
{
    ...
相关文章: