【发布时间】:2012-08-13 14:45:52
【问题描述】:
在使用 C(++) (AVR-Gcc) 在嵌入式系统上实现菜单时,我最终得到了带有参数的 void 函数指针,并且通常会使用它们。
// void function prototype
void (*auxFunc)(char *);
在某些情况下(实际上不少),函数实际上不需要参数,所以我会这样做:
if (something) doAuxFunc(NULL);
我知道我可以重载到不同的函数类型,但实际上我正在尝试不这样做,因为我正在实例化多个对象并希望保持它们轻巧。
使用 NULL 指针调用多个函数(当它们用于实际指针时)是否比实现更多函数原型更糟糕?
【问题讨论】:
-
分析器说什么?
-
为什么你认为重载很“重”?
-
@KerrekSB 主要是因为会有(相对)很多对象持有这些,并且空间在嵌入式系统上很有价值。在这种情况下,菜单更像是项目主要功能的辅助部分。
-
@falro: “主要是因为会有(相对)许多对象持有这些” -- 你确实意识到重载会创建两个实例而不是一个,即使对于一个百万物体?并不是每个对象都拥有可执行代码的新副本。
-
@Damon 啊,是的,你是对的。没想到这一点。
标签: c++ c performance embedded avr-gcc