假设我有一个函数c。
uint8_t readPin(uint8_t);
uint8_t readPin(uint8_t pin_num)
{
switch pin_num
{
case 0:
return(PORTAbits.RA3);
break;
case 1:
...and so on
}
}
我想使用更人性化的名称(可以重新命名)调用PIN。例如,我想写作:
openDoor();
致电
readPin(2);
我尝试使用
#define openDoor() readPin(2)
但由于括号而行不通。有人对如何最好地做到这一点吗?我不能仅仅重命名readpin函数,因为我想拥有超过1个不同的别名,具体取决于我包含的标头文件。
#define openDoor() readPin(2)
您拥有的很好。宏可以有参数列表,甚至可以使用空的参数列表,因此这将完成您想要的工作。
但是,我警告不要这样使用预处理器。最好避免使用预处理器,尤其是当语言可以做完全相同的事情时。一方面,调试者看不到预处理器宏。
void openDoor()
{
readPin(2);
}
#define openDoor() readPin(2)
它应该可以正常工作。因为,#define
仅用于替换它在何处找到替换令牌,并在编译预处理之前为其定义的适当值替换。
所以,如果您编写openDoor()
,则在汇编之前将替换为readPin(2)