适用于MSP430的IAR嵌入式工作台中的MACRO符号用法

时间:2019-02-19 10:26:14

标签: msp430 iar

我正在尝试将宏的符号导出到模块外部,但是编译器退出并显示:“错误[34]:可能无法重新定义”

我将用IAR汇编程序编写的程序分成几个模块,因为它是作为唯一的一大段代码编写的。我遇到了几个应该用作快速内联函数的MACRO,我试图将它们放在其相关模块中,并在需要它们的位置将其导入为符号。当我仅将宏的名称/符号添加到托管它们的模块的公共名称时,就会出现问题:即使不导入它,编译器也会退出并显示“错误[34]:可能无法重新定义”。如果可能的话,我宁愿让他们留下相关的模块。我能做到吗?还是我弄错了方向?

  <>
            {this.props.Images.map(item=>{
                return (item)
            })}
             <p>
               {JSON.stringify(this.state)}
            </p>
            <p>
               {JSON.stringify(this.props.changed)}
            </p>
            <button onClick={this.props.onChange}>Change</button>
            <button onClick={this.onCurrentChange}>Current State Change</button>
        </>

1 个答案:

答案 0 :(得分:1)

宏不是一般意义上的功能,它们为常见的指令序列(类似于C中的#define宏)提供简写符号。因此,只能在可见定义的模块中引用宏。不能使用PUBLIC关键字将它们导出到其他模块。

可以将宏定义与其余代码分开,并将它们放在单独的文件中,但是随后您需要使用#include指令将这些文件包括在内。