有没有办法使用 __declspec(align) 来声明不同类型的对象
Is there a way to use __declspec(align) for for declaring of objects with different type
有没有办法使用 __declspec(align) 在 Visual studio 中声明大量对象?诸如此类:
__declspec(align)
{
int p1;
long p2
}
我的问题类似于__declspec(align) for multiple declarations。但是这个问题是针对相同类型的对象。
不,您不能将单个 __declspec(align)
应用于像这样的不相关声明块。每个单独的声明符语句都需要自己的 __declspec
:
Syntax
__declspec( align( # ) ) declarator
您可能正在寻找 #pragma pack
:
Syntax
#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;
*/
有没有办法使用 __declspec(align) 在 Visual studio 中声明大量对象?诸如此类:
__declspec(align)
{
int p1;
long p2
}
我的问题类似于__declspec(align) for multiple declarations。但是这个问题是针对相同类型的对象。
不,您不能将单个 __declspec(align)
应用于像这样的不相关声明块。每个单独的声明符语句都需要自己的 __declspec
:
Syntax
__declspec( align( # ) ) declarator
您可能正在寻找 #pragma pack
:
Syntax
#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;
*/