在Visual Studio 2017中编译C代码错误LNK2005和LNK1169

时间:2018-06-15 05:22:52

标签: c visual-studio

编译计算正整数总和的代码时遇到问题。令我困惑的是我设法在Online C Compiler(https://www.onlinegdb.com/online_c_compiler)上成功编译并运行代码,但在VS2017上获得了LNK2005和LNK1169错误。怎么解决?

//Calculate total sum of positive integer.

#include <stdio.h>

int sum(int n);

int main(void) {
    int n;
    printf("Enter positive value of integer: ");
    scanf("%d", &n);
    printf("\nTotal value for %d is = %d\n", n, sum(n));
    return (0);
}

int sum(int n) {
    if (n == 0) return 0;
    else return (n*(n+1)/2);
}

顺便说一句,请忽略VS2017上的scanf警告,稍后我会将其更改回scanf_s。

2 个答案:

答案 0 :(得分:4)

如果您有多个包含main函数的源文件,则会发生这种常见错误。

答案 1 :(得分:1)

问题出现了,因为我的VS2017解决方案中有2个源文件。删除一个将允许程序成功编译。