2013年末、2014年初合辑——关于c语言的进阶学习
太过于慵懒了,一个多月没有来自己的园子播种了。还是给自己找找借口吧,十二月末备战期末考试也是自己没心情码文字的理由吧,一月份理所当然地进入考试周,回家后做了个小手术也是客观上让自己不能静下心来回顾知识点,不能及时开启新篇章的原因吧~~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语言的进阶学习的更多相关文章
- 【OpenCV新手教程之十二】OpenCV边缘检測:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...
- 【OpenCV新手教程之十八】OpenCV仿射变换 & SURF特征点描写叙述合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨) ...
- 【OpenCV新手教程之十七】OpenCV重映射 & SURF特征点检測合辑
本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨) ...
- [OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
http://blog.csdn.net/poem_qianmo/article/details/25560901 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog ...
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
http://blog.csdn.net/poem_qianmo/article/details/26977557 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog ...
- 【OpenCV新手教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...
- 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇
[Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...
- SSH三大框架合辑的搭建步骤
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇, 最终的解决方案 验证。
SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇. 1,安装数据库,我就不多说安装,客户一定要注意. 我将参照以下实施例和账户. 2,建立DNS,假设没有DN ...
随机推荐
- 程序猿的量化交易之路(20)--Cointrader之Assert实体(8)
转载需说明出处:http://blog.csdn.net/minimicall, http://cloudtrade.top 不论什么可交易的都能够称之为Assert,资产.其类代码例如以下: pac ...
- 分布式ElasticSearch简单介绍
这里我们解释一些通用的术语,比如集群(cluster).节点(node)和分片(shard).Elasticsearch的扩展机制,以及它怎样处理硬件故障.在此将探索怎样创建你的集群(cluster) ...
- c_str()
1.string类成员函数c_str()的原型: const char *c_str()const;//返回一个以null终止的c字符串 2.c_str()函数返回一个指向正规c字符串的指针,内容和s ...
- 解决URL请求中的中文乱码问题
解决URL提交中文出现乱码有两种办法:1.请求端的中字符有encodeURI进行一次转码,如: var url="/getUser?name="+encodeURI(name);服 ...
- ubuntu10.04 安装NVIDIA GT 420M驱动
安装ubuntu已经好几天了,由于显卡驱动没装,屏幕在600X800下的效果很难看,于是就想办法,查阅资料终于安装成功了,下面将我的安装方法记录下来以供大家参考. 借鉴:ubuntu12.04下安装N ...
- pushViewController自定义动画
实现的主要代码如下: CATransition *transition = [CATransition animation]; transition.duration = 1.0f; transiti ...
- python 实现单链表
#! /usr/bin/env python ### ### Linked List python implementation ### ### @reference Data Structures ...
- 关于Connection must be valid and open.
这个Bug真心很操蛋! 我的网站在公司做的运行一切都没问题,回家后咋自己的电脑上出现了Connection must be valid and open.这个问题. 我最后还是在英文网站的一个不起眼的 ...
- 智能电视TV开发---直播视频客户端结构设计和实现
在智能电视TV开发---客户端和服务器通信里面我们实现了客户端和服务端的简单通信,接下来我们做一个简单的客户端界面,来实现手机端来操控智能电视的TV端. 一.存储视频的结构设计 我们在做客户端的时候, ...
- Notes常用事件整理
① ボタンのクリック事件: Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDo ...