一个程序员应该懂这些
来源:互联网 发布:编程一般用什么软件 编辑:程序博客网 时间:2024/06/05 04:29
说一个程序,主程序就2行,很简单吧。但你到底懂不懂这个程序都干了些什么?
int a = 0;
cout<<a<<endl;
简单来说是申请了一个变量,然后输出,对啊!大一的小盆友都知道。
那我们从别的角度看看吧。
先说编译,算了编译太麻烦,跳过,就是直接生成的,假如是一个a.exe吧
这个a.exe用ultra edit打开,你看到的是什么?很复杂吧。
exe是windows的文件结构,到linux下面就不一样了,算了这些也省略了。
这个a.exe的实质是什么?是一个程序,废话!对这废话不是那么容易理解的。
这个程序首先在硬盘上,你运行程序,电脑做了什么?:
把程序装入内存
然后操作系统分配资源,开启一个新的线程
然后执行程序代码
然后退出操作系统收回资源
对吧,就几个步骤,但是你真清楚其中最关键的东西吗?
程序到底怎么运行的?
程序装入内存,以什么形式存储?
这里涉及到哈佛结构,把代码存到代码段,数据存到数据段。生成的exe应该已经把它分离出来了(不是很确定),分别存只是操作系统转移一下位置
把程序翻译成指令,让我看汇编指令吧,2进制的鬼也看不懂
算了还是变成自然语言吧:
先lea一下从内存取出数据
然后中断
然后输出,打印到屏幕是怎么回事呢?把数据转换成一个像素矩阵然后刷新屏幕,这个过程很复杂。
然后关中断
指令怎么执行,分多少步骤?组成原理有说
关于中断,微机接口有说
都不是一两句话能说清楚的。
现在你看到这两行代码能想到什么?如果不知道,还是研究研究吧。无论什么都没看到的那么简单。
- 一个程序员应该懂这些
- 程序员应该熟练掌握这些算法
- PHP程序员应该知道这些PHP知识
- 一个程序员应该有的素质
- 一个程序员应该知道东西
- 一个老程序员这些年的心得体会
- 空调、电气、运维....一个绿色数据中心应该拥有这些技术!
- 这些道理应该明白
- 一个程序员应该具备的基本素质
- 一个程序员所应该具备的精神
- 一个好的程序员应该具备..
- 一个优秀的程序员应该怎样
- 转帖: 一个程序员应该锻炼的能力
- 一个java程序员应该掌握的(转)
- 做为一个程序员应该看的书籍
- 一个程序员应该经历的几个层次
- 作为一个程序员应该注意的地方
- 一个好的C程序员应该做到
- Linux rpm
- Bigtable:一个分布式的结构化数据存储系统
- java程序访问数据库
- 开源网上商店系统
- 验证视图状态 MAC 失败(转)
- 一个程序员应该懂这些
- MFC中非模式对话框的细节
- Web开发平台乱象之StarPlatform
- css之滑动门总结与心得
- moss 2010 用infopath 2010 获取sharepoint库和列表数据源并根据条件过滤填充到下拉框(1)
- 4009
- android 的mapview的apikey
- 几种同步手段(互斥量,信号量,事件,临界区)
- WF活动(Activity)