2010-09-20 6 views
9

je la fonction suivante dans mon code:Mise en garde de la fonction pow bibliothèque mathématique C

int numberOverflow(int bit_count, int num, int twos) { 
    int min, max; 
    if (twos) { 
     min = (int) -pow(2, bit_count - 1);  \\ line 145 
     max = (int) pow(2, bit_count - 1) - 1; 
    } else { 
     min = 0; 
     max = (int) pow(2, bit_count) - 1;   \\ line 149 
    } 
    if (num > max && num < min) { 
     printf("The number %d is too large for it's destination (%d-bit)\n", num, bit_count); 
     return 1; 
    } else { 
     return 0; 
    } 
} 

Au moment de la compilation je reçois l'avertissement suivant:

assemble.c: In function ‘numberOverflow’: 
assemble.c:145: warning: incompatible implicit declaration of built-in function ‘pow’ 
assemble.c:149: warning: incompatible implicit declaration of built-in function ‘pow’ 

Je suis à une perte pour qu'est-ce qui cause ça ... des idées?

Répondre

1

De la formulation de vos avertissements, il semble que vous utilisez gcc? Peut-être que cela vaut la peine d'essayer un autre compilateur, à savoir clang. Celui-ci me dit:

test-pow.c:15:18: warning: implicitly declaring C library function 'pow' with type 'double (double, double)' [-pedantic] 
test-pow.c:15:18: note: please include the header <math.h> or explicitly provide a declaration for 'pow' 
Questions connexes