C++11标准中的alignas

本文探讨了C++11中的alignas特性,指出其参数要求为2的幂,最小可为0,非法参数会导致错误。当alignas参数大于结构体自身对齐值时,不会像C语言那样取结构体对齐值,而是按指定值对齐。通过实例展示了alignas的使用和影响。
摘要由CSDN通过智能技术生成

上篇文章中留下了两个问题,这里终于有了答案。

C++11标准中,对alignas的说明在这里,中文版在这里

在文档中,并没有提到像网上其他资料说的那样,alignas的参数只能是8,16,32,64,128等,且最小是8。

经过上机测试,alignas的参数必须是 2 的幂,也就是说,最小可以是0。写入不是 2 的幂参数会报错。写入参数合法但是小于结构体自身对齐值时,alignas设置无效

另外可见,当alignas的参数大于结构体自身对齐值时,并不会像C语言那样取结构体自身对齐值作为有效对齐值。

#include <iostream>
usi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值