使用什么都不做的功能

Use of do nothing function

什么都不做的函数(在 C 中)有哪些用例,例如:

dummy() {}

我正在阅读 K&R 的 "The C programming Language",在第 4 章(函数和程序结构)中提到

A do-nothing function like this (shown above) sometimes useful as a place holder during program development.

谁能解释一下作者的意思以及这些函数的用途?

一个(还)什么都不做的函数表明应该做某事,但还没有实现。

当您编写代码来解释某事时,最好省略次要功能,因此 reader 关注问题而不是细节。

相反,当你编写一个真正的程序时,我更喜欢先创建次要功能,测试它们,然后将所有重点放在主流上。

看看 "Skeleton"、"dummy code"、"mock objects" 等编程习惯用法。这是一种非常常见的技术,可以让您测试程序的整个体系结构而无需落实每一个细节。

假设您有一个能够通过调用函数 save() 将结果保存在文件中的应用程序,您希望能够测试该应用程序而无需将结果真正保存到文件中。所以函数 save() 可以是一个空函数!像这样写很常见(这里是伪代码):

save() {
    print "save() not yet implemented";
}

能够跟踪呼叫。

您已经收到了答案,但为了详细说明 为什么 部分,让我加两分。

如果您尝试使用没有定义的函数(调用函数),linker will throw undefined reference error,因为它将无法找到 actual 给定目标文件中任意位置的函数定义到 link 到.

因此,有时在开发阶段,当您需要调用 API 时 尚未 实施(或直到时间不可用),一个虚拟添加了函数定义,

  • 没有任何意义
  • 或returns固定值

只是为了编译和检查(测试)调用函数(模块)的工作。如果没有虚拟函数定义,调用函数的代码将抛出错误。