在项目中,移植第三方组件到工程中,由于出现相同的函数定义导致程序链接时出现重复定义问题。后来考虑添加条件编译宏来控制使用自己的函数还是第三方组件的宏。在C文件中,通过#if/#else/#endif或者#ifdef/#else/#endif很容易实现。但是汇编文件中不能使用和C语言的条件编译宏,但是也有类似的方法。在网上搜索一下,找到如下方法:
IF :DEF:XXX
ELSE
ENDIF
注意:
1、IF/ELSE/ENDIF前必须要有空格,否则会报错。这个没有验证过,貌似不加空格也没问题,待验证
2、‘IF’和‘:’之间必须要有空格。
3、‘:DEF:’这几个之间必须没有空格。
在汇编文件中添加完条件编译宏后,需要定义条件编译宏,汇编程序对应的宏可以在KEIL工程的ASM子项卡里面设置,如下: