我在我的代码中将以下字符串声明为常量。目的是提供一种在编译输出中存储简单元数据的粗略而简单的方法。
const char myString1[] ="abc123\0";
const char myString2[] = {'a','b','c','1','2','3','\0'};
当我使用十六进制编辑器检查输出时,我看到了其他字符串常量,但没有出现“abc123”。这使我相信启用的优化会导致无法编译这些行,因为它们从未在程序中被引用。
有没有办法在代码中强制编译,或者用另一种方式(在代码中)将此元数据放入二进制文件中?我不想对二进制后编译进行任何操作,目标是使其尽可能简单。
编译器标志
-O2 -g -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -mcpu=cortex-m3 -mthumb