A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

小元子刘

初级黑马

  • 黑马币:20

  • 帖子:8

  • 精华:0

© 小元子刘 初级黑马   /  2018-4-18 00:08  /  868 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



printf 是一个C runtime的函数,“Hello world!" 是一个常量字符串,编码是ASCII的'\0'结尾的,传递给printf的是const char * 类型的指针,指针通过push指令压栈,通过call指令调用函数。
printf会把这个字符串写入一个叫  stdout的抽象文件句柄,而这个文件句柄会被console接管。
当console从stdout读取这个字符串后,会把他写入console的缓冲区,根据当前光标位置决定字符的位置
console的会根据缓冲来刷新屏幕显示
显示字符的时候需要根据当前字体设置,用”Hello world!"的每个字符的Unicode值去计算字体内对应的字符索引,根据索引获取字模。
根据字模来绘制字符图形,用当前字体颜色填充,做字体边缘平滑,生成包含字符的RGB32位图
把RGB32位图复制到console窗口对应的frame buffer
操作系统的图形引擎把窗口的frame buffer渲染到屏幕对应的显存内的frame buffer
显卡根据显存buffer 生成信号给显示器,显示器根据信号调整屏幕上每个像素的颜色和亮度。
终于可以看到“Hello world!”了

首先建立好开发环境非常重要,工欲善其事,必先利其器。做任何开发,首先就是要把这个环境准备好,之后就可以去做各种尝试,尝试过程中就能逐渐建立信心。初学者往往在环境配置中被各种预想不到的问题弄得很沮丧。

建立起来环境了,改变世界就靠你的代码了。学习一门编程语言没有太多的诀窍,你可能可以去找一本比较好的经典的入门书籍,现在网络上也有非常多的资料,图文或者视频都可以,根据个人喜好选择。最重要的练习,熟能生巧,在不断的练习中去加深自己对程序语言的理解。

接下来你需要了解这三个术语,叫SDK、API跟Lib,分别表示软件开发套件,应用编程接口和库。这三者之间其实有一定的联系,或者是交叉。总体来说,它们都是给我们提供的一些封装了底层功能的基础设施。做Java开发的话,这些东西通常体现为我们所经常说的“框架”。事实上要成为一个资深的Java开发者,对各种API和框架的学习,可能是花时间最多的一个地方。

当然你也不可能把所有API或者SDK种的所有内容完全弄懂。在软件开发中也有二八原则,少数的API能够胜任开发中的大部分场景。所以你只需要掌握这些关键部分,当在新场景下遇到不能解决的新问题时,再去查看帮助文档。所以帮助文档的阅读也是技术学习的一个关键因素。了解了基础原理之后一般就能上手开发了,帮助文档可以帮助你在实践中学习。


1 个回复

倒序浏览
总结的很好,很棒
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马