太过于慵懒了,一个多月没有来自己的园子播种了。还是给自己找找借口吧,十二月末备战期末考试也是自己没心情码文字的理由吧,一月份理所当然地进入考试周,回家后做了个小手术也是客观上让自己不能静下心来回顾知识点,不能及时开启新篇章的原因吧~~O(∩_∩)O~~

  嘿嘿,我可不是欲扬先抑,下面总结一下近期的学习成果吧。十二月份,主要将《深入理解计算机系统》第三章结束了,再加上自己做了一点小小的实践,渐渐地可以读懂简单的反汇编出来的代码了,利用GDB的反汇编功能调试core dump/segment fault一类的错误的确是有助于自己从根本上了解程序的工作过程。结合书中对原理的阐释,觉得这种边学边用的方法对理解概念掌握方法还是很有帮助的。

  在学习之余,发现自己对于C语言的熟练使用还是有待于提高,所以这段日子自己学习了一下关于c语言进阶的一些知识,并且利用闲暇的时候写写c语言100例上面的小题,俗话说,不积跬步无以至千里,我可不能让自己的知识成为空中楼阁,应该在不断地锻炼中才能让自己更好的成长。结合着对于汇编知识的理解,我发现自己对于c中比较“偏僻”的指针数组,函数指针等概念能够想明白其所以然了,另外,理解static时,能够从存储上将其理解为存储在静态区便很好地了解它的作用域和生命周期了。还有很多以前自己不常用的关键字,以后也要尝试着使用,比如union,以前总是搞不清楚它和struct之间的关系,这回从它的存储上理解起来就很明确了,union的变量实际上是存储在同一个地址上面的,当初定义它主要是为了节省空间,尽可能地实现地址的复用。而struct则是按照顺序存储的,提到这里,为了不误导自己也不误导将来可能读到这篇文章的人,再啰嗦一下struct的存储机制吧,struct中的字节在IA32的系统中是按照一定的规则由编译器补全存储空间的。short的起始地址必须是偶数,float、int的起始地址必须是4的倍数,double的则必须是8的倍数,简言之,起始地址必须是自己的长度的整数倍(单位Byte),做网络通信和对存储要求较严格的时候要引起重视!!!如果不清楚某一数据类型的长度那就百度一下吧,自己动手丰衣足食嘛~

  另附一个小例子方便自己理解union,又可以测出系统是大端/小端:

    int checkSystem( )
    {
          union check
        {
            int i;
            char ch;
          } c;
            c.i = 1;
        return (c.ch ==1);
    }

  若为1则小端,若为0则为大端,关于大小端的阐释在以前的博文中有过探讨(忘了就回去看吧,应该不会忘了~~)。

  接下来,再絮叨一下自己写代码不规范的问题,以后要注意将文件的相关介绍、创作日期、自己的名字写在开始的注释部分,尤其是文件的介绍,否则时间久了自己都会忘记写这个文件的初衷。另外,在函数的前面要注释上它的功能和每个参数的作用(方便自己或别人重复使用),最好添加上在哪里调用了它(尤其是在实验室做项目的时候)。

  今天,我决定跳过《深入理解计算机系统》一书中关于处理器原理和性能优化的章节,直接学习存储器的结构一章,一来是自己对存储器的工作过程有一定的了解,对相关名词也都相对熟悉,就是进一步把知识点学细、学精。相对而言,处理的一些需要记忆的Y86编码就比较生涩,虽然与汇编代码有着很高的相似度,但自己还是读起来有些困难,所以今天开始了我的存储器之旅,对SRAM和DRAM有了进一步的了解,基本理解了主存DRAM的工作模式。对这一部分内容算是简单地开了个头吧~~~

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~感恩生活,继续学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                                                                     Bill 

    

  

2013年末、2014年初合辑——关于c语言的进阶学习的更多相关文章

  1. 【OpenCV新手教程之十二】OpenCV边缘检測:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...

  2. 【OpenCV新手教程之十八】OpenCV仿射变换 & SURF特征点描写叙述合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨)  ...

  3. 【OpenCV新手教程之十七】OpenCV重映射 & SURF特征点检測合辑

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨)  ...

  4. [OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    http://blog.csdn.net/poem_qianmo/article/details/25560901 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog ...

  5. 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    http://blog.csdn.net/poem_qianmo/article/details/26977557 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog ...

  6. 【OpenCV新手教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

  7. 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

    [Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...

  8. SSH三大框架合辑的搭建步骤

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  9. SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇, 最终的解决方案 验证。

    SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇. 1,安装数据库,我就不多说安装,客户一定要注意. 我将参照以下实施例和账户. 2,建立DNS,假设没有DN ...

随机推荐

  1. 一道java面试题-方法静态分派

    一道面试题,以下程序的输出是? public class StaticDispatch { static abstract class Human{ } static class Man extend ...

  2. Zookeeper 编程

    ZooKeeper编程(一) 杂记 ZooKeeper的用途:distributed coordination;maintaining configuration information, namin ...

  3. 编写可维护的JS 06

    7.事件处理 //典型用法 function handlerClick(event){ var popup = document.getElementById('popup'); popup.styl ...

  4. 编写可维护的JS 05

    5.UI层的松耦合 松耦合定义 每个组件尽量独立,修改一个不影响其他的组件 将Js从css中抽离 不要使用css表达式,因为浏览器会以高频率重复计算css表达式,严重影响性能,IE9不支持表达式 将C ...

  5. SQL serve创建与调用存储过程

    (1)创建 2编写存储过程(创建传参的存储过程)存储过程语法网络上很多不在累述 语法解析 Use Person 指定在那个数据库下建立存储过程 if (object_id('MyFunction', ...

  6. for循环计算某个数的阶乘、阶乘和及其倒数的阶乘和

    //4的阶乘 int jc = 4; //定义一个变量用来代表要计算的数值 long jd =1; //定义最终输出的阶乘 for(int i = 1; i <= jc;i++) //定义循环加 ...

  7. spring mvc 非注解形式

    目录(?)[+] webxml配置文件 注如果使用注解可以加上-- servlet上下文配置文件 test-servletxml 实体类Empjava StartController控制器 控制器Em ...

  8. windows8 安装IIS 和 添加网站(转)

    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.最初是Windows NT版本的可选 ...

  9. Mysql笔记之 -- 小试MYSQL主从配置

    mysql主从配置: 硬件: 两台服务器 1.Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-60-generic-pae i686)  2.Ubuntu 12.04.4 LT ...

  10. 重拾javascript动态客户端网页脚本

    笔记一: 一.DOM 作用: ·              DOM(Doument Object Model) 1.document文档 HTML 文件 (标记语言) <html> < ...