大家熟知 #include 用於引入頭文件,但鮮有人知它還可以在編譯期「嵌入任意文件內容」到源碼中。本文演示如何將文本文件轉為十六進制數組並通過 #include 直接編譯進程序。
hello.txt,內容 Hello world!!。hello.hex,格式如:0x48, 0x65, 0x6C, ...。char hex[] = {
#include "hello.hex"
};
預處理器會將 hello.hex 的內容原樣展開到大括號中,等效於:
char hex[] = {
0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21, 0x21, 0x0D, 0x0A
};
#include 在預處理階段將指定文件內容原文插入當前位置,本質是文本替換。#include 不僅是模塊化編程的工具,更是編譯期元編程的強大手段。善用它可以實現「數據即代碼」,簡化資源管理流程。