这在C语言中是否合法?
struct Doubles
{
double a,b,c;
};
void foo(struct Doubles* bar)
{
double* baz = (double*)bar;
baz[0]++;
baz[1]++;
baz[2]++;
}
我知道它在MSVC 2010上“可行”,但我不确定它是否合法,或者不同的布局是否会导致未定义行为。
bar->a
、bar->b
和bar->c
更好吗? - R Sahu