【发布时间】:2012-05-27 10:24:37
【问题描述】:
GCC disables lots of builtins 在严格模式下运行时-std=c...。
在严格的 ISO C 模式(-ansi、-std=c90、-std=c99 或 -std=c11)之外, 函数 _exit, alloca, bcmp, bzero ... stpcpy, ... 可以被处理为 内置函数。所有这些功能都有对应的版本 以 _builtin 为前缀,即使在严格的 C90 模式下也可以使用。
有什么理由吗?内置函数不符合吗?或者这是因为标准说当你调用memcpy 时它实际上应该调用它并且我无法优化?
我觉得如果我使用 -std=gnu* 重新编译我的代码肯定会运行得更快,因为它会启用更多 optimizations
GCC 通常会生成特殊代码来处理某些内置的 更有效地发挥作用;例如,对 alloca 的调用可能变成 直接调整堆栈的单个指令,并调用 memcpy 可能会变成内联复制循环
【问题讨论】:
标签: optimization gcc