union BYTE_CON_SN
{
BYTE m_bytSN[2];
struct
{
BYTE m_Set0 : 1;
unsigned int m_uiSN : 15;
} m_bitSN;
};
m_Set0 我想設定為0.
正常其他結構體,如:
struct stDemo
{
int m_iSet = 0; //通過這種語法來設定默認值
}
這個能實作嗎? 還是說 C++ 對這塊沒有考慮到?
我不想每次定義一個 BYTE_CON_SN變數,下面就接一句 .m_bitSN.m_Set0 = 0;
因為隨著專案的深入,可能還有其他的,甚至有幾個都需要設定的情況。
uj5u.com熱心網友回復:
c++不能在類/結構宣告時初始化位域成員,我也不知道為什么這么設計,但是可以在建構式的默認初始化串列中做:struct BYTE_CON_SN
{
union
{
BYTE m_bytSN[2];
struct
{
BYTE m_Set0 : 1;
unsigned int m_uiSN : 15;
};
};
BYTE_CON_SN(): m_uiSN(127) {};
};
uj5u.com熱心網友回復:
樓上的確實是一種解決方法。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8058.html
標籤:基礎類
上一篇:求解
