c++ - NULL 指针参数有多昂贵?

标签 c++ c performance embedded avr-gcc

在使用 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/

相关文章:

c++ - BGL : Example of isomorphism with vertex invariants

c++ - 使用 videowriter opencv 的视频大小为 0 字节

c++ - 这个真实路径定义的跨平台替代方案?

c++ - 为什么允许 C++ 类具有零数据成员?

c - 在C中,我如何获取符号链接(symbolic link)的路径(我的意思是符号链接(symbolic link)的路径而不是目标的路径)?

c - c 中 while() 循环的不明确行为

python - 计算每个numpy数组行的熵的最快方法?

SQL Server 索引问题

performance - 寻找最长的非负子数组

Linux 上的计算时间 : granularity and precision