我不確定是否可以以這種方式使用宏。使用字符串檢查宏定義
在我的嵌入式系統項目中,我想知道是否定義了一個宏,這取決於我擁有的兩個字符串。
對於如:
#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