我一直运行像__KERNEL__
这样的小公约。
在这种情况下, __
是内核开发者使用的命名约定还是这种命名macros的语法特定原因?
整个代码中有很多这样的例子。
例如,一些函数和variables以_
或甚至__
开头。
这是否有特定的原因?
它似乎相当广泛的使用,我只是需要澄清,这些东西是否有句法目的,或者它只是一个命名约定。
此外,我看到很多用户声明的types,如uid_t。 我再次假设这是一个命名约定告诉读者,这是一个用户定义的types?
有几种情况:
/usr/include/linux
,这些标准指定了哪些符号应该被定义,并且系统特有的其他符号应该以下划线和大写字母或者两个下划线开头。 特别是这是__KERNEL__
的原因,因为它用在内核和libc中的头文件中,并且一些声明是不同的。 __something
对于something
不包含某些管理的内容是很重要的,通常是锁定的。 这是__d_lookup
类的原因。 系统调用的类似约定是, sys_something
是系统调用入口点,处理上下文切换到内核和调用do_something
来执行实际的工作。 _t
后缀是_t
的标准库约定。 例如size_t
, ptrdiff_t
, foff_t
等。 内核代码也遵循这个约定,它也是内部类型。