請問macro如何被C 呼叫?

看板Programming作者 (甘願為妳~)時間17年前 (2008/05/03 17:47), 編輯推噓2(2011)
留言13則, 3人參與, 最新討論串1/5 (看更多)
※ [本文轉錄自 ASM 看板] 作者: ast9869 (甘願為妳~) 看板: ASM 標題: 請問macro如何被C 呼叫? 時間: Sat May 3 17:35:14 2008 =================================================================== //C51 的 code //ice_func.c #pragma asm getXRAM MACRO _Address, _Shift, _Data mov DPTR, #_Address movx _Data ,@DPTR+_Shift ENDM #pragma endasm =================================================================== //ice_func.h BYTE d1, d2; extern getXRAM(_Address, _Shift, _Data); #define Download64(pBuf) \ { \ getXRAM(pBuf, 0, d1);\ getXRAM(pBuf, 1, d2);\ DownTwoByte(0x02, d1, d2); \ } =================================================================== 小弟不才… 這樣好像不能用耶?請問各位先進要如何設定才能調用getXRAM呢? ※ 編輯: ast9869 來自: 123.110.225.167 (05/03 17:49)

05/03 19:24, , 1F
那...把macro包裝成proc
05/03 19:24, 1F

05/03 19:24, , 2F
大概都是一樣的吧?屬於compile/assembly tm
05/03 19:24, 2F

05/03 21:58, , 3F
其實我是要用macro,不是call function...
05/03 21:58, 3F

05/03 21:59, , 4F
只是ice_func.h表示會讓人誤導罷了!!
05/03 21:59, 4F

05/03 22:00, , 5F
要如何改造,變成用macro的方式?
05/03 22:00, 5F

05/03 22:06, , 6F
應該是extern出問題吧...macro只是做文字代換
05/03 22:06, 6F

05/03 22:07, , 7F
如果你在不同的檔案裡引用這個macro,應該只會
05/03 22:07, 7F

05/03 22:07, , 8F
把引用的地方代換成...getXXX,但不會幫你宣告
05/03 22:07, 8F

05/03 22:08, , 9F
extern getXXX
05/03 22:08, 9F

05/03 22:09, , 10F
是不是因此出問題呢?
05/03 22:09, 10F

05/03 22:11, , 11F
剛又看了一下, 看來不是我講的原因...
05/03 22:11, 11F

05/03 22:11, , 12F
能不能po一下錯誤訊息?
05/03 22:11, 12F

05/03 22:49, , 13F
沒有錯誤訊息!只是跑的不是我要的!
05/03 22:49, 13F
文章代碼(AID): #1873IkSc (Programming)
文章代碼(AID): #1873IkSc (Programming)