我不确定是否可以以这种方式使用宏。使用字符串检查宏定义
在我的嵌入式系统项目中,我想知道是否定义了一个宏,这取决于我拥有的两个字符串。
对于如:
#define FAN_1 PORTAbits.RA0
#define LIGHT_1 PORTAbits.RA1
现在,当我得到的形式提出的请求:
char *arg1="FAN"; ("LIGHT")
char *arg2="1";
使用这两种说法我想直接检查针,我的风扇1附加并检查其状态。
我想要一种方法,以便我不必使用strcmp()或直接匹配来检查arg1和arg2。 而我可以直接写if(some_macro(arg1,arg2)==1){} else {}
。
请指导,如果这是可能的使用宏,因为引脚只能这样定义。
另外,如果没有,那么是否有任何其他方式来做到这一点?
这看起来很像微型芯片PIC代码。如果您使用的是MPLAB C编译器和库,请注意RAM与ROM中的字符串之间的区别。传递给函数的字符串常量将由'char rom *'而不是'char *'进行传递。对于每种类型的字符串比较,它们的库中都有特殊的函数。例如:'strcmppgm2ram(arg1,“FAN”)'将arg1与字符串文字进行比较是正确的。我不确定其他C编译器如何处理奇怪的内存结构。 – 2011-12-27 19:52:18