//解決這裏的不兼容的隱式聲明:https://askubuntu.com/questions/962252/coding-with-c-warning-incompatible-implicit-declaration-of-built-in-function內置函數「exp10」
我不知道如何編譯此。
我已經didnt把所有的我在這個庫中所做的功能,因爲它們都正常工作,這是第一次,我必須使用math.h中
到現在爲止我已經編譯這樣沒有問題:
gcc -c -g f.c
gcc -c -g main.c
gcc -o main main.o f.o
我試圖插入-lm
,但我不明白如何以及在哪裏它必須推杆。
//頭
#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);
//功能
#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;
}
//主
#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;
}
}
嘗試增加'-lm'您'gcc'命令 –
@EugeneSh。我已經完成了,但是我不明白在哪裏放它 –
'gcc -o main -lm main.o fo' –