printf和字符串存储优化

时间:2016-05-06 15:07:48

标签: c gcc printf

我在闪存有限的平台上工作,最近我碰到了墙,试图减少ReadOnly区域。 printf中使用的字符串似乎是一个很好的起点。在这样做时,我遇到了以下代码片段。我碰巧发现以下重复使用“失败”的多个打印(查看可执行文件)。即使使用相同的字符串部分,普通printf也不会执行此优化。 GCC(GCC 4.8.4)中是否有任何优化选项可以减少调试字符串的存储空间?

#define printf_failed(str) printf("%s failed", str); // reuses failed

1 个答案:

答案 0 :(得分:1)

您可以在gcc中使用选项-fmerge-constants。此选项是-O-O2-O3-Os启用的选项。