學習如何解決C語言中的隱式聲明庫函數警告
在編譯C語言程序時,你可能會發現編譯器給出了類似以下的警告:
hello.c:6:3: warning: implicitly declaring library function
'printf' with type 'int (const char \*, ...)'
[-Wimplicit-function-declaration]
printf("Name length: %u", length);
^
或者
hello.c:5:16: warning: implicitly declaring library function
'strlen' with type 'unsigned long (const char \*)'
[-Wimplicit-function-declaration]
int length = strlen(name);
^
這個問題是因為你在使用標準庫的函數之前沒有包含相應的頭文件。
編譯器還會給你一個建議,如下所示:
hello.c:5:16: note: include the header <string.h> or
explicitly provide a declaration for 'strlen'
該建議指出了正確的方向。
在這種情況下,在C文件的頂部添加
#include <stdio.h>
將解決問題。