[英]how to clean the implicit declaration of function in C?
我對函數聲明有疑問:
我在BC中聲明了一個函數
//b.c
void getNumber();
//common header
common.h
在ac中,我這樣使用它:// ac
#include "common.h"
void getInfo()
{
getNumber();
}
但是它抱怨getNumber是函數的隱式聲明,這是什么原因?
common.h
添加到common.h
void getNumber();
bc文件應以這種方式包含函數定義
void getNumber() {
....
}
您需要先聲明或定義函數,然后再使用它。
如果您的聲明void getNumber();
如果在第一次使用編譯器( void getInfo()
)后被讀取,則會收到警告warning: implicit declaration of function 'getNumber'
。 發生這種情況的原因是,編譯器在void getInfo()
首次遇到getNumber
時必須猜測其返回類型-因此出現警告。 我認為這是您正在執行的操作,即使您的示例代碼沒有那樣顯示。
如果您的void getNumber();
首先由編譯器讀取,不會發生警告。
最好將函數聲明放在頭文件中。 確保在getInfo()
之前先include "common.h"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.