![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员的自我修养读书笔记
文章平均质量分 77
走出去拍拍照
这个作者很懒,什么都没留下…
展开
-
从源代码到可执行文件
HelloWorld!对于我们大部分工科生来说是无比熟悉的一个单词,是它,让我们第一次接触到编程。在我上大学的时候,第一门编程课是C语言,第一次编写的程序是下面这样的。#include<stdio.h>int main(){printf(“Helloworld!\n”);return 0;}第一次用的IDE是下面这个,VC++6.0,点击其右上角的编译、运行按钮,程...原创 2018-05-27 00:56:28 · 2127 阅读 · 0 评论 -
可执行文件的装载与进程
进程虚拟地址空间程序(或者狭义上讲可执行文件)是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件;进程则是一个动态的概念,它是程序运行时的一个过程。我们可以把程序比喻成一个菜谱,而炒菜的过程就是一个进程。对于进程与线程,线程是程序执行的最小单位,而进程是系统资源分配的最小单位。我们的程序在执行的时候,它都有自己独立的虚拟地址空间(Virtual Address Space),这个空间...原创 2018-05-27 00:58:18 · 460 阅读 · 0 评论 -
目标文件分析
目标文件的格式现在PC平台流行的可执行文件格式(Executable)主要是Windows 下的PE(Portable Executable)和Linux的ELF(ExecutableLinkable Format),它们都是COFF(Common file format)格式的变种。目标文件就是源代码编译后但未进行链接的那些中间文件(Windows是.obj和Linux是.o),它们跟可执行文件...原创 2018-05-27 01:06:14 · 293 阅读 · 0 评论 -
动态链接
1、为什么要动态链接?静态链接虽然速度快,但是对于多进程操作系统来说,会浪费大量的内存空间;如果遇到程序更新,需要整个程序下载,更新不方便。基于以上两点,我们引入了动态链接。 2、什么是动态链接以及它的基本实现?动态链接就是不对那些组成程序的目标文件进行链接,而是在程序运行时才进行链接。动态链接的基本思想就是把程序按照模块拆分成各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而...原创 2018-05-27 01:17:20 · 561 阅读 · 0 评论