上一页 1 ··· 9 10 11 12 13
  2012年4月30日
摘要: 第七章一、知识点1、作为80x86内存模型最基本的形式,8086中的段是一块64K的内存区域,由一个段寄存器所指向。内存地址的形成经过是:取得段寄存器的值,左移4位(相当于乘上16),或者换中思路,把段寄存器的值看成是20位的,也就是在值得右边扩充4个0。然后就是16位的偏移地址,它表示段内的地址。如果把段寄存器的值(经过移位)加上偏移地址,就得到最终的地址。不同的段地址加上偏移地址所形成的值可能指向同一个内存地址。(P146)2、讨论数字概念时,需要注意所有的磁盘制造商都是使用十进制数而不是二进制数来表示的磁盘的容量。所以2GB的磁盘可以存储2000000000个字节的数据而不是214748 阅读全文
posted @ 2012-04-30 23:20 谷堆旁边 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 第六章一、知识点1、代码和数据的区别也可以认为是编译时和运行时的分界线。编译器的绝大部分工作都跟翻译代码有关;必要的数据存储管理的绝大部分都在运行时进行。(P121)2、"a.out"是“assembler output(汇编程序输出)”的缩写形式。(P121)3、就目标文件而言,段(segments)是二进制文件中简单的区域,里面保存了和某种特定类型(如符号表条目)相关的所有信息。一个段一般包含几个section。段表示一个二进制文件相关的内容块。(P122)4、一个可执行文件一般包含三个段:文本段、数据段、bss段(由符号开始的块)。BSS段只保存没有值得变量,所以事实 阅读全文
posted @ 2012-04-30 23:18 谷堆旁边 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 第五章一、知识点1、动态链接可以从两个方面提高性能:(1)、动态链接可执行文件比相同功能的静态链接可执行文件的体积小。它能够节省磁盘空间和虚拟内存,因为函数库只有在需要时才被映射到进程中。(2)、所有动态链接到某个特定函数库的可执行文件在运行时共享该函数库的一个单独拷贝。操作系统内核保证映射到内存中的函数库可以被所有使用它们的进程共享。这就提供了更好的I/O和交换空间利用率,节省了物理内存,从而提高了系统的整体性能。如果可执行文件是静态链接的,每个文件都将拥有一份函数库的拷贝,显然这极为浪费。(P100)2、使用函数库时的5个基本的约定:(P103)(1)、动态库文件的扩展名是“.so”,而静 阅读全文
posted @ 2012-04-30 23:16 谷堆旁边 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 第四章一、知识点1、C语言中的对象必须有且只有一个定义,但它可以有多个extern声明。定义是一种特殊的声明,它只能出现在一个地方,确定对象的类型并分配内存,用于创建新的对象;而声明可以多次出现,描述对象的类型,用于指代其他地方定义的对象(例如在其他文件里)例:extern int my_array[];extern对象告诉编译器对象的类型和名字,对象的内存分配则在别处进行。由于并未在声明中为数组分配内存,所以不需要提供关于数组长度的信息。对于多位数组,需要提供除最左边一维之外其他维的长度。(P88)2、编译器为每个变量分配一个地址(左值)。这个地址在编译时可知,而且该变量在运行时一直保存于这 阅读全文
posted @ 2012-04-30 23:11 谷堆旁边 阅读(282) 评论(0) 推荐(0) 编辑
  2012年4月12日
摘要: 时间限制:1000m 内存限制:65536kB描述Alex喜欢填词游戏。填词是游戏是一个非常简单的游戏。填词游戏包括一个N * M大小的矩形方格盘和P个单词。玩家需要把每个方格中填上一个字母使得每个单词都能在方格盘上找到。每个单词都能找到要满足下面的条件: 每个方格都不能同时属于超过一个的单词。一个长为k的单词一定要占据k个方格。单词在方格盘中出现的方向只能是竖直的或者水平的。 你的任务是首先在方格盘上找到所有的单词,当然在棋盘上可能有些方格没有被单词占据。然后把这些没有用的方格找出来,把这些方格上的字母按照字典序组成一个“神秘单词”。 如果你还不了解规则,我们可以具一个例子,比如在下图中.. 阅读全文
posted @ 2012-04-12 20:29 谷堆旁边 阅读(684) 评论(1) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13