class CStaff { // you can use struct here if you like.
public:
char m_szName[16];
char m_szId[8];
char m_cSex;
union {
unsigned int uiTypingSpeed;
bool bFinishMilitaryService;
} m_Special;
}
But I think the member variables should be put into private or protected section and add some member functions to set/get these variables. For example,
class CStaff { // you can use struct here if you like.
public:
void SetName(const char *name, size_t nameSize);
void SetId(const char *id, size_t idSize);
void SetSex(char sec);
void SetSpecial(unsigned int typingSpeed);
void SetSpecial(bool service);
const char *GetName();
const char *GetId();
char GetSex();
unsighted int GetTypingSpeed();
bool GetMilitaryServiceState();
private:
char m_szName[16];
char m_szId[8];
char m_cSec;
union {
unsigned int uiTypingSpeed;
bool bFinishMilitaryService;
} m_Special;
}
Happy Coding!
houcheng wrote:
這個是基本的 str...(恕刪)
我自己連程式都寫了
debug也做了
只是這個小問題解不出來
一題數學題有時候會有最關鍵的"key"
才能解它
我承認是我當時書沒看清楚
但我絕對不承認你的說法是對的
"別老想得到速成的答案"
你只是以你一貫的說法對網路上
那些把中文問題打出跟別人 "要程式碼"
的人
而我是遇到想了很久的問題
真的解不出來才會來問
為什麼01每次有關程式的問題都會被人說"不要怎樣、那樣的..."
為什麼一堆簡單的電腦問題,像是關機後為什麼不能馬上開機?
為什麼重灌要灌區動程式之類的,沒人說你去把主機版說明書看一遍
沒人說,去爬文,都說硬碟馬達會壞,這樣顯卡音效卡電腦才看得懂是什麼裝置...
不要以為大家都是天才debug看書之後
都可以寫好程式,如果這樣那01很多人都要
丟飯碗了

{
char name[15];
char number[7];;
}teacher;
上面已經點出來
共用同一塊記憶體
+-----------------------+--------------------------+
| | |
+-----------------------+--------------------------+
char[0--------------------------------------------15]
char[0-----------------7]
總共是宣告了15個BYTEs
覺得你應該問一下你老闆 它的意思是不是要用15個byte的空間去做這個作業
所以才跳出來說明一下,
程式是不是自己寫的, 其實是看的出來的,
不像有些人只丟問題或作業出來, 直接要人寫CODE給他,
原PO算是認真的, 現在通訊那麼方便, 問問人家, 肯答的就答,
不願賜教的就不回, 少一點火氣,
雖然不像我們以前學程式那麼辛苦, 跟本沒人問,
去問老師很多也答不出來...沒錯, 我遇過....
因為他自己也剛學, 教書是照本宣科.....
01 或許可以再開個版大家討論程式設計好了....
國外會進步是因為很多人願意分享.
有時上網找資料, 才知道有那麼多善心人士寫了很多好用的CODE/PROGRAM.
自己雖然不能成為那麼有能力的人,
幫幫人解解小問題, 那也是OK的....
比如資料欄位可以有多種型態可以選擇
但是真正儲存時只會用其中一種
typedef union field {
char name[33];
int num;
struct addr_t addr;
...
};
通常結構上會搭配一個 type 項目來指定型態
用union 的作法會比較具有可讀性
不過很多情況下會直接做強制型態轉換,這要看各人喜好
另外早期 union 較常看到的是針對x86系統呼叫
因為 x86 的暫存器根據長度不同有不同的名稱
如 AH(AX high 8bits), AL (AX low 8bits), AX (EAX low 16bits), EAX (32).....
對這種儲存位置有相依關係的也需要用 union 處理,才會比較方便
這應該算是 union 的經典範例
關閉廣告