在编译时从文件填充数组

Mob*_*erg 8 c++ arrays

我正在为一个裸机环境编译一个程序,我希望有一个数组填充我存储在文件中的数据.有没有办法在编译期间执行此操作?

原因:将数据复制粘贴到源代码似乎很难看.

pax*_*blo 6

构建过程的一部分可以是运行一个程序,该程序将文件作为输入并生成一个C++源文件,将其定义为一个数组,如:

char arrayFromFile[] = {
    0x01, 0x02, 0x99, ...  and so on
};
Run Code Online (Sandbox Code Playgroud)

程序本身可能是源代码的一部分.

然后在构建周期的后期编译该程序.例如,您可能具有以下makefile细分:

generate: generate.cpp
    g++ -o generate generate.cpp    # build data generator

data.cpp: data.dat
    generate data.dat >data.cpp     # create c file with data

prog: prog.cpp data.cpp
    g++ -o prog prog.cpp data.cpp   # create program from source and data
Run Code Online (Sandbox Code Playgroud)