C宏:基于参数值的条件代码?

时间:2015-08-15 02:07:47

标签: c c-preprocessor

有更清洁/更简单的方法吗?

以下工作正常,但我认为这很难看 - 我想要一个解决方案,不需要为每个可能作为“端口”传递的无效值单独的#define。

#define _port_A_config_digital(mask)        // do nothing; this port is always digital
#define _port_B_config_digital(mask)        AD1PCFGSET = (mask)
#define _port_C_config_digital(mask) 
#define _port_D_config_digital(mask) 
#define _port_E_config_digital(mask)
#define _port_F_config_digital(mask) 
#define _port_G_config_digital(mask)
#define _port_H_config_digital(mask) 
#define _port_I_config_digital(mask) 
#define _port_J_config_digital(mask) 
#define _port_K_config_digital(mask) 

#define ConfigDigitalBits(port, mask)      _port_##port##_config_digital(mask)

如果“port”是除B以外的任何,我想要一个空语句。

除了那个做某事的人之外,我想摆脱所有#defines。

我想这样做是因为在这个MCU上,B以外的所有端口总是是数字的,没有什么可做的。

但是调用ConfigDigitalBits()应该是任何端口的有效方法。

0 个答案:

没有答案
相关问题