ISO/IEC 9899:2011 条款6.7.5——对齐说明符
2015-11-08 02:08
267 查看
6.7.5 对齐说明符
语法
1、alignment-specifier:
_Alignas ( type-name )
_Alignas ( constant-expression )
约束
2、一个对齐属性不应该在一个typedef,或一个位于,或一个函数,或一个形参,或一个具有register存储类说明符的对象的声明中指定。
3、常量表达式应该是一个整数常量表达式。它应该对一个有效的基础对齐,或者对一个有效的扩展对齐,或是对零进行计算。该有效扩展对齐由该常量表达式所出现的上下文中,通过实现支持。
4、在一个声明中所有对齐属性的绑定效果不应该指定一个对齐,该对齐比起正在声明的对象或成员的类型所需的对齐要求,更不严格。
语义
5、第一种形式等价于 _Alignas (_Alignof ( type-name ))。
6、所声明的对象或成员的对齐要求,取出作为指定的对齐。指定为零的对齐没有效果。[注:指定为零的对齐对同一声明中的其它对齐说明也没有任何影响。]当在一个声明中发生多个对齐说明符时,有效的对齐要求是最严格的对齐要求。
7、如果一个对象的定义具有一个对齐说明符,那么那个对象的任何其它声明应该要么指定等价的对齐,要么不具有对齐说明符。如果一个对象的定义不具有一个对齐说明符,那么那个对象的任何其它声明应该不具有对齐说明符。如果一个对象在不同翻译单元中的声明具有不同的对齐说明符,那么行为是未定义的。
语法
1、alignment-specifier:
_Alignas ( type-name )
_Alignas ( constant-expression )
约束
2、一个对齐属性不应该在一个typedef,或一个位于,或一个函数,或一个形参,或一个具有register存储类说明符的对象的声明中指定。
3、常量表达式应该是一个整数常量表达式。它应该对一个有效的基础对齐,或者对一个有效的扩展对齐,或是对零进行计算。该有效扩展对齐由该常量表达式所出现的上下文中,通过实现支持。
4、在一个声明中所有对齐属性的绑定效果不应该指定一个对齐,该对齐比起正在声明的对象或成员的类型所需的对齐要求,更不严格。
语义
5、第一种形式等价于 _Alignas (_Alignof ( type-name ))。
6、所声明的对象或成员的对齐要求,取出作为指定的对齐。指定为零的对齐没有效果。[注:指定为零的对齐对同一声明中的其它对齐说明也没有任何影响。]当在一个声明中发生多个对齐说明符时,有效的对齐要求是最严格的对齐要求。
7、如果一个对象的定义具有一个对齐说明符,那么那个对象的任何其它声明应该要么指定等价的对齐,要么不具有对齐说明符。如果一个对象的定义不具有一个对齐说明符,那么那个对象的任何其它声明应该不具有对齐说明符。如果一个对象在不同翻译单元中的声明具有不同的对齐说明符,那么行为是未定义的。
相关文章推荐
- iOS 开发者能用上的 10 个 Xcode 插件
- [2096]:小明A+B
- 如果停止和启动VSS服务
- quick-cocos2d-x(一)开发环境配置
- 如何处理未使用的变量
- kmemleak_object的优化patch
- Linux源代码解析之——传输控制块诞生
- 切换Fragment,改变Toolbar menu的显示样式
- Linux逻辑地址与物理地址的key point
- 大端字节(Big endian)与小端字节(Little endian)
- X86 32位的基本寄存器
- .NET 2.0 CookieContainer bug
- DMA为什么比轮询、中断方式性能要卓越很多?
- 源代码VS业务的悟道——知行合一
- 外企巨头与互联网巨头的成功之道
- 数据库与共享内存
- Linux内核收包精髓
- 点破Redis的VM
- 图解mysql块读取代码
- 一切数据都是字节流