- 博客(37)
- 资源 (14)
- 收藏
- 关注
原创 C中链表的几种算法实现(持续中……)
对于链表大家应该都是很熟悉了,不过这种熟悉只是属于理论上,知道它怎么一回事,知道它的插入、删除等等,这里不过是只是给出它的实现。当然也会涉及到一些简单算法的实现。比如冒泡算法是最简单的,一般的做法就是一轮一轮的从A端把“每轮中的最小值”移向B端中,这样循环下来就形成了有序排列。当然我们也可以把“最小值”改变下,变成“最大值”,而它移动的方向当然也是可以变化的,这个是很灵活的。现在就拿冒泡算
2013-04-22 21:05:21
1118
原创 形参有没const的区别
形参前面有没const,这里还是有点区别的。分几个情况看看:知道实参如果按值传递,则形参接收的只是实参的一个拷贝,对这个拷贝的任何操作都不会去改变实参,那么此时它加不加const都是一样,所以在有这样一种情况“尽管函数的形参是const,但是编译器还是将它定义为普通的函数”,如:void fun(const int i);void fun(int i);是一样的,这时会出现“重定义
2012-10-24 15:44:55
3579
原创 从长度指定的数组array中删除值等于v的元素
和之前一样,要求是一个函数,定义的是int remove(int *array, int n, int v){ //实现} 现在,我是写的一个main函数,删除数组中数字等于4的值。 #include #include #include #include int main(){ int a[8] = {3,4,5,7,2
2012-10-09 22:54:17
2208
原创 一个笔试题目,望更方便的算法
题目:unsigned int 型一个数组,按照比特位中“1”的个数对数组元素进行从小到大排序,如果含有“1”的个数相同,按从小到大排序,unsigned int 32位。 题目原意是写个函数就够了,不过为了验证,还是写了一个完整的程序,这样函数也好弄了嘛。当然,这个方法还是有点笨拙,望高手们再指点一二,改进下。那就不多说,直接贴代码了:#include #include
2012-10-07 22:03:56
772
原创 循环链表与约瑟夫问题
循环链表经常与约瑟夫问题涉及在一起,在解决约瑟夫问题之前,如果了解了循环链表(这里当然是指单向的了,不要想复杂了),那么约瑟夫问题就比较好解决了。1,循环链表的建立,打印。这里为了简单,只是开辟了5个空间,然后将其打印。#include #include typedef struct Link { int k; struct Link *next;}Li
2012-09-03 16:33:49
1066
原创 python串口编程整理(更新完)
python的串口网上有很多例子,这里了只是把认为好的整理到一起。首先,应该安装serial模块,还能开始后续的操作。我用的python2.6,serial模块可以在这里下载安装serial模块下载1,字符串的发送接收短接串口的2、3脚,创建一个文本,如:import serialt = serial.Serial('com12',9600)n = t.writ
2012-06-07 10:36:35
79410
2
原创 LINUX点滴积累(持续更新……)
这个会一直更新,把我还不会的整理一下,这里既可以方便我看,也方便添加,比在笔记本上手写来的欢快。好吧,首先来个序章: Let's GO!1,在本本上装了双系统后,感觉每次按键,都无意识的碰到触摸板,怎么关掉了。so easy:由于个人用的ubuntu 10.04,所以要先su或者sudo。——sudo modprobe -r psmouse 就关闭了触摸板,若要打开,则可
2012-06-04 20:40:31
1240
1
原创 PYTHON笔记之文件操作
可以通过创建一个file类的对象来打开一个文件,这与linux下的open不一样了。然后可以分别使用file类得read、readline或write方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。有”r“读模式、”w“写模式、”a“追加模式。对linux熟悉的话,这些也就很简单了。那么操作一个文件步骤也是一样的:1,打开文件;2,写入;3,关闭;4,再打
2012-05-18 11:19:10
920
2
原创 python简明教程中__del__的疑问
看到python简明教程的objvar.py这节,有关于__init__(初始函数),__del__(类似于析构函数)。代码如下:#Filename : objvar.pyclass Person : '''Represents a person.''' population = 0 def __init__(self,name):
2012-05-18 10:00:22
4109
原创 python第一个程序 运行在IDLE中
今天发现一本不错的python入门书籍,看了前几章,讲解了关于windown下编写python程序的方法。下面就稍微作下笔记,顺便提及下,python掌握后学起来确实比较简单。好了,不多说了,作个笔记 吧。编程之前,首先要知道在哪里和用什么方法键入我们的程序。所以,我们需要使用一个文本编辑器,在windonws下是利用txt记事本,它能把程序保存到硬盘上。IDLE提供了一个文本编辑器,比记
2012-05-09 20:22:21
9244
原创 linux下出现段错误怎么排错
之前调试程序出现“segmentation fault”,即为常见的段错误。查了些资料,做个总结吧。产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其是常见的访问0地址。在编程中以下几类做法容易导致段错误,基本是错误的使用指针引起的:1)访问系统数据区,尤其是往系统保护的内存地址写数据;最常见就是给一个指针为0的地址。2)内存越界(
2012-05-03 08:51:21
17321
转载 C语言可以给字符数组赋值的方法
学了这么多年的C语言,突然发现连字符串赋值都出错,真的很伤心。char a[10];怎么给这个数组赋值呢?1、定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!2、对数组中字符逐个赋值char a[10]={'h','e','l','l','o'};3、
2012-04-06 10:23:36
44100
3
原创 初解linux字符设备驱动的组成
怀着激动的心情,翻开买了N长时间的驱动参考书,现在终于有机会可以在实践任务运用它了。对于驱动这个玩意,还没接触之前,感觉是那么的神秘,但是,一旦接触后,由于N多原因,它还是那么神秘。所以,要逐步逐步的去征服它。不管别人怎么说难或者简单,它都在那里,只有你会或者不会。下面就慢慢走近它吧,看看它到底是啥玩意。首先由字符设备说起,它是驱动中稍微简单一点的,那现在就看看它的“五脏“是哪些吧。
2012-03-25 21:16:15
1056
原创 sprintf的点滴
由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者(sprintf)打印到字符串中,后者(printf)则直接在命令行上输出。这也导致sprintf 比printf 有用得多。所以本文着重介绍sprintf,有时也穿插着用用pritnf。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const cha
2012-03-25 18:22:51
592
原创 字节对齐问题
字节序问题关系到数据结构设计的是否合理,合理的数据结构设计可以节省内存空间,同时还能够提高数据访问效率,这在资源有限的其嵌入式系统中是非常重要的. 我们可以先看看这两个例子就大概了解了字节对齐的问题了。在PC机上char是占1个字节,而int是4个字节。#include #include void main(){ struct { unsign
2012-03-02 09:56:32
652
原创 大小端问题
在计算机中存在两种字节序:大端和小端。大端是指计算机中表示一个数时高位在前,低位在后,也就是说低地址存放数据的高位部分,而高地址存放数据的低位部 分,如PPC就是属于这种类型的;相对的,小端是指计算机存储数据时低位在前,高位在后,即低地址存放数据的低位部分,高地址存放数据的高位部分,我们用的X86 CPU就是这样的。概念清楚后,我们可以用代码测试一下自己用的环境是大端还是小端:
2012-03-02 09:36:07
1138
转载 嵌入式程序员应知道的几个基本问题
http://blog.chinaunix.net/uid-20620288-id-3067613.html预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情:
2012-02-09 16:50:16
479
原创 龙年第一博
话说龙年已经开始了 ,我也比预期的时间早些来到学校。在家里上QQ时就看到群里就有人在问一些技术问题了,顿时就感觉到“过年的气息”已经结束了,我们又要收拾行囊,继续前行。 而今年刚来到学校寝室,打开笔记本,第一件事就来优快云报个到,写下自己预计这一年的大致计划,整理好目标,在这一年会有两个任务,一个额外任务——1,好好准备,学校专业技能,为9、10月的工作先奠定好基础;2,收集资料,
2012-01-30 15:03:37
509
原创 UNIX/LINUX编程实战教程——读书笔记一
UNIX/LINUX编程实战教程读书笔记 ,开篇以more指令来进入:more可以分页显示文件的内容,大部分的Unix系统都有文本文件“ /etc/termcap”,我使用的CentOS上也有,它经常被文本编辑器和游戏程序用到,那么用“ cat /etc/termcap”来查看的时候,通常一页是显示不完,太长了,这样more的价值出来了,使用“more ****”或者“cat **** | m
2012-01-12 11:42:45
937
原创 公司实习体会一
今天在公司实习快一个月了,从刚开始适应到现在基本熟悉,差不多对他们的产品有了大致的了解了。而今天就和一位大牛一起配置下使用的单片机的I2C。由于他们产品是用C8051F系列为他们的MCU来配合别的产品,都是用的I2C通信。所以,I2C就是基本的通信初始化了,而这里并不是讲的怎么配置,讲的是我对这个配置的感想和自己的思考。因为这个是从别的公司拿的demo,有些东西别人是不会好心的全部交给你的,就
2012-01-04 22:27:13
633
原创 我的2011—浮夸与踏实
今天是2011年的最后一天,在等着跨年晚会的同时也想着应该在优快云里留下2011的足迹,一来对走过的一年进行个总结,二来对以后起着提点的作用。2011似乎就在手指间悄然过去,当你还未来得及感慨时,它就跟你已经说了声goodbye而转身离开,不管你曾经多么沮丧多么荣耀,它都不在乎,它就这么过去了,没有对你的之前的所作所为总结下,也没对你来个评价,就这样走了,唯独留下的是你的思想沉积。让你知道,
2011-12-31 19:48:17
579
转载 linux fork函数的精辟解说
作者:ccf 发表于:2006-04-0117:11:01#include ;#include ;main () { pid_t pid; pid=fork(); if (pid < 0) printf("error in fork!");
2011-11-28 16:04:07
488
转载 关于I²C和SPI总线协议
http://blog.youkuaiyun.com/keminlau/article/details/6772904 I²C vs SPI现今,在低端数字通信应用领域,我们随处可见I²C (Inter-Integrated Circuit) 和 SPI (Serial
2011-09-15 17:12:42
1005
转载 Select()系统调用及文件描述符集fd_set的应用
Select()系统调用及文件描述符集fd_set的应用在网络程序中,一个进程同时处理多个文件描述符是很常见的情况。select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好时,select()阻塞,其中任一设备准备好时,select()就返回。select()的调用形式为:#include #inc
2011-09-09 17:06:11
503
转载 Linux进程——fork函数
view plain#include #include /* 功能:复制进程 参数:无 返回值: 成功: 父进程:返回子进程id 子进程:返回0 失败: 返回-1 */ pid_t fork(void); 由fork创建的新进程被称为子进程(child proce
2011-09-06 21:25:24
610
原创 QT串口接收十六进制
前段时间写了个“QT串口发送十六进制”,为了对应,现在来个下部剧集。我要接收的数据比较长,“01 03 24 01 19 …………00 D5 F6”中间省略一大截,为将这些数据接收到一个字符串中,参考QT论坛里的文章,总结如下: QByteArray tmp; if(highCom->bytesAvailable() >= 41) { tmp =
2011-09-05 11:10:41
8025
2
转载 串口取电电路(一)
9针串行口: 9针串行口的针脚功能: 针脚 功能 针脚 功能 1 载波检测(DCD) 6 数据准备好(DSR) 2 接受数据(RXD) *7 请求发送(RTS)
2011-08-22 23:19:18
7582
原创 QT 串口以十六进制发送数据
最近做一个东西,它的指令是以十六进制发送的,而我又要以串口形式发送,这不,就需要这方面的资料(在这个网站http://www.gjwtech.com/vcandc/scommassistantcode02.htm,得到参考,仿照写了一下,还真成了,当然,也有群里的高手指导下)。OK,下面就来具体说怎么实现的。我的界面是这样的,点击一次,然后读取它返回的信息。参考上面网站的内容,自己
2011-08-05 17:08:14
22299
5
原创 QT按钮TEXT设置小技巧
情形如下:(两张图片) 如上图一样,第二界面(是dialog,文件名是button)中的按钮没有文字,现在就是通过第一界面(widget)中的按钮显示出第二个界面,然后使其按钮出现文字。首先,在第一个界面的源文件中添加一个头文件:#include "ui_button.h"然后在按钮的槽中加入代码:button *setdlg = new button;setd
2011-07-25 16:27:41
2975
转载 Qt Creator定时器和随机产生数字
本文章原创于www.yafeilinux.com转载请注明出处。有两种方法产生定时器,第一种是自己关联。而第二种就是使用事件,在这里就做下程序的笔记。在main.cpp中添加代码实现中文: (其他头文件都是自动生成)#include int main(int argc, char *argv[]){ QApplication a(argc, argv);
2011-07-20 11:28:40
1625
原创 动态显示图片gif
为了要求,有时需要动态显示一些图片,比如按上篇写的状态栏,当达到一个if要求时,可能就需要用一个动态图片来替代或者更能表现效果。 找到一个好看的gif图片,然后放到你建立的工程中。当然,我说的是linux环境,如现在弄的fedora10 动态显示这个,用的是QMovie类。代码了,也很简单,这次是用label来进行功能实现。 QMovie *movie = new QMov
2011-07-15 21:08:57
1151
1
原创 类似状态栏的显示
在QT4中,类似XP下的状态栏上的时间一样,当鼠标放在上面时,就会显示信息。我实现的也是这个功能。当鼠标在pushbutton上,就会显示出提示框了,内容是我串口读取的温度信息值——“当前温度是XXX℃” 其实实现蛮简单,在以前的串口程序中,把(这是我自己的情况) ui->lcdNumber->display(val); 换成ui->pushButton->set
2011-07-14 19:39:12
622
原创 注意类型转换——串口传输
情景: 最近弄串口传输,在QT做好的GUI上发送一个指令给单片机,然后由单片机去返回一个值。 问题出来了,GUI上发送的指令成功,并且单片机也接收了发出数据,但是为什么GUI上显示不出来了? 看了许多网页,和盆友的讨论之后,发现串口助手上面一般分为两部分“字符—字符”和“字符—HEX”,而我不才,竟然发送整型数据而不自知,结果在这点上纠结半天。本以为只是发送一个个位数字很简单,不想
2011-07-13 10:11:40
919
转载 十六进制字符串转换为十进制数值
转载的http://www.cctry.com/forum.php?mod=viewthread&tid=8387&archiver=1有几种方法还是蛮好的。在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如:char *ptr="0x11";int n=0;//我们想让n等于0x11,即17 通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面
2011-07-11 21:13:43
12090
2
原创 QT4下串口笔记
在进行串口编程时,首先解决的是串口配置问题,这些都是由套路的哦。(使用了qextserialport) myCom = new Posix_QextSerialPort("/dev/ttyS0",QextSerialBase::Polling); //定义串口对象,指定串口名和查询模式,这里使用查询方式Polling myCom ->open(QIODevic
2011-07-09 13:42:30
4214
原创 就从今天我要开始在优快云上做学习笔记了
正如上述标题,开始在优快云上写点自己学习的历程,主要目的还是帮我记住许多东西,同时 而这里主要是涉及一些LINUX(可能太宽,主要是刚开始接触还不熟,也只能说个大致范围),和QT编程。 这是因为最近在学这个,所以就以这两者为方向进行下学习。 也希望哪位高手路过此地,可以指点一二
2011-07-09 09:10:27
746
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人