太过于慵懒了,一个多月没有来自己的园子播种了。还是给自己找找借口吧,十二月末备战期末考试也是自己没心情码文字的理由吧,一月份理所当然地进入考试周,回家后做了个小手术也是客观上让自己不能静下心来回顾知识点,不能及时开启新篇章的原因吧~~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. 值得赞扬的尝试与进步——CSDN开源夏令营第一印象

    注:写这篇文章时我并未參加CSDN开源夏令营,也不确定是否会參加以及是否能參加上. 欣闻CSDN举办了"CSDN开源夏令营"活动.第一感觉是CSDN作为活动的组织者是很值得称赞的. ...

  2. codechef Chef and The Right Triangles 题解

    Chef and The Right Triangles The Chef is given a list of N triangles. Each triangle is identfied by ...

  3. Effective C++ Item 36 绝不又一次定义继承而来的 non-virtual 函数

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:绝对不要又一次定义继承而来的 non-virtual 函数 --> Item 7 ...

  4. LeetCode总结 -- 高精度篇

    我们常见的一些主要的数据结构比方整型int或者浮点型float由于位数过多无法用内置类型存储,这时候我们就须要自己实现高精度的数据类型来进行存储和运算.这样的问题在实际产品中还是比較有用的,所以相对来 ...

  5. iOS-BLE蓝牙开发

    Demo地址:WEBlueToothManager 在写这个博客之前,空余时间抽看了近一个月的文档和Demo,系统给的解释很详细,接口也比较实用,唯独有一点,对于设备 的唯一标示,网上众说纷纭,在这里 ...

  6. android 抽屉式滑动demo

    下载地址:https://github.com/asijack/AndroidDrawerDemo 直接上效果图如下: 是不是还不错的样子. 先看看布局文件吧 <android.support. ...

  7. Java 动态代理(转)

    一.代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后 处理消息等.代理类与委托类之间通常会存在 ...

  8. ExpandableListView 箭头样式

    ExpandableListVivew是ListView的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里 又可包含多个列表项.ExpandableListVive ...

  9. 【deep learning学习笔记】Recommending music on Spotify with deep learning

    主要内容: Spotify是个类似酷我音乐的音乐站点.做个性化音乐推荐和音乐消费.作者利用deep learning结合协同过滤来做音乐推荐. 详细内容: 1. 协同过滤 基本原理:某两个用户听的歌曲 ...

  10. 提前防止Non-PIE错误,检测app是否包含PIE标志

    //Howard 2013-07-19 //如何检测app是否包含PIE标志? 答:使用xCode自带的otool工具. otool程序在Xcode.app/Contents/Developer/us ...