學習如何解決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>

將解決問題。