用C语言编写简单的接口程序
HOT

    在通信中,为了保证运行安全可靠,标准的串行口必须具有许多握手信号和状态信息。这是因为通信 的各个计算机CPU 速度不一样(这会导致“错帧”)以及发送机发送数据速度比接收机接收速度快( 这会导致“过冲”)。为解决这个问题,我们采用一个简单的握手信号,即发送机每次仅发送半个字节 (低4 位)的数据,而另外半个字节(高4 位)则用来传送信息。我们可以对信息...
阅读全文

计算机二级C宏–智者的利刃,愚者的恶梦(下)
HOT

例四、用C宏,智者思维的火花说了半天了,嘴皮子都干了,举个例子大家轻松一下——看看人家老外是怎么用宏的。这个例子摘自《C专家编程》。 根据位模式构建图形图标(icon)或者图形(glyph),是一种小型的位模式映射于屏幕产生的图像。一个位代表图像上的一个像素。如果一个位被设置,那么它所代表的像素就是“亮”的。如果一个位被清除,那么它所代表的像素就是“暗”的。所以,一系列的整数值能够用于为图像编码。...
阅读全文

计算机二级C宏–智者的利刃,愚者的恶梦(中)
HOT

(续上)例三、用C宏,自动生成代码这方面的例子也是多得很,不过有鉴于很多朋友不用很多编译器,不做嵌入式的开发,我就举个win平台的例子吧。我们知道MFC实现了windows的消息映射,比如: ON_COMMAND(IDM_ABOUT, OnAbout)ON_COMMAND(IDM_FILENEW, OnFileNew)  它是如何实现的IDM_ABOUT和OnAbout的关联的呢?这要用到几个宏。...
阅读全文

计算机二级C宏–智者的利刃,愚者的恶梦(上)
HOT

水平不高不低的C++程序员最喜欢挂在嘴上的一句话就是:C宏,万恶之首,错误的开端,应该被废弃。  请注意,我用了一句不敬的修饰语“水平不高不低的”。为什么这么说?因为水平低都插不上话,都在在静静地听老前辈布道呢。水平高的,比如Bane Stroustrup老人家,也只是说若干种场合下C++语言能够提供比C macro更好的解决方案,而没有完全否定C macro的价值。但是话就怕传来传去,一传就走样...
阅读全文

"变速齿轮"的工作原理分析
HOT

最近,我在“大众软件”上看到一则关于软件“变速齿轮”的报道。我很少上网,所以对这方面了解比较少,不知道它在网上已经流行好长时间了。当时的感觉就是太惊奇了,很佩服王荣先生是怎么做到如此神奇的事,尤其是他如何保证各种游戏的兼容,他如何知道不同游戏对时间的处理。我立刻上网DOWN了个0.22b版,在试用的过程中,我发现“变速齿轮”不但可以加速游戏,实际上,它可以加速任何windows程序(从某种程度上)...
阅读全文

循序渐进学编程
HOT

学习无论学习编程还是计算机的其它方面,首先是培养兴趣,这点非常重要,如果有兴趣,编程会使你有强烈的兴奋感,你自然就有了强烈的求知欲。不然它就会是一份枯燥的工作,你也不可能深入学习下去。一开始你可以学习BASIC语言,这个语言并不会耽误你太多的时间,学习它完全是为了入门,让你对电脑编程有一个比较初步的认识,这只为培养兴趣,不用深入。接下来是可以看C了,学C主要是学过程化的程序设计,学会把自己的程序分...
阅读全文

编程之禅
HOT

一程序不过是梦,生于无形无象的禅中,我们只是那做梦的人.二我编程三日,两耳不闻人声,只有硬盘在歌唱.三编译程序在运行,像一条湍急的河流,我静静地等候.四.为何要用LISP?COBOL语言我不懂,所以我用LISP.五编程一整夜,透过窗户,照到屏幕上,初升的太阳.六硬件和软件,我们是你们的主人和奴隶,我们的生活是程序.七.你能听见吗,磁盘上程序的声音?答案是NULL.八电子邮件说,项目已取消,清理文档...
阅读全文

编程修养(二)
HOT

6、if 语句对出错的处理———————————我看见你说了,这有什么好说的。还是先看一段程序代码吧。     if ( ch >= '0' && ch <= '9' ){        /* 正常处理代码 */    }else{ ...
阅读全文

c语言的编程风格
HOT

第一章:缩进格式  Tab是8个字符,于是缩进也是8个字符.有很多怪异的风格,他们将缩进格式定义为4个字符(设置为2个字符!)的深度,这就象试图将PI定义为3一样让人难以接受.   理由是:缩进的大小是为了清楚的定义一个块的开始和结束.特别是当你已经在计算机前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易.   现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在...
阅读全文

关于学习编程和C语言
HOT

首先问你一个问题:你们在学校都学些什么课程?问这个问题的原因是,我认为学校的计算机科学基础课很重要。如果你所在学校的课程设置合理,那你应该先把主要精力花在这些基础课上。很多学生看到基础理论就茫然,不知道这些图表,符号,甚至硬件的知识对将来的软件开发有什么用。用处大得很哪。比如,操作系统课里讲到的多线程的东西在系统编程里很有用。又比如,尽管你将来不会去涉及电脑的硬件,计算机架构里的知识对分析算法的性...
阅读全文

C/C++语言struct深层探索(一)
HOT

1.     struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰...
阅读全文

"安全第一"的C语言编程规范
HOT

编者按: C语言是开发嵌入式应用的主要工具,然而C语言并非是专门为嵌入式系统设计,相当多的嵌入式系统较一般计算机系统对软件安全性有更苛刻的要求。1998年,MISRA指出,一些在C看来可以接受,却存在安全隐患的地方有127处之多。2004年,MISRA对C的限制增加到141条。  嵌入式系统应用工程师借用计算机专家创建的C语言,使嵌入式系统应用得以飞速发展,而MISRAC是嵌入式系统应用工程师对C...
阅读全文

C 语言复习与提高—I. C 语言概述
HOT

目录 I. C 语言概述II. 表达式III. 语句IV. 数组与指针V. 函数VI. 编译预处理VII. 结构体与共用体VIII. 文件附录:参考文献附录:推荐读物 I. C 语言概述一、C 语言概述:C 被称为“中级语言”,它把高级语言的最佳成分与汇编语言的控制和灵活性结合起来。C 允许对位、字节、字和地址等计算机功能中的基本成分直接操作。尽管如此,C 程序的移植性还是非常出色的。所...
阅读全文

C语言嵌入式系统编程修炼之软件架构(三)篇
HOT

硬件驱动模块  一个硬件驱动模块通常应包括如下函数:  (1)中断服务程序ISR  (2)硬件初始化  a.修改寄存器,设置硬件参数(如UART应设置其波特率,AD/DA设备应设置其采样速率等);  b.将中断服务程序入口地址写入中断向量表:/* 设置中断向量表 */m_myPtr = make_far_pointer(0l); /* 返回void far型指针void far * */ m_my...
阅读全文

C语言嵌入式系统编程修炼之软件架构(二)篇
HOT

单任务程序典型架构  (1)从CPU复位时的指定地址开始执行;  (2)跳转至汇编代码startup处执行;  (3)跳转至用户主程序main执行,在main中完成:  a.初试化各硬件设备;   b.初始化各软件模块;  c.进入死循环(无限循环),调用各模块的处理函数  用户主程序和各模块的处理函数都以C语言完成。用户主程序最后都进入了一个死循环,其首选方案是:while(1){}  有的程序...
阅读全文
121 页 / 共 196