假设下面有非POD struct,对齐是否生效?如果没有,会发生什么?
struct S1
{
string s;
int32_t i;
double d;
} __attribute__ ((aligned (64)));
编辑:下面示例代码的输出是 64 甚至 s 设置为一个长字符串。
int main(int argc,char *argv[])
{
S1 s1;
s1.s = "123451111111111111111111111111111111111111111111111111111111111111111111111111";
s1.i = 100;
s1.d = 20.123;
printf("%ld\n", sizeof(s1));
return 1;
}