Programming Tips - C/C++: Easily include a binary file in my code

Date: 2016jan2 Update: 2026sep28 Language: C/C++ OS: Linux Q. C/C++: Easily include a binary file in my code A. Use the xxd command with --include option:
xxd --include example.data
When file example.data contains "example\n" you get:
unsigned char example_data[] = { 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a }; unsigned int example_data_len = 8;
So, you can do:
xxd --include example.data > example.inc
Perhaps in a Makefile Full Example Use. Makefile:
# When example.data changes recreate example.inc example.inc: example.data xxd --include example.data > example.inc # Rebuild tst.o when example.inc or tst.cpp changes tst.o: example.inc tst.cpp $(CC) $(CFLAGS) -c $*.cpp # The goal of the Makefile is create executable tst all: tst
tst.cpp:
#include <stdio.h> #include "example.inc" int main() { for (int i = 0; i < example_data_len; i++) { printf("example_data[%02d]=0x%02x\n", i, example_data[i]); } }
Output:
example_data[00]=0x65 example_data[01]=0x78 example_data[02]=0x61 example_data[03]=0x6d example_data[04]=0x70 example_data[05]=0x6c example_data[06]=0x65 example_data[07]=0x5c example_data[08]=0x6e example_data[09]=0x0a