我是靠谱客的博主 灵巧月亮,最近开发中收集的这篇文章主要介绍Linux内核完全注释(0.11版)DAY2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

fs目录是文件系统实现程序的目录,包含17个C语言程序。这些程序可分为四个部分:高速缓冲区管理、底层文件操作、文件数据访问和文件高层函数。核心文件buffer.c是高速缓冲区程序,因为文件系统数据访问都需要首先读取到高速缓冲区。


                                                 图为fs目录中各程序函数之间引用关系

头文件主目录include

头文件目录总共有32个.号文件。其中include/主目录下有13个头文件,其他头文件则存放在asm(4个)、linux(10个)和sys(5个)三个子目录

include/主目录下头文件主要提供内核和用户程序的使用;sam/子目录用于主要存放计算机硬件体系结构相关的头文件;linux/子目录用于存放linux内核专用头文件;sys/子目录用于存放一些文件状态、进程、系统数据类型等头文件

Linux内核源代码情景分析(上)

inline:内联函数,因为gcc从C++中吸收了很多语法,因此gcc既是C编译又是C++编译,其中inline就是C++语法。inline函数与#define类似,e.g.

#include <stdio.h>
//函数定义为inline即:内联函数
inline char* dbtest(int a) { return (i % 2 > 0) ? "奇" : "偶"; } int main() { int i = 0; for (i=1; i < 100; i++) { printf("i:%d 奇偶性:%s /n", i, dbtest(i)); } }

这里用inline就将a%2可以写为i%2,减少了栈空间的消耗(临时变量),但inline不能用在结构复杂的函数里面,因为这会大量消耗内存空间,并且inline是非强制的只是建议,编译器会自动判别采用不。详见这篇博客。

#define与inline的区别,当用#define进行宏定义时预编译时只是进行的简单符号替换,并不具有检查参数有效性。而inline预编译时会检查参数有效性。

最后

以上就是灵巧月亮为你收集整理的Linux内核完全注释(0.11版)DAY2的全部内容,希望文章能够帮你解决Linux内核完全注释(0.11版)DAY2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部