静态本地与本地.哪一个在C或C 中更快

  • 本文关键字:哪一个 静态 c++ c
  • 更新时间 :
  • 英文 :


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是一个编译时间常数,即使首先分配给指针。