Ham*_*aya 1 c macros arduino c-preprocessor
我有以下形式的功能:
void onPulse10(){
pulseList.push_back(10);
}
void setupMeterInput10(){
pinMode(10, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(10), onPulse10, RISING);
}
Run Code Online (Sandbox Code Playgroud)
我使用这些来连接引脚上的中断.我的问题是我有大约十个引脚,我想看看使用中断.所有人做同样的事情,唯一的区别是数字:而不是10,它将是10-20.如何定义一个宏,如SetupPin10()将扩展到上面,所以我可以有10个设置行而不是相同的2个函数复制粘贴10次?
您可以使用令牌粘贴(##)来完成此操作.
#define SetupPin(n) void onPulse##n() { pulseList.push_back( n ); }
Run Code Online (Sandbox Code Playgroud)
然后简单地使用
SetupPin(10)
Run Code Online (Sandbox Code Playgroud)
哪个将扩展到
void onPulse10() { pulseList.push_back( 10 ); }
Run Code Online (Sandbox Code Playgroud)