C 語言巨集問題 |
缺席
|
yshihyu
一般會員 發表:23 回覆:18 積分:8 註冊:2006-11-28 發送簡訊給我 |
#define VH (*(int far*)0x450) // 怎麼去解釋它 , 是far 指標指向450位址嗎?? //它是放在標頭檔內
VH 就可以直接把 int 型態的值存到450位址裡面嗎??? 我搞不懂的是450 位址記憶體會不會有其他程式在使用??? 如果直接把值存入 不是有問題 #define VH (*(int far*)0x450) // 改成 #define VH (*(int *far)0x450) 可以嗎?? // 因為一般指標宣告不是 int * far ... 怎麼巨集中會用int far* 還有#define VH (*(int far*)0x450) // 直接在巨集中(int far *) 這樣算是有需宣個指標變數嗎?? 要巨集做法是用在哪邊???? #include #include #define VH (*(int far*)0x450) int main(int argc, char *argv[]) { VH = 400; printf("%d\n",VH); system("PAUSE"); return 0; } 出現錯誤 syntax error before "far" 想知道這樣的巨集要如何使用它 謝謝 |
jesse_chao
一般會員 發表:2 回覆:9 積分:2 註冊:2003-12-09 發送簡訊給我 |
(int far)是資料型態,(int far*)0x450是一個被固定了沒有名稱的指標,(*(intfar*)0x450)是這個指標所指向的資料內容,
0x450就是指標所在的位址。 至於#define的話可能請你去翻翻書會比較好,可以跟你說的是VH = 400;這裡才宣告並給定初值。 0x450會不會有人用?這個程式怎麼看都像嵌入式在用的,位址大約都規劃好了吧。 希望以上對你有點幫助。 ===================引 用 文 章=================== #defineVH(*(intfar*)0x450) // 怎麼去解釋它 , 是far 指標指向450位址嗎?? //它是放在標頭檔內 VH 就可以直接把 int 型態的值存到450位址裡面嗎??? 我搞不懂的是450 位址記憶體會不會有其他程式在使用??? 如果直接把值存入 不是有問題 #defineVH(*(intfar*)0x450) // 改成 #defineVH(*(int*far)0x450) 可以嗎?? // 因為一般指標宣告不是 int * far ... 怎麼巨集中會用int far* 還有#defineVH(*(intfar*)0x450) // 直接在巨集中(int far *) 這樣算是有需宣個指標變數嗎?? 要巨集做法是用在哪邊???? #include #include #defineVH(*(intfar*)0x450) int main(int argc, char *argv[]) { VH = 400; printf("%d\n",VH); system("PAUSE"); return 0; } 出現錯誤syntax error before "far" 想知道這樣的巨集要如何使用它 謝謝 |
stanely
一般會員 發表:1 回覆:8 積分:1 註冊:2002-07-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |