- 博客(36)
- 资源 (14)
- 收藏
- 关注
原创 C语言的那些小秘密之异常处理
很多读者在此之前可能根本没有使用或者听说过C语言的异常处理,印象中都是C++或者java才有的东西,C语言怎么会有异常处理呢?当然估计在大学出于一般的性的学习考试之类的话老师几乎是不会提及C语言的异常处理的,那么到底什么是异常处理?C语言中又该如何来实现异常处理呢?那么我们今
2011-08-04 11:01:06
13303
3
原创 C语言的那些小秘密之预处理
预处理是C语言的一个重要知识点,它能改善程序设计的环境,有助于编写易移植、易调试的程序。因此,我们有必要掌握好预处理命令,在自己编程的时候灵活的使用它,使得编写的程序结构优良,更加易于调试和阅读。接下来我尽可能的把预处理中重要知识点向读者讲解清楚,使读者能够在自己以后编程的过程中
2011-08-01 08:27:33
14829
17
原创 C语言的那些小秘密之volatile
volatile的重要性对于搞嵌入式的程序员来说是不言而喻的,对于volatile的了解程度常常被不少公司在招聘嵌入式编程人员面试的时候作为衡量一个应聘者是否合格的参考标准之一,为什么volatile如此的重要呢?这是因为嵌入式的编程人员要经常同中断、底层硬件等打交道,而这些都用
2011-07-30 08:31:05
31947
5
原创 C语言的那些小秘密之链表(四)
大多数的读者在学习编程语言的时候都不喜欢那些枯燥的文字描述,包括我自己在开始学习编程的时候也是这样,对于代码的热情远远高于文字,所以我在我写东西的时候也不喜欢用枯燥的文字描述来向读者讲解,更喜欢用代码加上适当的文字描述的方式进行讲解,因为有些东西可能用枯燥的文字描述半天还不如实实
2011-07-28 08:29:19
11388
5
原创 C语言的那些小秘密之链表(三)
在开始写linux内核双向循环链表之前,我一直在想我要不要用长篇大论的文字来描述linux内核双向循环链表呢?经过认真的思考之后,我否决了用枯燥的文字向读者描述linux内核双向循环链表的想法,因为对于编程语言来说我相信大多数的读者都应该不喜欢面对枯燥的文字,更喜欢看到代码,同时
2011-07-28 08:28:56
8647
5
原创 C语言的那些小秘密之字节对齐
可能有不少读者会问,字节对齐有必要拿出来单独写一篇博客嘛?我觉得是很有必要,但是它却是被很多人所忽视的一个重点。那么我们使用字节对齐的作用和原因是什么呢?由于硬件平台之间对存储空间的处理上是有很大不同的,一些平台对某些特定类型的数据只能从某些特定地址开始存取,如通常有些架构的CP
2011-07-26 09:34:21
17509
46
原创 C语言的那些小秘密之链表(二)
除了个别天才程序员外,没有人一开始就能写出让人惊叹的代码,都是从模仿开始的!不要相信你身边的人说他能很轻松的自己编写出让人惊叹的代码而不用任何的参考资料,因为我相信在你我的身边没有这样的天才程序员,所以我们都选择从模仿和阅读源代码开始。就好比一个优秀的作家不是一开始就能写出好的文
2011-07-24 13:39:34
8686
8
原创 C语言的那些小秘密之链表(一)
链表,一个对于学习过C语言的人都是再熟悉不过的概念了,可能很多学习过链表的人都觉得链表没什么值得太在意的地方,可是如果你走进linux内核,去看看linux内核里面链表的实现方式,你不得不为之惊叹。可能有人会觉得linux内核链表实现方式仅此而已,但是你要知道,如果你没有见到这样
2011-07-23 17:08:16
9952
4
原创 C语言的那些小秘密之动态数组
摘要的重要性是不言而喻的,每次发文章我都很纠结如何写出一个有特色的摘要来,能够以最为简短的文字向读者描述出我所要表达的东西。但是常常出现的问题是,摘要写得太简短了,读者看了不清楚文章究竟要讲啥;摘要写得稍微长点的话自然能够描述清楚所要表达的东西,但是却也出现了另外一个问题,就是读
2011-07-21 16:21:28
66818
56
原创 C语言的那些小秘密之断言
每次写摘要我都觉得是一件很头疼的事儿,因为我知道摘要真的很重要,它几乎直接就决定了读者的数量。可能花了九六二虎之力写出来的东西,因为摘要的失败而前功尽弃,因为绝大多数的读者看文章之前都会浏览下摘要,如果他们发现摘要“不对口”,没有什么特色和吸引人的地方,那么轻则采用一目十行的方法
2011-07-19 13:24:23
20839
35
原创 C语言的那些小秘密之指针(四)
正如前一篇博客所说的,但凡人都是急功近利和有惰性的,都不喜欢花时间去阅读那些我们认为枯燥的文字描述,喜欢直接进入主题。但是有时候恰恰就是因为我们的这种急功近利和惰性,使得我们绕了很大一个弯,到最后还是回到了文字描述上来,所以我觉得适当的文字描述下,让读者对于文章的整体有个大概的认
2011-07-18 09:19:08
5840
9
原创 C语言的那些小秘密之指针(三)
但凡人都是急功近利和有惰性的,我就是个例子。不想每篇博客都写一个摘要和那些大段的文字描述,但是为了让一些新的读者朋友了解我的博客内容,我还是像前面说的那样,把第一篇关于指针的摘要搬过来,因为我写的这几篇都是关于指针的,所以没有必要每篇一个摘要,在此就偷偷懒了,如果读过我前面两篇C
2011-07-17 21:29:34
6169
原创 C语言的那些小秘密之指针(一)
懂得C语言的人都知道,C语言之所以强大,以及其自由性,绝大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。所以从我的标题加了个(一)也可以看出指针的重要性,我尽可能的向大家交代清楚我对于指针的理解。所以在讲解的过程中我尽可能的用代码加文字的描述方式,通过代
2011-07-17 17:04:09
7709
4
原创 C语言的那些小秘密之const修饰符
或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌生。那么到底什么是const修饰符,我们在自己编写C语言代码的过程中又该如何有效
2011-07-09 22:13:20
17902
15
原创 C语言的那些小秘密之函数的调用关系
显示函数的调用关系是调试器的必备功能,如果我们在程序的运行中出现了崩溃的情况,通过函数的调用关系可以快速定位问题的根源,懂得函数调用关系的实现原理也可以扩充自己的知识面,在没有调试器的情况下,我们也可以自己来实现显示函数的调用关系。在我们自己动手写backtrace函数之前,先来
2011-07-08 15:09:49
8640
原创 C语言的那些小秘密之变参函数的实现
在学习C语言的过程中我们可能很少会去写变参函数,印象中大学老师好像也没有提及过,但我发现变参函数的实现很巧妙,所以还是特地在此分析下变参函数的实现原理。无需标准C的支持,我们自己写代码来实现。先来看看一个实现代码:#include #define va_li
2011-07-07 14:16:36
11751
1
原创 C语言的那些小秘密之函数指针
我们经常会听到这样的说法,不懂得函数指针就不是真正的C语言高手。我们不管这句话对与否,但是他都从侧面反应出了函数指针的重要性,所以我们还是有必要掌握对函数指针的使用。先来看看函数指针的定义吧。函数是由执行语句组成的指令序列或者代码,这些代码的有序集合根据其大小
2011-07-05 15:10:08
14905
4
原创 C语言的那些小秘密之堆栈
在讲解堆栈之前,我们先要来说说其实我们常说的堆栈是两种数据结构。那么什么是堆什么又是栈呢? 栈,是硬件。主要作用表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读
2011-07-04 15:37:20
8988
5
原创 GCC内嵌汇编(三)
接下来是GCC内嵌汇编最后一部分了, 可能看起来讲的先后顺序有些乱,但是个人习惯吧,前面如果有些地方不明白的,看了后面的应该就清楚了。如果还是有疑惑的话,自己组织下内容效果更佳。匹配限制符 I386 指令集中许多指令的操作数是读写型的(读写型操作数指先读取原
2011-07-03 16:44:29
4676
原创 GCC内嵌汇编(二)
接着上章节的内容继续讲,GCC编译内嵌汇编代码的步骤如下: 1. 输入变量与占位符 根据限定符和破坏描述部分,为输入和输出部分的变量分配合适的寄存器,如果限定符指定为立即数(“i”)或内存变量(“m”)则不需要该步骤,如果限定符没有具体指定输入操作数的类
2011-07-03 16:37:47
3239
原创 GCC内嵌汇编(一)
由于工作的需要,所以花了几天时间从网上找了不少资料学习了一下GCC内嵌汇编,在此把我所认为比较重要的部分跟大家分享下,同时也在此感谢那些发表GCC内嵌汇编相关文章的作者!在此也希望我整理的资料对需要学习GCC内嵌汇编的朋友有所帮助。因为内容比较多,所以我特地把
2011-07-03 16:22:14
5335
原创 AT&T汇编
AT&T汇编和8086汇编语言虽然两者很相似,但是还是不能根据8086的语法规则来读AT&T汇编的吧,所以还是要看看AT&T汇编的语法规则,因为在读内核代码时,跟硬件打交道的部分代码是用AT&T汇编编写的,所以不可避免的会遇到AT&T汇编,下面先来看看AT&T
2011-07-03 13:34:01
26539
原创 C语言的那些小秘密之内存分配
realloc()函数原型:extern void *realloc(void *mem_address, unsigned int newsize);语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。 头文件:#include
2011-07-03 13:06:57
7844
2
原创 size_t的秘密
今天在看一个经典的双链表的时候看到了一个类型size_t,这个类型在此之前也经常见到,但是并没有太在意,一直都把他当成整形在用,但是在分析双链表的代码时发现了一个问题,跟我理解的有些出入,但是运行代码他的写法却是对的,于是就开始找我理解出错的地方,从头看了一遍,发现唯一的问题就是size_t类型,上网搜索了一下,讲解的并不多,一般都说把他当int用,于是自己写了一个代码测试下,代码如下:#incl
2011-06-23 16:37:00
10607
5
原创 指向临时变量的指针的返回
一直以为对于函数返回的指针了解得还可以,但是真实不用不知道,一用吓一跳。今天在一篇博客上面看到如下两段代码,博客的作者给出了一个问题,但是并没有解释为什么不同。自己通过实验给出了解释,但是不知道对不对,仅供参考!下面是个错误的例子:char* get_str(void){ char str[] = {"abcd"}; return str;}int main(int argc, ch
2011-06-22 21:36:00
6528
17
原创 ubuntu环境下Qt运行的常见错误:GLib-GIO:ERROR
闲话就不多少了,直接给出解决方案吧。出现如下错误:GLib-GIO:ERROR:/build/buildd/glib2.0-2.28.6/./gio/gdbusconnection.c:2279:initable_init: assertion failed: (connection->initialization_error == NULL)Aborted解决办法root@ubuntu:/hom
2011-06-16 14:01:00
6932
6
原创 Opencv常见的内存泄露错误
今天花了一个晚上的时间帮一个网友调试opencv的代码,出现了不少错误,其中主要的错误给出它的主函数来分析下:#include "iostream"#include "stdio.h"#include "cv.h"#include "highgui.h"//#
2011-03-10 21:50:00
6320
原创 Linux环境下的Qt添加OpenCV的配置
看似简单的东西却搞了好久,汗~~~首先是已经成功的在linux环境下安装了Qt,我的是ubuntu10版本的,接下来我所讲的都是关于在此环境下的,如有不同请根据具体的版本安装。首先打开ubuntu10的软件中心如下图所示:点击ubuntu软件中心,出现如下窗口
2011-03-10 13:15:00
8340
原创 Qt学习之如何启动一个线程
<br />以前看过在linux下C编程的线程书籍,今天来看看Qt如何启动一个线程吧,代码就以精通Qt4编程的为例<br />先来给出每个文件的相关代码然后再加以分析<br />//*************dialog.h**************//<b
2011-03-09 10:52:00
9099
原创 Qt之opengl:错误: 无法打开包括文件:“gl/glut.h”: No such file or directory
我使用的是vs2008,相信vs2005应该跟这个步骤差不多,运行的时候总是提示:fatal error C1083: 无法打开包括文件:“GL/glut.h”: No such file or directory这个时候就要进行相应的如下操作:下载GLUT工
2011-03-06 09:42:00
37047
13
原创 Qt之QtNetwork: No such file or directory 解决方法
<br />在编译聊天工具的过程中,出现了一个问题,其相应的提示为: error: QtNetwork:No such file or directory 没有那个文件或目录<br />解决方法:<br />只需要在.pro中的# INPUT下方加入QT +
2011-03-06 01:08:00
13777
原创 Qt 按钮如何实现背景图片的加载
一个简单的按钮图片加载代码,一般人出现的问题都是加载的图片可能会很小,怎么解决这个问题呢?来看看下面的代码吧,对于相关的迷惑点我会给出讲解,同时在学习这个代码的过程中我们也学学其他的一些功能实现。如何显示中文、如何设置字体以及颜色等。#include以上便是#
2011-02-28 18:54:00
10140
3
原创 Qt 飞舞的蝴蝶
<br />用Qt实现一群飞舞的蝴蝶,看起来还是蛮漂亮的,下面来给出代码吧,难度不大,也没有什么好分析的,就简单的写了点注释,在我的资源空间也上传了代码,需要的可以去下载。如果运行过程中有什么疑问的话可以留言于本人联系。<br /> <br />//*****
2011-02-27 16:19:00
3799
1
原创 Qt 背景的添加
如有转载必须注明出处,欢迎共同学习交流所用。<br />今天断断续续的花了一天的时间才搞定这个问题(汗~~~),刚开始在网上收了几个相关代码,也还都能运行,但是都跑不出来所要的效果。然后又跑到Qt开发交流群里去找高手请教,问了很多人,要么就是很久没有用Qt了,
2011-02-25 20:15:00
1748
原创 学习Linux内核模块编写总结
在学习编写Linux内核模块的时候我们首先要清楚的知道内核模块的作用,为什么要使用内核模块?这是因为Linux内核的整体结构非常的庞大,包含的组件也非常的多,把所有的内核模块都编译到Linux内核,会导致的问题是内核很大,同时在现有的内核新增或删除部分功能时,
2011-02-25 17:07:00
2915
原创 Linux下C编程习惯
大学期间刚开始学习C语言时,我对于编程的要求不屑一顾,所以别人在参考我的代码的时候总是会说我写的“太乱”,当初我自己对于代码的要求就是自己能懂就行了。当我要踏入社会的时候我发现我必须要改掉这个不好的习惯,因为工作后不是简简单单的只要自己看懂就行了!下面就来简单
2011-02-25 16:45:00
2409
1
Glut 用于vs2008或者vs2005下编写opengl的加载文件
2011-03-06
Mini6410 Qt4和Qtopia编程开发指南-20101228.pdf
2011-03-05
Linux+下编译并安装配置+Qt+全过程+
2011-03-01
Qt编程实现 飞舞的蝴蝶 动画
2011-02-27
用Qt写方块游戏教程和源码
2011-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人