C 语言将 二进制文件导入到数据并编译

参考链接
https://github.com/graphitemaster/incbin

#include <stdio.h>

// 定义数据段的起始和结束符号
__asm__ (
    ".section .binaryfile,\"a\"\n"		/* 定义数据段 */
    ".global __binaryfile_start\n"		/* 定义段的起始符号 */
    ".global __binaryfile_end\n"		/* 定义段的结束符号 */
    "__binaryfile_start:\n"				/* 段的起始位置标记 */
    ".incbin \"binaryfile.bin\"\n"		/* 导入二进制数据 */
    "__binaryfile_end:\n"				/* 段的结束位置标记 */
    ".previous\n"						/* 切换为 __asm__ 之前的段,保证后续数据不会被错误添加 */
);

// 声明外部符号
extern unsigned char __binaryfile_start;
extern unsigned char __binaryfile_end;

int main() {
    unsigned char *binaryfile_start = &__binaryfile_start;
    unsigned char *binaryfile_end = &__binaryfile_end;
    size_t binaryfile_len = binaryfile_end - binaryfile_start;

    printf("Binary file length: %zu bytes\n", binaryfile_len);

    // 访问嵌入的二进制数据
    for (size_t i = 0; i < binaryfile_len; i++) {
        printf("%02x ", binaryfile_start[i]);
    }
    printf("\n");

    return 0;
}
posted @   infinite_ryvius  阅读(126)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示