多个定义首先在此定义

时间:2014-10-02 02:32:07

标签: c function

由于某些奇怪的原因每次我编译我的项目时都会遇到多个定义的奇怪错误,即使这是我定义我的函数的唯一地方。我使用代码块作为IDE和GCC作为编译器。这是代码:

#include <stdio.h>
#include <test.h>

int checkForSquare(int num){
    int squared[10001];
    squared[num] = num * num;
    for(int i = 0; i <= 10000; i++){
        if(squared[i] == num){
            return 1;
            break;
        }
    }
return 0;
}

int main(){
    for(int x = 0;x <=10000;x++){
        if(checkForSquare(x))
            printf( "%d" , x );
        else
            printf("Not Square");
    }

return 0;
}

1 个答案:

答案 0 :(得分:0)

首先,您可以查看以下讨论: How to prevent multiple definitions in C?

其次,请至少在发布问题之前正确对齐代码。

第三,我认为你的checkForSquare()应如下所示:

int checkForSquare(int num){
    static long squared[10001];
    squared[num] = num * num;
    for(int i = 1; i < num; ++i){
        if(squared[i] == num){
            return 1;
        }
    }
    return 0;
}