看板 Programming 關於我們 聯絡資訊
※ [本文轉錄自 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)
sunneo:那...把macro包裝成proc 220.142.230.65 05/03 19:24
sunneo:大概都是一樣的吧?屬於compile/assembly tm 220.142.230.65 05/03 19:24
ast9869:其實我是要用macro,不是call function...123.110.225.167 05/03 21:58
ast9869:只是ice_func.h表示會讓人誤導罷了!!123.110.225.167 05/03 21:59
ast9869:要如何改造,變成用macro的方式?123.110.225.167 05/03 22:00
atst:應該是extern出問題吧...macro只是做文字代換 61.229.27.54 05/03 22:06
atst:如果你在不同的檔案裡引用這個macro,應該只會 61.229.27.54 05/03 22:07
atst:把引用的地方代換成...getXXX,但不會幫你宣告 61.229.27.54 05/03 22:07
atst:extern getXXX 61.229.27.54 05/03 22:08
atst:是不是因此出問題呢? 61.229.27.54 05/03 22:09
atst:剛又看了一下, 看來不是我講的原因... 61.229.27.54 05/03 22:11
atst:能不能po一下錯誤訊息? 61.229.27.54 05/03 22:11
ast9869:沒有錯誤訊息!只是跑的不是我要的!123.110.225.167 05/03 22:49