簡體   English   中英

C90編譯器抱怨沒有原型功能警告

[英]C90 compiler complaining with a No prototype function warning

我在文件hello()聲明了一個函數hello()

hello()函數在文件source.c中定義

在main.c文件中調用hello()函數

include.h包含以下代碼

    /*
     * includes.h
     *
     *  Created on: Jul 26, 2018
     *      Author: salim
     */
    #ifndef T_HEADER_H_
    #define T_HEADER_H_

    #include <stdio.h>
    int hello();


    #endif /* T_HEADER_H_ */

source.c包含以下代碼

    /*
     * source.c
     *
     *  Created on: Jul 26, 2018
     *      Author: salim
     */
    #include <stdio.h>
    #include "includes.h"
    int hello()
    {
       printf("Hello, World!");
       return 0;
    }

main.c包含以下代碼

    /*
     * main.c
     *
     *  Created on: Jul 26, 2018
     *      Author: salim
     */
    #include <stdio.h>
    #include "includes.h"
    int main()
    {
       hello();
       return 0;
    }

編譯通過,但是編譯器生成一條信息消息,提示main.c(11) : C0200 (I) No prototype function

我缺少什么來擺脫信息/警告消息? 我知道解決方法可能是顯示警告/信息消息,但我不想走那條路線。

在調用時,它正式是“無原型功能”。 int hello()不是原型。 它是“非原型”類型的函數聲明。 這是K&R風格的聲明。

該函數的原型聲明看起來像

int hello(void);

這是否是編譯器試圖告訴您的(還是存在其他問題)則是另一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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