代码改变世界

GNU C - 一个别致的HelloWorld程序 引申到: __attribute__((constructor)|(destructor)(PRIORITY))

2012-07-09 04:22 by respawn, 12106 阅读, 3 推荐, 收藏, 编辑
摘要:在前面的>关于object files的内容中,有看到使用自定义段的部分内容,(如果关于object files的内容不了解的话,可以去参考>这本书或者去wiki,其中也有关于段的解释,也可以称作节区.) 可以通过硬编码实现自定义段. __attribute__ ((section("name"))) .....编译生成的object file,代码会保存在".text"段,全局变量和静态变量会放在".data"和".bss"(未初始化的全局变量和局部静态变量)利用GCC的扩展机制就可以做到自定义段了. 阅读全文

C复习篇 - 使用Posix标准线程库 Porgramming with Pthread

2012-07-08 16:38 by respawn, 2360 阅读, 0 推荐, 收藏, 编辑
摘要:Programming with pthread? what is Pthread?Pthread,作为C/C++编程的标准线程库,其实它是POSIX Standard thread library. 那么,怎么去理解POSIX标准呢? 下面给一些资料的链接,有兴趣的可以自己去查看. 1. http://zh.wikipedia.org/wiki/POSIX 2. standards.ieee.org/findstds/standard/1003.1-2008.html 3. www.opengroup.org/austin/papers/posix_faq.html 4. www.unix. 阅读全文

学习工具篇 - eclipse 结合cdt EGit 插件的使用

2012-07-05 09:22 by respawn, 4092 阅读, 1 推荐, 收藏, 编辑
摘要:在前面的一片文章中,随便的介绍了一下emacs + cscope + xcscope阅读源码.今天这篇文章就介绍一下eclipse,安装相关插件也能够起到和上面emacs安装插件后结合终端svn/git 使用的效果~ 为了简洁和方便,我一般很少安装IDE,但是eclipse例外,因为 它可以支持多种语言的开发.用起来很方便.1. 安装eclipse cdt 插件:相信很多人都有配置过eclipse + cdt 插件,配置的过程很简单,就简单的介绍一下.因为相关的文章很多. 从eclipe的菜单选项中选择Help -> Install New Softwware,然后去添加上cdt插件的官 阅读全文

学习工具篇 - 还在为寻找合适的源码工具烦恼吗?

2012-07-02 20:25 by respawn, 3042 阅读, 1 推荐, 收藏, 编辑
摘要:这篇博文和前面的篇文章是衔接的,也算是一点点补充吧. 在前文中说过关于阅读源码可以提高自己的修养~ 对于源码的阅读,无非就是选中一个自己认为适合自己的源码包,然后去阅读和学习.这里就有一个问题了,你使用什么样子的工具阅读呢? 使用vi? 或者是win下的记事本?虽然很多的源码都是模块化开发的,在阅读的时候选中一个小模块,然后慢慢琢磨就可以了.但是在源码阅读的过程中总是需要查找的功能的,一般的文本编辑器只能实现在一个文件中的指定查找,功能有限.不过,你也可以使用IDE阅读源码,方法很多,随自己喜欢吧.其实,我们还是有其他选择的.解决的办法是什么呢? emacs/vim会给我们答案.我已经不使用v 阅读全文

程序员的自我修养 - 符号修饰 函数签名 以及一个引申的问题: extern "c"

2012-06-30 21:35 by respawn, 2449 阅读, 1 推荐, 收藏, 编辑
摘要:由于最近都在忙着复习考试,所以自己的读书笔记也就落下了. 现在只剩下最后的单片机了,还有四天时间,现在复习?算啦,等到最后一天再说吧. ~~额 慢慢的我已经习惯这节奏,喜欢上裸考的心跳~关于目标文件的相关知识,其实还是蛮多的.我能做到的就是选取自己需要的知识去学习.(其实是自己能理解和在时间不浪费的情况下去选取值得学习的知识,从大体上去掌握.这可能和研究这些编译链接的细节的最初出发点是相违背的,最初的出发点是想要弄清楚细节,但是从另外一个角度来思考,重点是编译和链接,对于这其中的小细节,忽略也是可以接受的).一、如何引申出符号修饰与函数签名的概念?小生有仔细的思考过这个问题,但是最后还是选择总 阅读全文

大三小生浅谈如何学C

2012-06-30 00:37 by respawn, 1731 阅读, 4 推荐, 收藏, 编辑
摘要:这篇算是自己的随想录吧,反正考试周,寂寞的要死~ 我想说的是:考试周,去你的~1. 首先学习标准C. 学习C,当然先从标准C学起了,如果你对标准C模糊的话,那么请去google吧,实在不行就度娘.直到搞明白为止,要不然 说其他的等于没说. 标准C学习推荐一本比较好的书 - >. 个人感觉这本书还不错. 看完这本书就可以尝试去了 解一下C标准库了,同样有本书推荐 - >.2. 你喜欢的是windows还是*nix? 不要告诉我说,你一直都是使用windows,不知道什么是*nix.我想,要是一个IT的孩纸不知道*nix,悲剧的程度无法想象.要是你 说你只会*nix,不会windows 阅读全文

程序员的自我修养 - 目标文件

2012-06-24 09:52 by respawn, 390 阅读, 0 推荐, 收藏, 编辑
摘要:有点坑爹,刚才写的文章,现在要重新写过.在上篇博文中,最后生成的是object files,也就是目标文件.目标文件在不同的平台,有不同的种类.windows下就有流行的PE(Portable Executable),linux下有ELF(EXECUTABLE LINKABLE FORMAT).我只关心linux下的.查阅了一些资料,这里总结一下.先来看一下ELF的文件类型.首先看看我们生成的helloworld.o的文件类型.这里是什么意思?慢慢解释.在书中,作者添加了一种:核心转储文件(Core Dump File) 当进程意外终止时,系统可以将该进程的地址空间的内同及终止时的一些其他.. 阅读全文

程序员的自我修养 - 被隐藏的过程

2012-06-24 08:55 by respawn, 599 阅读, 0 推荐, 收藏, 编辑
摘要:>是用hellowolrd开始说起的,我也不能免俗,也从helloworld说起.(又是一个helloworld,自从与编程结缘,就和helloworld挂钩了.)编译的过程可以分为四个阶段,分别是:Preprocessed(预处理), Compilation(编译), Assembly(汇编), Linking(链接).在不同的阶段,需要使用不同的工具处理.举个例子,在使用gcc编译程序的时候,最简单的命令就是: gcc helloworld.c背后的机制是: gcc会调用工具执行预处理,编译,汇编,链接,最后产生二进制可执行文件.借用一句简单的话解释就是:gcc这个命令只是这些后台程 阅读全文

程序员的自我修养 - 新的起点

2012-06-24 07:38 by respawn, 439 阅读, 1 推荐, 收藏, 编辑
摘要:开始的时候,就着重推荐一下>这本书,的确是本好书.虽然自己现在看得还不多,但是已经很明显的感觉到书中的内容对自己的帮助很大.如果你是一个C/C++程序员,又苦于段时间内处于停滞不前的状态,那么可以阅读一下这本书,会找到答案的.就像>这本书在第二章开始的时候说道的一样,现在很多IDE已经帮我们处理了项目的构建,操作起来也是很简单的.我们需要做的只是build project,然后run or debug.不错,IDE确实是提高了开发的效率,而且现在的IDE做的越来越人性化,功能也是越来越齐全.别的不说,大名鼎鼎的VS可是拥有很多用户的.另外知名的IDE还有像eclipse,netbe 阅读全文