Tag: 匿名

C全局匿名结构/联合

我有一个uint64变量,通常只需要高或低32位访问。 我使用的是32位ARM Cortex M0,为了提高速度,我试图将uint64变量与C中的两个uint32变量重叠,使用匿名结构,希望避免指针算法访问成员。 我正在尝试做什么? 可能是使用命名联合同样快,但现在我只是感兴趣,如果它可以没有。 以下内容无法成功编译: http://goo.gl/ejx37y #include volatile union { uint64_t ab; struct { uint32_t a, b; }; }; int main(void) { a = 1; };

如何使用嵌套在没有名称的struct中的c union

我正在研究所谓的Hotspot开源项目,看看实现我在struct中找到了一个令人讨厌的嵌套联合: typedef struct RC_model_t_st { union { struct block_model_t_st *block; struct grid_model_t_st *grid; }; /* block model or grid model */ int type; thermal_config_t *config; }RC_model_t; 据我所知,在C / C ++中,联合是不可接受的。 那么有人如何利用以这种方式和目的宣布的工会呢? 谢谢!

在C1X中初始化匿名结构或联合

我有以下问题:根据当前的C1X草案,匿名结构(或联合)如何正确初始化? 这是合法的: struct foo { int a; struct { int i; int j; }; int b; }; struct foo f = { 1, 2, 3, 4 }; struct foo g = { 1, { 2 }, 3 }; 在GCC中, gj == 0和gb == 3 ,而在tcc gj == 3和gb == 0 。 目前的草案说: “[…]结构和联合类型的对象的未命名成员不参与初始化。结构对象的未命名成员即使在初始化之后也具有不确定的值。” 这真的可以吗? 是不是 […]