|
|
bonta
銅驢友〔初級〕
. 積分: 124
. 文章: 156
. 收花: 1012 支
. 送花: 735 支
. 比例: 0.73
. 在線: 4415 小時
. 瀏覽: 13975 頁
. 註冊: 7214 天
. 失蹤: 16 天
. 陣代高中 |
|
|
|
|
|
|
#1 : 2007-10-17 06:07 PM
全部回覆
|
送花
(6)
送出中...
|
|
|
aioTask* this_task = (aioTask*) task;
可分開寫
aioTask* this_task; //宣告變數
this_task = (aioTask*) task; // task 應該是指標, 而 (aioTask*) 是強迫轉型, 所以這行是將 task 強迫轉型為 aioTask* 給 this_task;
第二個問題也分開寫
headsetTaskData* ptr;
ptr = (headsetTaskData *)getAppTask(); // getAppTask()應該是一個能傳回指標的函數,將傳回值強迫轉型;
power_state state = ptr->headset_power_state;
應該只是這樣而已
如果是寫 32bit 的程式, 指標應該 4byte, 對 c 而言,指標如 int 般僅是個 4byte 大小的變數, 它可以隨便你運算,或指定
只是不同資料型別的指標在傳遞時, compiler 會去檢查資料型別是否相等, 而強迫轉型只是告知 compiler 不用檢查。
[bonta 在 2007-10-17 06:14 PM 作了最後編輯]
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
|
|