Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 带和不带“静态”的速度_C - Fatal编程技术网

C 带和不带“静态”的速度

C 带和不带“静态”的速度,c,C,我知道“静态”是关于作用域的,但我有一个问题:哪个函数/变量的访问速度更快:是否是“静态”的? 哪种代码更快: #include <stdio.h> int main(){ int count; for (count=0;count<1000;++count) printf("%d\n",count); return 0; } 或 在我的代码中,我处理的是非常大的带有无符号long-long的数字,我每秒访问并增加它们大约4.000.000次。

我知道“静态”是关于作用域的,但我有一个问题:哪个函数/变量的访问速度更快:是否是“静态”的? 哪种代码更快:

#include <stdio.h>

int main(){
   int count;
   for (count=0;count<1000;++count)
      printf("%d\n",count);
   return 0;
}


在我的代码中,我处理的是非常大的带有无符号long-long的数字,我每秒访问并增加它们大约4.000.000次。这段代码不是我正在编写的代码,它只是一个示例。

为了表示善意,我编写了一个程序,我们可以对其进行推理

包括 包括 int 主要的 { 静态常数uint64_t a=1664525UL; 静态常数uint64_t c=1013904223UL;
静态const uint64\u t m=1UL与所有性能问题一样,答案取决于。使用探查器并找出答案!由于您的printf,两个版本都有未定义的行为,因此任何性能讨论都是无关的。您可能认为我在这里是轻率的,但我不是。讨论性能绝对没有任何意义e断章取义。除了Almo和David Heffernan所说的,我只能完全支持。永远不要在你想要分析的代码中包含print语句。即使你修复了printfs,与printf调用的苛刻成本相比,计数记账的开销将是完全可以忽略的。@Almo所说的,另外:在Almo中现在,在所有的代码中,缓存效应完全控制着整体性能,而编译器的优化器很可能会在幕后重写代码。如果你的代码执行的心理模型还不太关心这两个问题,我就冒险说你认为你知道的关于pe的一切r性能是错误的。@ForceBru这就是问题所在。关于这段代码的建议是毫无意义的,因为您不会告诉我们真正的代码是什么,所以我们不能就此提供建议。
#include <stdio.h>

int main(){
   static int count;
   for (count=0;count<1000;++count)
      printf("%d\n",count);
   return 0;
}