2014-10-02 2 views
-4

По какой-то странной причине каждый раз, когда я скомпилирую свой проект, я получаю эту странную ошибку нескольких определений, хотя это единственное место, где я определяю свою функцию. Я использую кодовые блоки как свои 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; 
} 
+3

Показать 'warning' сообщение. –

+2

Что в test.h? –

+0

Удалите 'test.h', и он должен работать нормально, если вы положили'} 'в конец кода! –

ответ

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; 
} 
+0

Пожалуйста, не переставляйте форматированный код, просто отредактируйте вопрос. –

+0

@WernerHenze у него недостаточно репутации для этого –

Смежные вопросы