簡體   English   中英

如何在C中清除函數的隱式聲明?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM