C++ 高级特性:从编译优化到模块化编程
1. 编译优化:constexpr 与 const 的力量
1.1 constexpr 函数的优化
constexpr 函数隐式内联,无需显式使用 inline 关键字。例如下面的代码:
constexpr bool has_merchant(const Merchant &selected);
查看其汇编代码,会发现搜索操作被优化掉了,编译器直接返回预计算的结果。如在 https://godbolt.org/z/v3hj3E 上看到的汇编代码:
main:
mov eax, 1
ret
1.2 使用 const 辅助编译优化
即使不使用 inline 或 constexpr 关键字,编译器也能进行不错的优化。将变量和函数标记为 const 有助于编译器实现性能优化,同时避免代码出错。许多语言默认使用不可变变量,可减少错误、使代码更易理解,并提升多线程性能。在 C++ 中,虽然变量默认是可变的,但建议显式使用 const ,避免意外修改不应修改的变量。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



