2014-09-24 95 views
1

我有一個很大的靜態常量字節數組,我將難以定義。這最終會產生大約500行文本類型的代碼,這在文件正常流程的其餘部分中有點不利。另外,文件的字節內容可能由腳本類型解析器生成。在另一個源文件中包含源文件

static const uint8_t largeArray[0x4000] 
{ 
    // About 500 lines of content here. 
} 

在這種情況下,是可以接受的風格簡單地創建另一個.c文件,然後簡單地將其包含在我原來的源文件,以使500線變成一個?一般來說,我鄙視在另一個.c中包含.c,但我不確定這種情況下建議的做法是什麼。

static const uint8_t largeArray[0x4000] 
{ 
    #include "ArrayContents.c" // One line, but not nice file structure. 
} 
+0

這個c文件中的源代碼構造是否可以從任何其他文件中調用?或者這個文件僅僅是爲了包含目的? – 2014-09-24 03:21:03

+0

如果您包含該文件,爲什麼要給它.c擴展名而不是.h? – Slava 2014-09-24 03:25:44

回答

2

這是可以接受的,並且通常發生在那裏被一些其他的過程中產生的大陣,但通常你想給文件不同的後綴,像.hc而不是.c讓人們都不會混亂它既不是頭文件也不是它自己的源文件。

另一種方法是將文件的內容放在不同的.c文件中,

const uint8_t largeArray[0x4000] 
{ 
    // About 500 lines of content here. 
} 

然後在你使用它的文件中聲明它是一個extern,例如:

extern const uint8_t largeArray[0x4000]; 
+0

我想我實際上喜歡extern的想法,我只需要記住有一個.h生成的只是數組大小的#define ...謝謝! – SeaNick 2014-09-24 03:38:47

相關問題