编程技巧
文章平均质量分 76
abbing
这个作者很懒,什么都没留下…
展开
-
Bresenham 画线算法
Bresenham 画线算法是由Bresenham提出的一种精确而有效的光栅线生成算法,该算法仅仅使用了整数的增量来实现的。Bresenham算法将对整形参数的符号检测,整形参数的值比于实际险段之间的偏量。Bresenham算法内容对于直线方程 Y = kX + b;A,0 斜率 时候的算法 1,输入线段的两个端点Point1和Point2,并且存储到Point1(x1,y1)和Point2原创 2008-11-26 18:25:00 · 929 阅读 · 0 评论 -
ClassView不显示类的信息de 解决方法
.clw文件记录了类的信息,如果classView中某个类不见了,重新生成该文件就可以了,方法:删除此文件,点击“建立类向导”,根据提示输入工程名称就可以了;.ncb文件记录了类的提示信息,如果类的成员函数和变量的提示不见了,重新生成该文件即可,方法同上;.aps文件记录了资源信息,要利用现成的资源,需要修改3个文件,.rc文件,Resource.h文件和.aps文件,.aps直接删除后,进入程序转载 2010-05-26 12:47:00 · 654 阅读 · 0 评论 -
Scroll bar 的使用
1) 在对话框上加入scrollbar资源。并加入一个edit control资源,来检测bar的位置。2) 为scrollbar资源添加控制变量m_scrollbar,为edit control资源添加控制变量m_edit。3) 添加消息响应“OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)”。4) 在Dlg原创 2010-04-21 11:09:00 · 2600 阅读 · 1 评论 -
volatile的用法
由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:static int i=0;int main(void){...while (1){if (i) dosomething();}}/* Interrupt service routine. */void ISR_2(void){i=1;}程序的本意是希望ISR_2中断产生时,在main当中调用dosomethi转载 2009-09-09 17:10:00 · 376 阅读 · 0 评论 -
[C]函数指针数组
首先定义256个处理函数(及其实现)。void funtion0( void );……..void funtion255(void );其次定义函数指针数组,并给数组赋值。void (*fun[256])(void);fun[0] = function0;…….fun[255] = function();最后,MyFunction()函数可以修改如下:void MyFuntion( char* b原创 2009-07-02 09:22:00 · 645 阅读 · 0 评论 -
提高编译效率的Keil C编程技巧
1、选择合适的算法和数据结构应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执行的效率。.选择一种合适的数据结构也很重要,比如你在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密码的转载 2009-06-24 14:37:00 · 2731 阅读 · 1 评论 -
KEIL C 的精确延时
51单片机 Keil C 延时程序的简单研究 应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。 以前用汇编语言写单片转载 2009-06-24 14:36:00 · 1053 阅读 · 1 评论 -
快速傅立叶变换的应用[转贴]
快速傅立叶变换的应用[转贴]2008年08月10日 星期日 下午 04:13 ----说明:本文转自21IC 只要是理工科毕业的朋友,都学过傅立叶级数与傅立叶变换,但真正要与实际应用联系起来,用它来阐述应用中的各类问题,我们总会感觉概念模糊,似懂非懂,不知从何说起。是的,作者和你一样,常常有这样的体会。现在,让我与你一起重新学习傅立叶的基本理论和应用,转载 2009-08-13 11:11:00 · 858 阅读 · 0 评论 -
M/T法测速
速度测量是工控系统中最基本的需求之一,最常用的是用数字脉冲测量某根轴的转速,再根据机械比、直径换算成线速度。脉冲测速最典型的方法有测频率(M法)和测周期(T法)。定性分析: M法是测量单位时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有2个脉的误差。速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大,所以M法宜测量高速。如要降低测量的速度下限,可以提高编码器线数或原创 2009-03-05 16:36:00 · 19534 阅读 · 4 评论 -
C语言中宏定义的一个变态用法
在程序调试时,我们经常需要输出一些调试信息,当调试完毕后,就不再需要使用了。那怎么快速的在调试状态和发布状态切换呢?通常我们使用预编译加宏定义来处理这个问题,例如:#ifdef DEBUG 调试代码#endif如果我们使用printf来显示一些调试信息,那么每个地方都加上#ifdef和#endif就很麻烦了。我们可以定义一个DbgPrintf的函数来专门处理这些事情,只在DbgPrin转载 2009-02-11 14:10:00 · 460 阅读 · 0 评论 -
Bresenham直線演算法
Bresenham直線演算法是用來描繪由兩點所決定的直線的演算法,它會算出一條線段在 n 維光柵上最接近的點。這個演算法只會用到較為快速的整數加法、減法和位元移位,常用於繪製電腦畫面中的直線。是計算機圖形學中最先發展出來的演算法。經過少量的延伸之後,原本用來畫直線的演算法也可用來畫圓。且同樣可用較簡單的算術運算來完成,避免了計算二次方程式或三角函數,或遞歸地分解為較簡單的步驟。以上特性使其仍是一種原创 2008-11-26 18:48:00 · 1169 阅读 · 0 评论 -
c/c++ 数据类型转换总结
在c/c++中int、float、char等都可以自由转换,但是由于c/c++语言本身根本就没有提供字符串数据类型,因此字符串与其他数据类型的转换就必须通过其提供的库函数来实现,通过对网上相关文章的总结和MSDN的查阅,现总结数值型数据与字符串型数据的转换实现过程如下:(程序来源:MSDN) 一、sscanf与sprintf (stdio.h) <br />Example<br />/* SSCANF.C: This program uses sscanf to read data items<br原创 2010-06-13 17:59:00 · 877 阅读 · 0 评论