#include<stdio.h>
struct mystruct
{
char cc;
float abc;
};
union sample
{
int a;
float b;
char c;
double d;
struct mystruct s1;
};
int main()
{
union sample u1;
int k;
u1.s1.abc=5.5;
u1.s1.cc='a';
printf("\n%c %f\n",u1.s1.cc,u1.s1.abc);
k=sizeof(union sample);
printf("%d\n\n",k);
return 0;
}
運營商的規模正在恢復8
我仍然能夠訪問結構元素,一個多的時間和仍然sizeof
運營商正在返回的最大尺寸我假設的原始數據類型。這是爲什麼?實際分配的大小是8
?和sizeof
返回一個錯誤的值?或者實際分配的大小是8
?那麼這個結構怎麼樣?如果我們使用malloc
和sizeof
分配一組工會,它會在這種情況下分配足夠的空間嗎?請詳細說明。解釋sizeof操作符的結果爲工會含結構
'sizeof(double)== 8'不要忘了結構對齊/填充。 – Mysticial 2012-07-25 04:45:20
結構需要'9'的大小嗎? – sasidhar 2012-07-25 04:47:35
@sasidhar,對您的程序進行一次修改:http://ideone.com/2HhTn – chris 2012-07-25 04:48:17