Arduino 函数指针示例

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino 函数指针示例相关的知识,希望对你有一定的参考价值。

Arduino 函数指针示例

int max1(int a, int b)
{
  return (a > b ? a : b);
}
int min1(int a, int b)
{
  return (a < b ? a : b);
}
//函数指针
int(*fuc)(int a, int b);
int(*fuc2)(int a, int b);

void setup() {
  Serial.begin(115200);
}

void loop() {
  int result;
  fuc = max1;//通过函数指针间接调用函数
  fuc2 = min1;
  result = fuc(11,49);Serial.println(result);
  result = fuc2(56,17);Serial.println(result);
}
  • 输出结果:
11:03:04.725 -> 49
11:03:04.725 -> 17
  • 使用 typedef 定义函数指针

当函数指针作为其它函数的参数,特别是作为返回值时,直接使用的函数指针无法编译。

typedef int(*FUC)(int a, int b);
typedef int(FUC2)(int a, int b);

int max1(int a, int b)
{
  return (a > b ? a : b);
}
int min1(int a, int b)
{
  return (a < b ? a : b);
}

void setup() {
  Serial.begin(115200);

}

void loop() {
  FUC fuc;//函数指针
  FUC2 *fuc2;
  int result;
  fuc = max1;
  fuc2 = min1;
  result = fuc(11, 49); Serial.println(result);delay(3000);
  result = fuc2(56, 17); Serial.println(result);delay(3000)

}

以上是关于Arduino 函数指针示例的主要内容,如果未能解决你的问题,请参考以下文章

ESP32 Arduino运行内核查看示例程序

Arduino面向对象(C++)编程开发示例程序

更新:C++ 指针片段

C 语言指针间接赋值 ( 指针作为 函数参数 的意义 | 间接赋值 代码示例 )

动态创建函数并获取指针

C 语言二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )