三十天自制操作系统(16)

第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扫尾。将一来一天都是写一些应用程序,我觉得没有多少看的必要。
这本书就这样看完了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,893评论 25 709
  • 第27天 前一天讲到为什么用ncst命令之后应用程序就无法关闭了。现在看一下程序ncst到底干了什么事情。如果在命...
    whatcanhumando阅读 1,576评论 1 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,534评论 19 139
  • 江南的夜幕如一幅缀着星星的刺绣,绵绵春雨裹着纯白色的栀子花簌簌落下,坐在墙角爬满厚厚青苔,充斥着草药香味的房间,透...
    hellokey阅读 975评论 2 7
  • “小时候的你可以肆无忌惮地爬树,玩水,翻跟斗,但是等你到大了,你有老了的父母,有了自己的家室以后,你就要学会害怕。...
    瑞秋奶奶阅读 654评论 0 0

友情链接更多精彩内容