fal*_*lro 7 c c++ embedded performance avr-gcc
在用C(++)(AVR-Gcc)实现嵌入式系统上的菜单时,我最终得到了带参数的void函数指针,并且通常使用它们.
// void function prototype
void (*auxFunc)(char *);
Run Code Online (Sandbox Code Playgroud)
在某些情况下(事实上很多),函数实际上不需要参数,所以我会做类似的事情:
if (something) doAuxFunc(NULL);
Run Code Online (Sandbox Code Playgroud)
我知道我可以重载到不同的函数类型,但我实际上是在尝试不执行此操作,因为我实例化了多个对象并希望保持它们的亮度.
使用NULL指针调用多个函数(当它们用于实际指针时)比实现更多函数原型更糟糕吗?
小智 9
即使在微控制器上检查NULL也是一个非常小的开销 - 与0的比较应该是快速的.如果你使多个函数超载,你就会将可读性(十分轻微)的性能提升到十字架上.只是让GCC的优化器做它的东西,它相当不错:)