是否有可能創建一個函數有一個參數,它返回一個指向全局範圍無效返回,參數的功能?有狀態的C++全球空函數指針
我問在嵌入式硬件,在那裏我試圖定義了一系列的中斷服務程序的附加到數字引腳的感覺。
我的意思的例子:
#define MAX_BUTTONS 5
int main()
{
for (int i = 0; i < MAX_BUTTONS; i++) {
attachInterrupt(i, isrForI(i), RISING);
}
}
typedef void (*Isr)(void);
Isr isrForI(int i)
{
// Return a function of type Isr which calls handleInterrupt(i)
}
void handleInterrupt(int i)
{
// Do something with i
}
這裏的問題是不知道如何足夠一般在isrForI
,因爲我需要它是可擴展的,使得MAX_BUTTONS
可以是任何數字。
你可以擴展你的例子來說明功能'isrFor(我)'的回報。 –
你想要的狀態,但有一個裸函數指針?不是一個函數? – StoryTeller
路線不明。你想立即生成這些void函數,還是要根據整型參數從現有池中選擇它們?如果是後者,它看起來像是在尋找一組函數指針。或者你的意思是相同的功能,但是附加了不同的狀態? –