在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本身 .