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预编译时会检查参数有效性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值