![Linux内核标识符中前导和尾部下划线的含义是什么?,第1张 Linux内核标识符中前导和尾部下划线的含义是什么?,第1张](/aiimages/Linux%E5%86%85%E6%A0%B8%E6%A0%87%E8%AF%86%E7%AC%A6%E4%B8%AD%E5%89%8D%E5%AF%BC%E5%92%8C%E5%B0%BE%E9%83%A8%E4%B8%8B%E5%88%92%E7%BA%BF%E7%9A%84%E5%90%AB%E4%B9%89%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
概述我一直在运行像__KERNEL__这样的小公约. 在这种情况下,__是内核开发人员使用的命名约定,还是以这种方式命名宏的语法特定原因? 整个代码中有很多这样的例子. 例如,一些函数和变量以_或偶数__开头. 这有什么特别的原因吗? 它似乎被广泛使用,我只需要澄清一下这些东西是否具有语法目的,还是只是一个命名约定. 此外,我看到许多用户声明的类型,如uid_t.我再次假设这是一个命名约定,告诉读者它 我一直在运行像__KERNEL__这样的小公约. @H_502_7@ @H_502_7@在这种情况下,__是内核开发人员使用的命名约定,还是以这种方式命名宏的语法特定原因? @H_502_7@整个代码中有很多这样的例子. @H_502_7@例如,一些函数和变量以_或偶数__开头. @H_502_7@这有什么特别的原因吗? @H_502_7@它似乎被广泛使用,我只需要澄清一下这些东西是否具有语法目的,还是只是一个命名约定. @H_502_7@此外,我看到许多用户声明的类型,如uID_t.我再次假设这是一个命名约定,告诉读者它是用户定义的类型?解决方法 有几种情况: @H_502_7@ @H_502_7@>在面向公众的标题中,即libc将接管并置于/usr/include / linux下的任何内容,标准指定应定义哪些符号,并且系统特定的任何其他符号应以
下划线和大写字母或两个下划线开头.这就是__KERNEL__特别的原因,因为它被用在内核和libc中都包含的头文件中,并且一些声明是不同的.>在内部代码中,约定通常是符号__something是排除某些管理的东西,通常是锁定的.这就像__d_lookup这样的原因.系统调用的类似约定是sys_something是系统调用入口点,它处理与内核之间的上下文切换,并调用do_something来执行实际工作.> _t后缀是typedef的标准库约定.例如. size_t,ptrdiff_t,foff_t等.内核类型也遵循此约定. 总结
以上是内存溢出为你收集整理的Linux内核标识符中前导和尾部下划线的含义是什么?全部内容,希望文章能够帮你解决Linux内核标识符中前导和尾部下划线的含义是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)