C90 - C99:注册结构

时间:2010-06-24 13:53:05

标签: c c99 standards c89

是“注册结构”合法吗?在Gcc标准和(与标准分开)方面?

3 个答案:

答案 0 :(得分:3)

是。 (没有引用,根本就没有禁止。有一个注释假设使用带数组的寄存器是有效的,并且数组在C语言结构中是更多的二等公民)。

答案 1 :(得分:3)

是的,它是合法的,但是由于寄存器只是编译器对它可能尝试的一个提示,所以实际上没有实现必须听它。制作一个无法存储在寄存器中分配的空间内的结构也很容易。

一旦你开始如此接近机器相关问题,他们在标准中的作用往往仅仅是建议,因为硬件变化使得在所有架构中在这个级别上不可能完全相同的事情。

答案 2 :(得分:2)

是的,它是有效的。

register作为关键字并不意味着变量将保存在寄存器中。 (C基本上没有这个概念)。它只是意味着不接受此变量的地址