结构体声明

struct BOOTINFO
{char cCyls;char cLeds;char cVmode;char cReserve;short sScrnx;short sScrny;unsigned char * pVram;
};

新增代码

void HariMain(void)
{unsigned char *pAdd;int nXsize ;int nYsize;struct BOOTINFO *pBootIf = (struct BOOTINFO *)0x0ff0;init_palette();  //设定调色板//从内存中获取规格nXsize = pBootIf->sScrnx;nYsize = pBootIf->sScrny;pAdd = pBootIf->pVram;Init_Screen(pAdd, nXsize,  nYsize);for (;;) {io_hlt();}
}

把显示画面背景的部分 独立了出来

void Init_Screen(unsigned char *pAdd, int nXsize, int nYsize)
{DrawBoxFillColor8(pAdd, nXsize, COL8_LightDarkBlue,  0,         0,          nXsize -  1, nYsize - 29);DrawBoxFillColor8(pAdd, nXsize, COL8_BigGrey,  0,         nYsize - 28, nXsize -  1, nYsize - 28);DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE,  0,         nYsize - 27, nXsize -  1, nYsize - 27);DrawBoxFillColor8(pAdd, nXsize, COL8_BigGrey,  0,         nYsize - 26, nXsize -  1, nYsize -  1);DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE,  3,         nYsize - 24, 59,         nYsize - 24);DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE,  2,         nYsize - 24,  2,         nYsize -  4);DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey,  3,         nYsize -  4, 59,         nYsize -  4);DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey, 59,         nYsize - 23, 59,         nYsize -  5);DrawBoxFillColor8(pAdd, nXsize, COL8_BLACK,  2,         nYsize -  3, 59,         nYsize -  3);DrawBoxFillColor8(pAdd, nXsize, COL8_BLACK, 60,         nYsize - 24, 60,         nYsize -  3);DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey, nXsize - 47, nYsize - 24, nXsize -  4, nYsize - 24);DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey, nXsize - 47, nYsize - 23, nXsize - 47, nYsize -  4);DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE, nXsize - 47, nYsize -  3, nXsize -  4, nYsize -  3);DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE, nXsize -  3, nYsize - 24, nXsize -  3, nYsize -  3);
}

Day_05用结构体 从内存中 读取配置信息相关推荐

  1. linux查看内存条pn,实验:使用GDB查看结构体在内存中的存储方式

    结构体在内存中的表示形式是怎么样的? 结构体在内存中和普通变量存储没有太大的区别. 首先我们看看,计算机如何读取普通变量:   普通变量例如int是占据4个字节,计算机读内存的时候会从起始地址开始读, ...

  2. c语言结构体在内存中的存储,C语言结构体在内存中的存储情况探究------内存对齐...

    条件(先看一下各个基本类型都占几个字节): voidsize_(){ printf("char类型:%d", sizeof(char)); printf("int类型:% ...

  3. JavaWEB中读取配置信息

    第一种方法是使用java.io和java.util包,缺点是路径的概念要清晰, 例子: Properties prop = new Properties(); InputStream in = get ...

  4. 结构体在内存中的对齐规则

    一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和. 例一: #include <iostream> using namespace std; struct X { ...

  5. 结构体在内存中的存储方式

    一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和. 例一: #include <iostream> using namespace std;struct X {ch ...

  6. C语言--结构体与内存对齐准则简单理解

    平时基本不涉及这个问题,被问起才发现没那么简单... 一,结构体:内存中所有类型字节之和 #include<stdio.h> struct icd {int a;char b;double ...

  7. 自定义类型详解:结构体(内存对齐、位段) + 枚举 + 联合

    目录 一.结构体 1.特殊的声明 2.结构体自引用 3.结构体变量的定义和初始化 4.打印结构体 二.==结构体内存对齐== 1.内存对齐 结构体嵌套如何求 为什么存在内存对齐? 2.修改默认对齐数 ...

  8. 3.c语言结构体成员内存对齐详解

    一.关键一点 最关键的一点:结构体在内存中是一个矩形,而不是一个不规则形状 二.编程实战 1 #include <stdlib.h> 2 #include <stdio.h> ...

  9. c语言 结构体映射,内存管理之4:页面映射中的结构体

    date: 2014-09-10 19:09 备注:本文中引用的内核代码的版本是2.4.0. 在前面的文章中,我们介绍了linux页式内存管理,讲到了页面目录PGD.中间目录PMD以及页表PT,本文来 ...

  10. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )

    文章目录 一.结构体中嵌套一级指针 1.声明 结构体类型 2.为 结构体 变量分配内存 ( 分配内存时先 为结构体分配内存 然后再为指针分配内存 ) 3.释放结构体内存 ( 释放内存时先释放 指针成员 ...

最新文章

  1. 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机图形学与多媒体
  2. FineReport——设计时无相关数据库查看权限,使用对应数据库解决方案
  3. Android 音频录制和播放问题
  4. 大型网站典型故障案例分析
  5. 实习二 分组密码加密_分组密码加密模式
  6. 8位移位寄存器和优先编码器
  7. 最新版富文本编辑器UEditor操作教程
  8. python实时读plc数据_python snap7读写西门子S系列PLC寄存器的值(PLC的I、Q、M、DB区)...
  9. js动态生成按钮,页面用DIV简单布局2
  10. Swoole(PHP高级Web开发框架)
  11. jumpserver的安装
  12. Ubuntu: apt安装clang
  13. 云南满泽生物科技有限公司 满泽玛卡玛咖精片 东革阿里 奶昔
  14. 计算机系统中为何采用层次化存储体系,计算机组成原理与体系结构——层次化存储结构...
  15. 【译】软件设计中的KISS原则
  16. 优秀的Web前端开发工程师需要具备的4个条件
  17. 百度 95 后程序员删库跑路被判刑
  18. 使用nodejs发送电子邮件
  19. 微软中国艰难前行:业绩遭遇连续跳票
  20. ROS routeros mikrotik路由器CVE-2018-14847漏洞

热门文章

  1. 消息中间件—RocketMQ的RPC通信(一)
  2. HTTP和HTTPS及 Fiddler抓包原理
  3. 【Oracle Database】Oracle GoldenGate (single-single)
  4. Spring(七)Spring中的四种增强和顾问
  5. Ubuntu 16.04配置VNC进行远程桌面连接
  6. MyCat 主键ID自增长配置
  7. 【Python】Django CSRF问题
  8. iOS开发模式MVVM 2分离业务逻辑
  9. 为AspxGridView绑定嵌套数据
  10. 论网络工程中,系统开发设计可行性研究及市面产品对比!