Linux 内核变量以 'i' 结尾的含义

Linux kernel variables ending in 'i' meaning

这是一个随机而愚蠢的问题,但我不知道 i 在具有以下成员的结构中代表什么:

[starting character]i_[some specifier]

示例如下:bio struct, everytime dm_target is referenced, bvec_iter.

每当我读到这样一个变量时,我都会在脑海中读出完整的名称,但我无法用这些来完成它,这让我感到非常沮丧。

i_没有任何意义,没有什么特别之处

很久以前,结构成员与变量共享相同的命名空间,因此,它们必须是唯一的 - 有些人已经习惯了。让结构成员以唯一前缀开头在主观上是件好事 - IDE 自动完成效果更好,而且更容易查找。

对于 struct bio 个成员,bi_ 只是... bio_.

的快捷方式

struct dm_target *ti 变量名的情况下,ti 看起来像是 C++ 中使用的 this 和 Python 的一个很好的简短形式,用于引用当前对象。

struct bvec_iter 的情况下,bi_ 只是 bvec_iter 的 shorthand。在上面,您有 struct bio_vec 对结构成员使用 bv_

这些只是特定开发人员用来在其源代码中标记某些抽象的约定。没有具体含义。

有时也更容易看 - 当我看到 iter->bi_stuff 时,我可以“怀疑”iter 是指向与 bi 相关的东西的指针(bio? bvec_iter?)。在很多很多变数的情况下,这样的小线索很养眼。

这一切都是主观的。 方式更重要的是遵循一种约定,而不是它是什么约定。