使用了聚合值我有以下工會 union data {
uint64_t val;
struct{
....
}
};
,我有一個功能 func(union data mydata[])
{
printf("%llu",(uint64_t)mydata[0]); // Here is the error
}
當我編譯這段代碼是給下面的錯誤
聯合可以包含用戶定義構造函數的類的對象嗎?當我嘗試創建一個它給出了一個錯誤,說'聯盟'c'的成員'c :: aa'有用戶定義的構造函數或非平凡的默認構造函數「 它是一個標準還是在我的代碼中有任何錯誤? 我測試的代碼是 class a
{
public:
int aaa;
a(){}
};
class b
{
public :
long bbb;
當變量與聯合關聯時,編譯器通過考慮最大內存的大小來分配內存。所以,工會的規模等於最大成員的規模。所以它意味着更改任何成員的值將會改變其他成員值。 但是當我執行以下代碼, output: 4 5 7.000000
union job
{
int a;
struct data
{
double b;
int x
}q;
} w;