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