解决堆栈对齐问题的char数组

Let*_*_Be 3 c c++

请参阅:放置新问题

简单的问题,这会解决对齐问题吗?

union
{
    char real_array[sizeof(T)*size];
    T    fake_array[size];
};
Run Code Online (Sandbox Code Playgroud)

AnT*_*AnT 6

是的,那应该解决对齐问题.虽然没有必要制作fake_array阵列.只有一个类型的成员T就足够了.

这实际上是一种相当广泛使用的技巧,用于强制某些阵列上的特定对齐.

作为一个迂腐的旁注:匿名联合只存在于C++中,但不存在于C中.