笔记
文章平均质量分 78
alice_yangmin
这个作者很懒,什么都没留下…
展开
-
c++中char *和char []的区别
问题引入: 在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。 程序演示: 测试环境Devc++ 代码 #include using namespace std; main() { char *c1 = "abc"; char c2[转载 2012-04-26 16:00:54 · 450 阅读 · 0 评论 -
深入理解计算机系统-----之 第七章 链接
链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或拷贝)到存储器并执行。链接可以执行于编译时,也就是在源代码被翻译成机器代码时;也可以执行于加载时,也就是在程序被加载器加载到存储器并执行时;甚至执行于运行时,由应用程序来执行。在早期的计算机系统中,链接是手动执行的。在现代系统中,链接是由叫链接器的自动执行的。 7.1 编译器驱动程序 大多数编译系原创 2012-04-25 19:32:37 · 1063 阅读 · 0 评论 -
静态库、共享库、动态库的创建和使用
通常库分为:静态库,共享库,动态加载库,。下面分别介绍。 一、 静态库: 1.概念: 静态库就是一些目标文件的集合,以.a结尾。静态库在程序链接的时候使用,链接器会将程序中使用 到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。 由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。 2.创转载 2012-04-26 09:23:10 · 387 阅读 · 0 评论 -
深入理解计算机体系结构-----之 第三章 程序的机器级表示
1.假设一个C程序,有两个文件p1.c和p2.c。我们在一台IA32机器上,用Unix命令行编译这些代码如下: unix> gcc -O1 -o p p1.c p2.c 实际上gcc命令调用了一系列程序,将源代码转化成可执行代码。首先,C预处理器扩展源代码,插入所有用#include命令指定的文件,并扩展所有用#define声明指定的宏。然后,编译器产生两个原创 2012-04-23 13:34:16 · 906 阅读 · 0 评论