2016-11-10 49 views
-5

我在學習#include命令。我想編寫一個打印某些數據(某些海域的平方英里)的程序,所以我創建了一個頭文件sea.h,在這個頭文件中我定義了一些日期(使用#define)。我必須在哪裏保存一個新的頭文件?

然後我想包含這個最後一個文件在一個新的文件sea.c,但我有一些問題。 我的程序sea.c開始如下

#include <stdio.h> 
#include <sea.h> 

int main(void) 
{stuff} 

當我編譯,我得到幾個錯誤,所有與第一種:旁邊

#include<sea.h> 

上寫着:

!sea.h: no such file or directory. 

我該如何解決這個問題?

+0

不要發佈圖片的文字,其中的鏈接或外部鏈接一般不提供問題**本身**中的所有相關部分。 – Olaf

+0

對不起,我不知道,這是不是有壞意圖 – Joe

+0

我編輯,請停止downvote,我是新來的這個論壇。 – Joe

回答

1

通過將標題從<sea.h> 更改爲"sea.h"可以輕鬆解決該錯誤。這是一個完整的工作示例。

創建文件sea.c

#include <stdio.h> 
#include "sea.h" 

int main(void) 
{ 
    printf("%s", sea()); 
    return 0; 
} 

然後,在相同的位置sea.c創建sea.h,像這樣的東西,sea.h

char* sea(void) 
{ 
    return ("hello, I'm sea() from \"sea.h\""); 
} 

完成。然後,編譯因爲你之前,你不應該得到任何錯誤,至少像一個有,因爲我們改變了<sea.h>"sea.h",並構建應出示您的可執行文件,它應該輸出:

你好,我是來自「sea.h」的sea()

+0

嗯;將函數體放入頭文件並不是一個好主意,所以你的例子不好。你也沒有解釋'#include '和'#include「sea.h」'的區別。並且有辦法可以使'#include '正常工作。 –

+0

感謝@JonathanLeffler,請在答案中提供一個很好的示例,並展示使#include '正常工作的方法。謝謝。 – davedwards

+0

有關區別以及如何使'#include '工作,請參閱x-ref'd問題:[#include '和'#include「filename」'?](http:/ /stackoverflow.com/questions/21593/)。我不打算重複這一點。對於頭文件,'sea.h'應該包含'extern char * sea(void);'('extern'是可選的,但我更喜歡它,也可能是頭文件守護程序,雖然在本例中它們並不重要) ;一個'sea.c'文件應該包含該函數的實現;而另一個'program.c'文件應該包含當前在'sea.c'中的代碼。 –