// ICI RESOLU: https://askubuntu.com/questions/962252/coding-with-c-warning-incompatible-implicit-declaration-of-built-in-functioncodage avec c: avertissement: déclaration implicite de la fonction intégrée « EXP10 »
Je ne comprends pas comment compiler cela.
J'ai mis na pas toutes les fonctions que j'ai fait dans cette bibliothèque parce que tous fonctionnent correctement, et il est la première fois que je dois utiliser math.h
Jusqu'à présent, j'ai compilé comme cela sans problèmes:
gcc -c -g f.c
gcc -c -g main.c
gcc -o main main.o f.o
J'ai essayé d'insérer -lm
mais je ne comprends pas comment et où il doit être roulés.
// tête
#include<math.h>
#define MAX 5
typedef enum {FALSE, TRUE} bool;
typedef enum {ERROR=-1, OK=1} status;
status parse_int(char s[], int *val);
// Fonction
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include"f.h"
status parse_int(char s[], int *val) {
int l, val_convertito = 0, val_momentaneo = 0;
for(l = 0; s[l] != '\0'; l++);
for(int i = 0; s[i] != '\0'; i++) {
if(s[i] >= '0' && s[i] <= '9') {
val_momentaneo = ((int) (s[i]-48)) * ((int)exp10((double)l--));
val_convertito += val_momentaneo;
*val = val_convertito;
} else return ERROR;
}
return OK;
}
// principale
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include"f.h"
int main() {
int val_con, *val, ls;
char s_int[ls];
printf("Inserisci la lunghezza della stringa: ");
scanf("%d", &ls);
printf("\n");
printf("Inserisci l'intero da convertire: \n");
scanf("%s", s_int);
val = &val_con;
status F8 = parse_int(s_int, val);
switch(F8) {
case OK: printf("Valore convertito %d\n", val_con);
break;
case ERROR: printf("E' presente un carattere non numerico.\n");
break;
}
}
Essayez d'ajouter '-lm' à votre commande 'gcc' –
@EugeneSh. Je l'ai fait mais je ne comprends pas où ti le mettre –
' gcc -o principal -lm main.o fo' –