gpt4 book ai didi

c - 定义用于定义函数的宏

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:27 24 4
gpt4 key购买 nike

我有以下形式的功能:

void onPulse10(){
pulseList.push_back(10);
}

void setupMeterInput10(){
pinMode(10, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(10), onPulse10, RISING);
}

我用它们在引脚上附加中断。我的问题是我有大约 10 个引脚需要注意使用中断。所有人都做同样的事情,唯一的区别是数量:而不是 10,它将是 10-20。我怎样才能定义一个宏,如 SetupPin10(),它将扩展到上面的内容,这样我就可以有 10 行设置行,而不是复制粘贴 10 次相同的 2 个函数?

最佳答案

您可以使用 token pasting (##) 来完成这个。

#define SetupPin(n) void onPulse##n() { pulseList.push_back( n ); }

然后简单地使用

SetupPin(10)

将扩展到

void onPulse10() { pulseList.push_back( 10 ); }

关于c - 定义用于定义函数的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com