每次我编译项目时,出于某种奇怪的原因,即使这是我定义函数的唯一位置,也会遇到多个定义的奇怪错误。我将代码块用作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;
}
最佳答案
首先,您可以查看下面的讨论:
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;
}