在Linux(gcc)中,我可以通过
对齐结构#ifndef WIN32
#define ALIGN(size) __attribute__((aligned(size)))
#else
#define ALIGN(size) __declspec(align(size))
#endif
struct Test {
float buffer[12];
};
Test ALIGN(16) test;
指针对齐可以定义为
#ifndef WIN32
#define ALIGN_PTR(size) __attribute__((align_value(size)))
#endif
Test * ALIGN_PTR(16) pTest;
问题:
Windows VC ++编译器中等效的__attribute__((align_value(size)))
是什么?
这个问题应与#pragma pack的另一个解决方案无关,因为我认为关键点是如何在MSVC中对齐与Linux等效的内存地址,但不要对齐struct size本身。