[英]MACRO symbol usage in IAR Embbeded workbench for MSP430
我試圖將宏的符號導出到模塊外部,但是編譯器退出並顯示:“錯誤[34]:可能無法重新定義”
我將用IAR匯編器編寫的程序分成幾個模塊,因為它是作為唯一的一大段代碼編寫的。 我遇到了幾個應該用作快速內聯函數的MACRO,我試圖將它們放在其相關模塊中,並在需要它們的位置將其導入為符號。 當我僅將宏的名稱/符號添加到托管它們的模塊的公共名稱時,就會出現問題:即使不導入它,編譯器也會退出並顯示“錯誤[34]:可能無法重新定義”。 如果可能的話,我寧願讓他們留下相關的模塊。 我能做到嗎? 還是我弄錯了方向?
MODULE MY_MODULE
PUBLIC GET_VALUE_XYZ
#include "msp430.h"
#include "defines.s43"
RSEG CODE
GET_VALUE_XYZ MACRO parameter_1
<...cut...>
ENDM
END
宏不是通常意義上的函數,它們為常見的指令序列(如C中的#define
宏)提供了簡寫形式。 因此,只能在可見定義的模塊中引用宏。 不能使用PUBLIC
關鍵字將它們導出到其他模塊。
可以將宏定義與其余代碼分開,並將它們放在單獨的文件中,但是隨后您需要使用#include
指令包括這些文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.