20130311 编译链接 内存

1、程序从编辑、预处理、编译、链接、装入内存、执行

编辑——在开发工具里写程序

预处理——加载一些头文件、宏替换
编译——将.c 或者 .cpp文件转化为目标文件(.o)
链接——将所有的.o及一些动态链接库文件(.exe  .dll等)整合到一块
装入内存——把整合好的东东放入内存
执行——获取CPU的控制权,开始运行

比如调用一个函数printf,编译的结果会产生一条调用printf的汇编指令,但是这时候并不知道printf是否存在、在哪里
到了链接的时候从某个库里找到printf的代码,然后如楼主所说整合到一块。如果找不到就会出现链接错误。

2、常量也是有内存地址的,void*指针可以保存任何类型的指针。

3、没有初始化的指针的指向是随机的,就是野指针,与空指针不同。

4、虚函数与纯虚函数的区别

       虚函数:用于动态绑定,动态表示在程序运行的时候绑定要调用的函数。需要函数实现

       纯虚函数:虚基类。没有函数实现,子类中中必须有函数实现

      虚基类不能创建对象

5、指针相减是已元素为单位不是字节

posted @ 2014-03-11 21:38  yexuannan  阅读(124)  评论(0编辑  收藏  举报