我是C++初学者,目前正在使用一个ARDUINO(类似于C++,我被告知在这里问这个问题)。
我写了以下代码:

int buttonPinState = digitalRead(buttonPin);

  if (buttonPinState != lastButtonPinState) {
    if (buttonPinState == 1) {
      counter++; //Any random code goes here.
    }
  }
  lastButtonPinState = buttonPinState;

在这段代码中,我可以将“counter++;”更改为任何需要执行的内容,是否可以用它来创建一个方法?

最佳答案

可以使用指向函数的指针作为参数,然后可以在if块中执行它。

void function(void (*arbitrary_function)()) {
    int buttonPinState = digitalRead(buttonPin);

    if (buttonPinState != lastButtonPinState) {
        if (buttonPinState == 1) {
            arbitrary_function();
        }
    }

    lastButtonPinState = buttonPinState;
}

void arbitrary_function_1() {
    // some code here
}


void arbitrary_function_2() {
    // some other code here
}

void loop() {
     ...
     function(&arbitrary_function_1);
     ...
     function(&arbitrary_function_2);
     ...
}

关于c++ - 我可以用代码作为输入方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40546270/

10-12 01:02