gpt4 book ai didi

c - 不确定 int regs = 0, i, *regs 是什么意思

转载 作者:行者123 更新时间:2023-11-30 18:59:26 25 4
gpt4 key购买 nike

我正在维护和扩展诊断测试套件的功能,这段代码多次出现,但我不确定它的作用:

int ret = 0, i, *reg;
int size = sizeof(Regs)/sizof(Reg);
for(i = 0; i<size; i++) {
reg= (uint*)Regs[i].Number;
*reg=0;
}
return ret;

其中 i 是循环变量,reg 是指向 32 位 int 的指针(Number 是该 32 位 int 的地址)。这个特定的测试会清除寄存器,但它是否意味着更改 ret?

编辑:我想我的问题有点含糊,我想知 Prop 体是什么片段:

int ret = 0, i, *regs;

是否有效,或者为什么它有效。

最佳答案

int ret = 0, i, *reg;

定义了三个变量:一个名为 retint、一个名为 iint 和一个 int * 称为 reg。仅初始化ret(为0)。

原因是声明的语法(稍微简化)是:

declaration: 
declaration-specifiers init-declarator-list[_opt_]
init-declarator-list:
init-declarator
init-declarator-list , init-declarator
init-declarator:
declarator
declarator = initializer

这里的声明说明符只是int,然后我们有一个由三个初始化声明符组成的初始化声明符列表。其中一个有初始化器,另外两个没有。声明符*reg定义了一个“指向任何类型声明说明符的指针”。请参阅标准中的第 6.7 节“声明”以了解详细信息(以及我在上面的语法中遗漏的部分)。

关于c - 不确定 int regs = 0, i, *regs 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419970/

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