我在闪存有限的平台上工作,最近我碰到了墙,试图减少ReadOnly区域。 printf中使用的字符串似乎是一个很好的起点。在这样做时,我遇到了以下代码片段。我碰巧发现以下重复使用“失败”的多个打印(查看可执行文件)。即使使用相同的字符串部分,普通printf也不会执行此优化。 GCC(GCC 4.8.4)中是否有任何优化选项可以减少调试字符串的存储空间?
#define printf_failed(str) printf("%s failed", str); // reuses failed
答案 0 :(得分:1)
您可以在gcc中使用选项-fmerge-constants
。此选项是-O
,-O2
,-O3
和-Os
启用的选项。