【发布时间】:2019-04-28 05:23:01
【问题描述】:
所以说我有这个:
const auto foo = "lorem ipsum"
如果我在我的代码中使用strlen(foo),11 是在运行时找到的还是在编译时注入的?
【问题讨论】:
-
你可以问godbolt.org。编辑:似乎 gcc 8.1 将执行优化:godbolt.org/g/8nrkQb
-
考虑写一个
constexpr版本,见this question。 -
大多数优秀的编译器都会对常数 11 进行优化(至少在优化器打开时),但这不是保证。
标签: c++ c-strings string-length string-literals compile-time-constant