4 c
我正在经历几个C aptitude问题.这个看起来很棘手,任何人都可以解释一下吗?
struct {
int foo : 4;
} baz;
int *example()
{
return &baz.foo;
}
Run Code Online (Sandbox Code Playgroud)
这是无效的代码,但我无法弄清楚原因.
int foo : 4;
Run Code Online (Sandbox Code Playgroud)
声明foo为位字段.一个人不能取位字段的地址.
第6.5.3.2节开始:
一元运算
&符的操作数应该是函数指示符,[]一元或一元运算*符的结果,或者是一个左值,它指定一个不是位字段的对象,并且不用寄存器存储类说明符声明.
因此,将地址运算符应用于位字段是违反约束的.(它甚至没有多大意义,因为位字段不需要从字节边界开始.)
| 归档时间: |
|
| 查看次数: |
2674 次 |
| 最近记录: |