您的位置 首页 测评

ARMCC对匿名结构和联合的支撑

一对匿名结构和联合的支持ARMCC461pragmaanon_unions,pragmano_anon_unions这些编译指示启用和禁用对匿名结构和联合的支持

一 对匿名结构和联合的支撑

ARMCC
4.6.1. #pragma anon_unions, #pragma no_anon_unions
这些编译指示启用和禁用对匿名结构和联合的支撑。

二 对齐

能够在需求进行撤销对齐的结构前用
#pargma pack(1)
以该结构后用
#pargma pack()
即可。

能够一起包含多个结构,也能够整个文件都包容进去。
gcc会主动寻觅该界说,并撤销默许的对齐办法。这种办法仍是比较好的,比在gcc参数中加选项要好,能够不影响体系的库办法 

如下:
struct
{
char a;
int b;
}aa;

用sizeof(aa)值为8,而不是5(32位环境下)。
这是不是因为GCC的对齐机制引起的?怎么disable掉

1.
struct irq_routing_options {
u16 size;
struct irq_info *table;
u16 segment;
} __attribute__((packed));

2.
#pragma pack(1)
struct … {

}…;
#pragma pack()
   

在MS-VC中的规矩,
pack(1) 表明一字节对齐。

bx_bird说到的是在Gcc中的规矩,也表明单字节对齐。

例如运用
struct my_s
{
char a;
int b;
}__attribute__((packed));
struct my_s aa;
就能够使aa变量只占用5个字节而不是8个字节。

uint8_t
__attribute((aligned (4)))

三 宏界说链接符

#define A(a) TEST_##a

#define A(b) == TEST_b
#define A(1) == TEST_1

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/317806.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部