执行func并在多线程中重新输入。 如何将局部变量,a和len更改为静态局部变量? 每次输入时,func都会执行strlen。 Strlen足以在这个逻辑中执行一次。 我知道局部变量在相关帖子中更快。
void func() {
char *a = "asddf......":
int len = strlen(a);
}
答案 0 :(得分:4)
你对方式过分担心细节问题。
例如,MSVC 2017编译器会转换此
#include <string.h>
int main() {
char *a = "asddf......";
auto len = strlen(a);
return (int) len;
}
到
00007FF60D331000 mov eax,0Bh
00007FF60D331005 ret
因此,字符串文字的strlen
是编译时常量,即使首先分配给指针也是如此。