全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1335
推到 Plurk!
推到 Facebook!

函式傳入const 指標,改變指標所指的內容,為何在此範例不會有Error

答題得分者是:aftcast
tkulimi
一般會員


發表:2
回覆:4
積分:1
註冊:2004-11-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-09-11 12:00:26 IP:219.87.xxx.xxx 訂閱
//---------------------------------------------------------------------------
struct stTstUtDef
{
int m_nHdrCmp : 1;//當": 1"拿掉,才會有Error
int m_nNum : 31;//當": 31"拿掉,才會有Error
};
//---------------------------------------------------------------------------
void __fastcall TForm1::vTst(const stTstUtDef* pstValue)
{
pstValue->m_nHdrCmp = 1;
}
//---------------------------------------------------------------------------
/*
":"為位元欄位
*/
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-09-12 19:03:54 IP:61.219.xxx.xxx 訂閱
就個人所知,bit-fields是不能為const的。所以,compiler不理會你存取欄位有錯。

這聽起來是合理的,因為如果struct裡面放的會是常數的欄位,那麼宣告一個常數struct就可以解決同樣的問題,無需使用fields…
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-04-27 12:31:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!