木有寸557

 

2012年12月6日

C/C++ 避免使用宏

摘要: 概述: 宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论: 在C++中,几乎从不需要使用宏。 可以用const或者enum定义易于理解的常量,用inline避免函数调用的开销,用template指定函数系列和类型系列,用namespace避免名称冲突。 C++的宏的主要问题在于,它们表面上看起来很好,而实际上做的却是另一回事。宏会忽略作用域,忽略类型系统,忽略所有其他的语言特性和规则,而且会劫持它为文件其余部分所定义(#define)的符号。宏调用看上去很像符号或者函数调用,但实际上并非如此。宏... 阅读全文

posted @ 2012-12-06 19:46 小猪_你快跑 阅读(395) 评论(0) 推荐(0) 编辑

2012年12月5日

C++中 运算符和函数的区别

摘要: 运算符和函数,要说区别,大概也就是(1)语法形式上会有区别;(2)运算符只能重载,不能自定义,函数的名字随便你起,只要是个标志符就行;但运算符不行,比如,你无法仿照其它语言的符号,自己定义一个乘方运算符“**”。(3)任何函数都可以重载或者覆盖,但通常你不能改变运算符作用于内置类型的行为,比如你不能通过重载“operator+”,让3+2产生出6来。至于new和malloc,这是两个具体的东西,这两个倒是有本质的区别,而不仅仅是语法形式的区别。比如,至少malloc不会调用构造函数,而new会;malloc不会抛出异常,而new会;你无法重新定义malloc失败时的默认行为(返回null),但 阅读全文

posted @ 2012-12-05 21:32 小猪_你快跑 阅读(583) 评论(0) 推荐(0) 编辑

2012年11月18日

c++ 重载赋值运算符

摘要: 如果我们不亲自给类提供重载的赋值运算符,则编译器将提供默认的函数。默认版本仅仅提供逐个成员的赋值过程,与默认复制构造函数的功能类似;但是不要混淆默认复制构造函数与默认默认复制运算符。默认复制构造函数时通过声明已现有同类对象进行初始化的,或者以传值方式给函数传递对象而被调用。反之,默认赋值运算符是在赋值语句的左边和右边是同类对象时被调用的。对于CBox类来说,class CBox{ public: CBox( double lv=1.0, double wv=1.0, double hv=1.0):length(lv),width(wv),height(hv)... 阅读全文

posted @ 2012-11-18 16:21 小猪_你快跑 阅读(490) 评论(0) 推荐(0) 编辑

2012年11月5日

C++ 接收数量不定的函数参数

摘要: 可以将函数定义成能够接受任意数量的实参。通过将省略号(3个句点...)写在函数定义中形参列表的最后,即可表示调用该函数时可以提供数量可变的实参。例如 int sumValues( int first, ... ) { // Code for the function } 函数定义中至少有一个普通形参,也可以有多个。省略号必须放在形参列表的最后。 显然定义中没有关于可变列表中实参的类型或数量的任何信息,因此我们的函数代码必须弄清自己被调用时接收的事什么。 C++库在 stdarg.h 头文件中定义了va_start、... 阅读全文

posted @ 2012-11-05 19:29 小猪_你快跑 阅读(401) 评论(0) 推荐(0) 编辑

2012年5月5日

串口通信

摘要: 一 并行与串行基本通信方式 并行: 并行通信是将数据字节的各位用多条数据线同时进行传送,每一位数据都需要一条传输线,如图所示8位数据总线的通信系统,一次传送8位数据(1个字节),将需要8条数据线,此外还需要一条信号线和若干控制信号线,这种方式仅适用于短距离的数据传输。此种方式,控制简单、相对传输速度快,由于传输线较多,长距离传输时成本高且收发方的各位同时接收困难。二 串行通信方式 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个的传送,此时只需要一条数据线,外加一条公共信号地线和若干控制信号线。因为一次只能传输一位,所以对于一个字节的数据,至少要分成8位才能传输完毕,如下图所示串行.. 阅读全文

posted @ 2012-05-05 05:55 小猪_你快跑 阅读(1030) 评论(0) 推荐(0) 编辑

2012年4月28日

单片机 中断( 定时器/计数器详说 )

摘要: 方式0应用 通过设置TMOD寄存器中的M1M0位00选择定时器方式0,方式0的计数位数是13位,对T0来说,TL0寄存器的低5位(高3位未用)和TH0寄存器的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向cpu发出中断请求。其逻辑图如下定时器方式0位13位计数器,最多能装载的个数 2的13次方=8192个,当TL0和TH0的初始值为0时,最多经过8192个机器周期该计数器就会溢出一次,向cpu申请中断。THX=(8192-N)/32 TLX=(8192-N)%32。机器周期=12 X (1/时钟频率)单片机定时器程序的步骤: 对TMOD赋值、计算... 阅读全文

posted @ 2012-04-28 22:11 小猪_你快跑 阅读(1390) 评论(0) 推荐(0) 编辑

2012年4月15日

单片机 键盘

摘要: 键盘分类: (1)编码键盘 键盘上闭合键的识别由专门的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算 机键盘。 (2)非编码键盘 靠软件编程来识别的键盘称为非编码键盘,在单片机上运用较多的是非编码键盘,非编码键盘 又分为独立键盘和行列式键盘(矩阵式)键盘。独立键盘的检测 : 键盘的一端接地,另一端接单片机的I/O口。开始时给I/O口赋一高电平,当键盘闭合时,I/O口通过键盘与 地相连,变成低电平,程序一旦检测到I/O口变成低电平则说明按键被按下。 TX-1C实验板上独立键盘(最下面的一排)与单片机的 P... 阅读全文

posted @ 2012-04-15 14:36 小猪_你快跑 阅读(714) 评论(0) 推荐(0) 编辑

2012年4月1日

单片机 中断

摘要: 中断是为使单片机具有对外或内部随机发生的事件实时处理的能力而设置的,中断功能的存在,很大程度上提高了单片机处理外部或者内部事件的能力。 51单片机有5个中断源,即有5种情况发生会使单片机处理中断程序。 中断的解释:CPU处理在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前工作(中断响应),转去处理事件B(中断服务);待CPU将事件B处理完后,再回到原来事件A被中断的地方继续处理A(中断返回),这一过程称为中断。 52单片机共有6个中断源。 INT0--外部中断0,由P3.2端口线引入,低电平或下降沿引起。のgh INT1--外... 阅读全文

posted @ 2012-04-01 17:29 小猪_你快跑 阅读(853) 评论(0) 推荐(0) 编辑

2012年3月20日

单片机 74HC573锁存器和周期

摘要: (1) 锁存器 这是74HC573 锁存器的引脚分布图,OE的专业术语为三态允许控制端(低电平有效),通常叫作输出使能端,或者输出允许端都可以; 1D~8D 为数据输入端;1Q~8Q为数据输出端; LE为锁存允许端,或叫锁存控制端。 上图为74HC573的真值表。真值表用来表示数字电路或者数字芯片工作状态的直观特性。 真值表中字母的含义 H--高电平 、 L--低电平 、 X--任意电平 、Z--高阻态 也就是既不是高电平也不是低电平,而它的电平状态由与它相连接的其他电气状态决定; Q0--上次的电平状态。 由图可看出,当OE为高电平时,无论LE与D端为何种电平状... 阅读全文

posted @ 2012-03-20 20:47 小猪_你快跑 阅读(3159) 评论(0) 推荐(0) 编辑

2012年3月19日

单片机 数码管的发光

摘要: 数码管的显示原理都一样,都靠点亮内部发光二极管来发光。TX-1C 的单片机开发板是6位数码管。数码管的引脚是10个,显示8字需要7个小段,外加一个小数点,共有8个发光二极管,还有一个公共端。公共端分为共阳极和共阴极,共阴极即8个二极管的阴极连在一起,共阳极即8个二极管的阳极连在一起。TX-1C开发板的数码管位共阴极。多为一体的数码管,内部的公共端是独立的,而负责显示什么数字的断线是全部连在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连在一起的段线可以能控制这位数码管能亮出什么数字。公共端叫作位选线,连在一起的段线叫作段选线。有了这两根线,就能通过单片机控制任意的数码管显示任.. 阅读全文

posted @ 2012-03-19 15:41 小猪_你快跑 阅读(728) 评论(0) 推荐(0) 编辑

导航