c - 如何阅读 linux 风格的函数名?

标签 c linux function

我看到的风格与我最初学到的风格截然不同。我习惯于尽我所能使代码读起来像普通英语。实际上,这意味着大多数函数名称都以命令式动词开头:

有道理:

DoWorkOnA();
DoWorkOnB();

但现在我在 linux 内核和 this 中的函数上玩弄更多低级代码SDK,我看到了更多:

没有意义:

a_work_do();
b_work_do();

这些名词和动词的困惑背后有什么逻辑吗?似乎动词总是放在一些奇怪的最后Yodic方式。我可以理解为公共(public)函数添加前缀以防止名称冲突,但这似乎比前缀更深入:

有道理:

MODULEA_DoWork();
MODULEB_DoWork();

学习阅读其他人的代码是开发人员成长的重要组成部分。我只是想了解如何更快地阅读看似乱七八糟的单词。

add_work() 的示例在 style guide. 中有意义

最佳答案

Is there any logic behind this jumble of nouns and verbs?

当然有。

a_work_do()

指的是主题a,对象work, Action do(与后两者相关)。

可能会有更多这样的东西,然后可以很好地根据主题和宾语进行排序:

a_work_create()
a_work_do()
a_work_cleanup()

me_book_buy()
me_book_read()
me_book_giveaway()

等等……

Yoda 是个聪明人,不是吗? ;-)

关于c - 如何阅读 linux 风格的函数名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30420348/

相关文章:

c - 使用 fnctl() 锁定和解锁文件以进行读写(多个进程)

c - Linux上C中的标准输出线程安全?

linux - 使用Python subprocess.call调用bash脚本和参数失败

function - F#:像函数一样应用值

c++ - 什么时候 namespace::function() 声明有用?

python - 从 C 代码构建 Python 模块失败

c - 如何从一行接受一定量的输入

linux - 使用 VideoCapture 来自网络摄像头的 50% 错误图片

python - 字典值作为访问键时要调用的函数,不使用 "()"

c - linux异步串口编程中如何区分读和写