有没有办法使用__declspec(align)来声明具有不同类型的对象

时间:2017-05-01 21:49:28

标签: c++ visual-studio declspec

有没有办法使用__declspec(align)在Visual Studio中声明很多对象?就像:

__declspec(align)
{
int p1;
long p2
}

我的问题类似于__declspec(align) for multiple declarations。但是这个问题适用于具有相同类型的对象。

1 个答案:

答案 0 :(得分:1)

不,您不能将单个__declspec(align)应用于此类无关的声明块。每个声明者声明都需要自己的__declspec

  

语法

__declspec( align( # ) ) declarator  

您可能正在寻找#pragma pack

  

语法

#pragma pack( [ show ] | [ push | pop ] [, identifier ] , n  )  

例如:

#pragma pack(push, 4)
int p1;
long p2
#pragma pack(pop)

#pragma pack(push, 16)
float rF[4];
float gF[4];
float bF[4];
#pragma pack(pop)

/*
Alternatively:

#pragma pack(push, 16)
typedef float floatArray4[4];
#pragma pack(pop)

floatArray4 rF;
floatArray4 gF;
floatArray4 bF;
*/