国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > 文件嵌入指令 以获得更好的体验。

# C 语言的预处理文件嵌入指令 #embed

文件嵌入指令(#embed)使用被包含的文件数据替换自身。格式为:

#embed "/path/to/file" 参数列表
  • 相对路径的起点为当前文件所在目录

  • 参数列表可省略

文件嵌入指令 #embed 是 C23 标准的新特性。

例如:

const uint8_t image_data[] =
{
#embed "image.png"
};

经过预处理后得到:

const uint8_t image_data[] =
{
    137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,4,56,
    // 省略 ...
};

# 参数

参数 标准 说明 示例
limit(n)__limit__(n) C23 仅嵌入前 n 个字节的数据 #embed "image.png" limit(10)
suffix(data)__suffix__(data) C23 在嵌入的数据之后添加 data #embed "image.png" suffix('A', 'B', 'C')
prefix(data)__prefix__(data) C23 在嵌入的数据之前添加 data #embed "image.png" prefix('A', 'B', 'C')
if_empty(data)__if_empty__(data) C23 如果文件为空,则用 data 替换 #embed "image.png" if_empty('e', 'm', 'p', 't', 'y', '\0')

# 推荐阅读

# 参考标准

  • C23 standard (ISO/IEC 9899:2024):

    • 6.10.2 Binary resource inclusion (p: 170-177)

本文 更新于: 2025-11-27 09:38:06 创建于: 2025-11-27 09:38:06