在使用 C(++) (AVR-Gcc) 在嵌入式系统上实现菜单时,我最终得到了带有参数的 void 函数指针,并且通常使用它们。
// void function prototype
void (*auxFunc)(char *);
在某些情况下(实际上相当多),函数实际上不需要参数,所以我会这样做:
if (something) doAuxFunc(NULL);
我知道我可以重载到不同的函数类型,但实际上我正在尝试不这样做,因为我正在实例化多个对象并想让它们保持轻便。
使用 NULL 指针调用多个函数(当它们用于实际指针时)是否比实现更多函数原型(prototype)更糟糕?
最佳答案
即使在微 Controller 上,检查 NULL 也是一个非常小的开销 - 与 0 的比较应该快如闪电。如果你重载了几个函数,你会为了(非常轻微的)性能改进而破坏可读性。让 GCC 的优化器做它的事情,它非常擅长:)
关于c++ - NULL 指针参数有多昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936682/