【发布时间】:2014-01-10 07:09:14
【问题描述】:
我的问题是,如果我在循环外声明一个变量并在循环内每次都重新初始化,还是在循环内声明和初始化,这有关系吗?那么这两种语法(性能、标准等)基本上有什么区别吗?
方法一
int a,count=0;
while(count<10)
a=0;
方法二
int count=0;
while(count<10)
int a=0;
请假设这只是一个更大程序的一部分,并且内部循环要求变量a 每次都具有0 的值。那么,这两种方法的执行时间会有什么不同吗?
【问题讨论】:
-
在第二种情况下,您的变量
a在循环外将不可用。 -
不,根本不会有性能差异。
-
可能存在性能差异,但除非您的循环运行数十亿次并且编译器很可能无论如何都会对其进行优化,否则它不会出现。不要担心小的性能问题。下面提到的范围问题要重要得多。
-
我认为方法2只适用于
C++,不适用于C。 -
@SAM;如果您在
while主体周围放置大括号,则可以在 C 中使用。
标签: c while-loop scope declaration