__declspec(align)用于多个声明

Rot*_*tem 3 c++ syntax visual-studio-2010 memory-alignment declspec

很抱歉这个非常简单的问题,找不到谷歌回答.

这是声明语法:

__declspec(align(16)) float rF[4];
__declspec(align(16)) float gF[4];
__declspec(align(16)) float bF[4];
Run Code Online (Sandbox Code Playgroud)

相当于:

__declspec(align(16)) float rF[4], gF[4], bF[4];
Run Code Online (Sandbox Code Playgroud)

或者只有第一个变量在后一种语法中对齐?

如果重要,那么这些是全局方法中的局部变量.

Jam*_*lis 5

是.A __declspec是存储类的一部分,适用于声明中的所有声明符.

  • [`__declspec`]的文档(http://msdn.microsoft.com/en-us/library/dabb5z75.aspx)以"用于指定存储类信息的扩展属性语法使用`__declspec`关键字开头. "和存储类是声明的属性,而不是单个声明符的属性(就像`static`适用于整个声明,而不是单独的声明符).我的快速测试验证了给定`__declspec(align(64))int a,b,c,d,e;`,所有五个整数都在64字节边界上对齐. (2认同)