第29天
为了缩小操作系统的大小,操作系统实际上很大一部份是由日文字库给撑大的。我们如果让操作系统自动能解压,那行可以将日文库变小,本书作者实现了这个功能。实际上我个人认为很没有必要,让操作系统原生支持压缩格式,也就是以时间换空间,在现在存储如此便宜的情况下已没有必要了。而且本书作都也没有详细讲解压缩算法。
在C语言中有一些函数被称为标准函数 ,操作系统的作者都会实现这些函数,我们的这个操作系统也可以试着实现一些,其他都很简单,这里讲一下printf这种参数不固定的函数好何写
#include <stdio.h>
#include <stdarg.h>
#include "apilib.h"
int printf(char *format, ...)
{
va_list ap;
char s[1000];
int i;
va_start(ap, format);
i = vsprintf(s, format, ap);
api_putstr0(s);
va_end(ap);
return i;
}
这种函数的声明使用了...。这是C语言的语法,用于定义不固定的参数。这部分的参数可以使用va_list获取。使用时需要用va_start进行初始化,然后用va_end扫尾。将一来一天都是写一些应用程序,我觉得没有多少看的必要。
这本书就这样看完了。