2015-09-19 22 views
1

我需要包括在我的C程序中的文件,其具有在形成一束十六進制常數:的C包含十六進制的文件常數

0x00, 0x00, 0x00, 0x00, 0x01, 
0x00, 0x18, 0x00, 0xE8, 0x01, 
0xFF, 0xF2, 0x00, 0x20, 0x01, 
0x00, 0x00, 0x00, 0xE2, 0x01, 

上述文件是從另一個編譯器(特別是西格瑪工作室輸出對於1701),並且會不時變化,所以我不想在每次更改時都手動按摩該文件。

你看到的是1701的代碼片段,我正從另一個u控制器編程1701。這個ASCII數據文件希望被包含在u控制器C程序中。

常數從第1列開始,有1024行,每行包含5個8位常量。

我試圖讓一個彙編程序與包括聲明,並得到了一個錯誤信息,告訴我的唯一的標籤欄可以開始1

理想情況下,我想開始一個定義塊,則包括文件,然後結束該塊。

任何想法,我可以做到這一點?

回答

4

假設你的文件被稱爲data,它被格式化的問題顯示的方式,你可以這樣做:

#include <stdio.h> 

char data[] = { 
#include "data" 
}; 

int main() { 
    printf("%zu\n", sizeof(data)); 
    return 0; 
} 

上述文件還包含名爲"data"花括號內的文件中的文本,在char data[]陣列中產生char的陣列。

當上面的示例與您的問題中的數據一起編譯時,它在運行時會打印20