gpt4 book ai didi

c - C 中的临时变量

转载 作者:行者123 更新时间:2023-12-01 13:59:24 26 4
gpt4 key购买 nike

我正在使用 Microchip 的 XC32 编译器,它不允许在循环内声明变量(不支持 C99),所以我不能这样做:

for(int i = 0;i<10;i++)
{do w/e}

我不想让它成为一个全局的,因为很难跟踪它在大项目中的值(value),在各种循环中使用相同的东西,即使你将它初始化为 i = 0 在每个循环中。我什至对此有一个错误,如果你有几个使用相同 i 的嵌套循环,它会做一些奇怪的事情。

据我所知,我不能手动“取消声明”它,但是代码块内定义的变量在通过代码块后未声明?这是真的吗,这是否意味着此代码将像上面的代码一样工作:

{
int i;
for(i = 0;i<10;i++)
{do w/e}
}//no i anymore?

最佳答案

根据 C99 标准,在 for 循环的 clause 语句中声明的变量范围仅限于该循环。

在 C89/C90 中,子句 只是一个可选的表达式

因此,在 C89/C90 中,您可以自信地模拟 C99 的行为

{ /*open scope block*/
/* your declaration here, including possible definition*/
for (expression; ...){
}
} /*close scope block*/

关于c - C 中的临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com