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
?)。在很多很多变数的情况下,这样的小线索很养眼。
这一切都是主观的。 方式更重要的是遵循一种约定,而不是它是什么约定。
这是一个随机而愚蠢的问题,但我不知道 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
?)。在很多很多变数的情况下,这样的小线索很养眼。
这一切都是主观的。 方式更重要的是遵循一种约定,而不是它是什么约定。