- 博客(3)
- 资源 (8)
- 收藏
- 关注
原创 定义宏时千万不要把宏的“参数名”和宏中用到的结构体成员名相同!
C语言中的宏非常强大,可以利用宏来一些要经常用到的操作封装在一起,或者有时仅仅只是让代码看起来更整洁些,但是宏是没有类型检查的,所以使用时千万要小心。但是有时也可以利用宏的没有类型检查这个特性,实现一些特殊的需求。举个简单的例子来说,下面的两个函数:int conf_add_fd(conf_snd_t *conf_snd, int fd) { fd_snd_t *fd_snd =
2012-08-17 15:17:56 3035
原创 Intel X86中的中断、陷阱和异常
中断有两种,一种是CPU外部产生的,一种是CPU内部执行程序时产生的。 外部的中断通常是由外部设备产生的,并且这类中断的产生是异步的,根本无法预测这类中断什么时候产生,这类中断也就是通常我们所说的“中断”。当然,软件也可以关闭对这类中断的响应。CPU内部产生的中断也分为两种,一种是软件主动产生的中断,通常称为陷阱,例如执行int 0x80指令,还有一种是CPU检测到异常,通常称为异常,例如除
2012-08-10 09:39:29 3631
原创 只考虑节省空间造成的功能错误
在“经验教训”这个分类中,我会将自己工作过程中遇到的一些错误进行记录,防止以后再犯类似的错误,希望也能给其他人一些警示。其实在写代码的时候,每个人肯定都想将自己学到的一些忠告或者技巧应用在自己的代码中,但是如果利用不好,反而会弄巧成拙。有时,你遇见非常奇怪的BUG,大多数时候都是因为犯了一些你自己都认为“很二”的一些低级错误,或者过多地追求技巧。我今天犯的这个错误,就让我无比蛋疼。出现错误的代码如
2012-08-01 16:09:53 1594
Linux_C高级程序员指南.pdfLinux_C高级程序员指南.pdf
2011-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人