c/c++
文章平均质量分 55
lchunli
byd
展开
-
2009.11.05---宏的学习
宏的学习1.预处理命令 预处理命令是由ANSI C统一规定的,但是它不是C语言本身的组成部分,不能直接对他们进行编译。必须中对程序进行通常的编译之前,先对程序中这些特殊的命令进行“预处理”,即根据预处理命令对程序作相应的处理(例如,若程序中用#define命令定义来一个符号常量A,则中预处理时将程序中所有的A都置换为指定的字符串。若程序中用#include命令包含来一个文件“stdio.原创 2009-11-05 19:25:00 · 517 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
<br />用途一: <br />定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: <br />char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, <br />// 和一个字符变量; <br />以下则可行: <br />typedef char* PCHAR; // 一般用大写 <br />PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 <br />虽然: <br />char *pa转载 2010-07-03 20:29:00 · 483 阅读 · 0 评论 -
异常处理
1:如果使用普通的处理方式:ASSERT,return等已经 足够简洁明了,请不要使用异常处理机制.2:可以通过异常处理简化程序结构.A:如果if~else,用来排除异常时(注意不是一般条件判断时),如果出现多个if~else的嵌套从而影响了程序结构时,可以使用异常化处理.3:c++中的try{}catch(...){},三个.代表所有的异常.(异常分不同的类型). try {转载 2010-05-30 22:14:00 · 702 阅读 · 0 评论 -
TDD
TDD(Test-Driven Development)<br />测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。 <br /> TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。 <br />原创 2010-05-31 20:41:00 · 731 阅读 · 0 评论 -
内存泄露问题
<br />对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟,但是在c/c++领域的发展并不顺畅,虽然很早就有人思考在C++中也加入GC的支持。现实世界就是这样转载 2010-06-03 09:23:00 · 1024 阅读 · 0 评论 -
c++异常机制
<br />一、 概述<br /> C++自身有着非常强的纠错能力,发展到如今,已经建立了比较完善的异常处理机制。C++的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句,函数,结构和类,致使编译程序无法进行。另一种是运行时发生的错误,一般与算法有关。<br /> 关于语法错误,不必多说,写代码时心细一点就可以解决。C++编译器的报错机制可以让我们轻松地解决这些错误。<br /> 第二种是运行时的错误,常见的有文件打开失败、数组下标溢出、系统内存不足等等。而一旦出现这些问题,引发算法失效、程原创 2010-06-01 20:50:00 · 578 阅读 · 0 评论 -
开发Qt应用程序的基本方法总结
<br />1.全部采用手写代码,在命令行下完成编译和运行<br /> 这种方式是最基础、最基本的,使用它的感觉有点像练武术时的扎马步,一招一式非常清楚。它最锻炼开发者的技能,因为每一步都不能含糊,开发者需要对编译系统、Qt基础知识有着非常扎实的了解。笔者熟知的许多的Qt编程的“老鸟”中,很多人都青睐这种方式。它的缺点是在一般规模的应用中,还足以胜任,但如果是大型的、多人参与的工程开发和项目研制,它就有些不方便了,比如如何协同开发、如何进行版本控制管理等等问题都会变得难以解决。<br />2.在集成开发环转载 2010-06-08 20:13:00 · 828 阅读 · 0 评论 -
为一个串口软件写的简单的循环队列 需改进
<br />// 运用计数器来判断队列是否满<br />typedef struct _T_RevData<br />{<br /> float a;<br /> float b;<br /> float c;<br /> float d;<br /> float e;<br /> float f;<br /> float g;<br /> float h;<br /> float i;<br /> float j;<br />}T_RevData;<br />typedef struct <br />原创 2010-09-09 21:20:00 · 1193 阅读 · 0 评论 -
常见的一些代码
#include "stdafx.h"#include #include #include #include typedef struct _T_DayTime{ int s32Year; int s32Month; int s32Day; int s32Hour; int s32Min; int s32Second;}T_DayTime;void GetCurTime(T_DayTime *tDayTime){ time_t rawtime; struct tm * timeinfo; time( &r原创 2010-09-04 17:12:00 · 708 阅读 · 0 评论 -
VC操作Excel-ODBC版
<br />这个程序就是把Excel当作一个数据库,使用sql语句进行操作。这个程序通用性不强,不能够处理任意的Excel文件,大概是因为把Excel文件当成数据库,对于文件格式要求的比较严格。<br />程序参考自:http://www.programfan.com/club/showtxt.asp?id=252948<br />环境是:VC6.0 + Excel2003<br />过程如下:<br />用支持MFC的控制台程序来做个简单的实验。<br />首先,要在stdafx.h头文件中引入ODBC的转载 2010-09-07 19:59:00 · 5042 阅读 · 0 评论 -
tx_view代码
void CSetting::tx_view(int len, char *ptr){ char StrData[10]; char str[1010]; char *pPsrData = NULL; char SignFlag = '+'; int i = 0; double data; //每个通道转换后的数值 int ChannelNo = 0; //要显示的通道号 memset(StrData, 0, sizeof(StrData)); memset(str, 0,原创 2010-12-26 16:38:00 · 800 阅读 · 0 评论 -
音视频编码格式相关知识(转载)
松解读音频视频编码及文件格式问题 近来,有不少朋友问我一些音视频编解码的入门问题,大概是随着手机、PDA等设备的普及以及带宽的提高,音视频的传播越来越普及的缘故吧。 不过,我发现很多朋友对一些基本概念还是不清楚,尤其是编码和文件格式,这里就对基本的音视频知识作个简单的入门说明。 音频视频编码及文件格式(容器)是一个很庞大的知识领域,完整的说清楚,那就需要些写成转载 2010-05-31 21:01:00 · 720 阅读 · 0 评论 -
Java中abstract和interface的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意。其实,两者之间还是转载 2014-03-11 09:11:12 · 847 阅读 · 0 评论 -
《高质量程序设计指南》---之使用const提高函数的健壮性
被用const修饰函数的参数:原创 2014-11-01 11:14:37 · 1005 阅读 · 0 评论 -
偶尔也翻下《c++编程思想》---之对象的创建与使用
任何一种计算机语言都要从某种人们原创 2014-10-30 09:49:40 · 725 阅读 · 0 评论 -
Socket编程中用send发送结构体
最近在开发一个Linux下的聊天软件,好久没有做C语言的开发了,感觉到很多东西已经生疏了,这下又碰到用Socket传递结构体的问题,google了一下,发现也有不少朋友遇到同样的问题,所以就打算写出自己的解决办法,跟大家分享。 Socket中的send函数可以发送字符串,但不能直接发送结构体,因此在发送端先把结构体转成字符串,然后用send发送,在接收端recv字符串,再转换成原先的结构体,原创 2010-04-28 19:17:00 · 14917 阅读 · 1 评论 -
vc 串口编程资源
http://www.cnblogs.com/hush/archive/2004/05/17/9918.aspx //textOut() 的使用http://www.programfan.com/showarticle.asp?id=2169 //VC常用数据类型使用转换详解http://www.pconline.com.cn/pcedu/empolder/gj/vc/10206/7转载 2010-04-17 15:22:00 · 2146 阅读 · 3 评论 -
2009.11.3----WINDOWS程序设计
Windows程序设计虽然做了一段时间的MFC了,但是对windows程序设计感觉还是那么的陌生,可能上微软把那个框架包的太好了,总看不到深层的东西,今天看了一点侯捷的MFC深入浅出,总算对windows这个东西还有了点感觉。以下摘自侯捷的MFC深入浅出1. Windows程序开发流程Windows 程序分为「程序代码」和「UI(User Interface)资源」两大部份,两部原创 2009-11-05 19:26:00 · 875 阅读 · 0 评论 -
2009.11.4 ---Afx的全域函数(摘自侯捷的MFC深入浅出)
还记得吧,C++ 并不是纯种的对象导向语言(SmallTalk 和Java 才是)。所以,MFC之中得以存在有不属于任何类别的全域函数,它们统统在函数名称开头冠以Afx。下面是几个常见的Afx 全域函数: //MFC的功能如此的强大,今天才知道他还有这些函数可以用。原创 2009-11-05 19:17:00 · 730 阅读 · 0 评论 -
CFromView中窗体的美化
更改颜色常需调用的消息:更改对话框的的控件的颜色:afx_msg hbrush onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor); 更改对话框背景:afx_msg BOOL OnEraseBkgnd(CDC* pDC);//对话框背景BEGIN_MESSAGE_MAP(CButtonDlg, CDialog)ON_WM_原创 2009-11-07 16:10:00 · 1604 阅读 · 0 评论 -
c++中关于return的用法总结
return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值. turn,有必要提及主函数的定义。很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写原创 2009-11-08 16:23:00 · 33723 阅读 · 2 评论 -
程序生成的三个阶段
程序生成主要分成编译、汇编、连接等几个步骤: 编译是指把用高级语言编写的程序转换成相应处理器的汇编语言程序的过程。从本质上讲,编译是一个文本转换的过程。对嵌入式系统而言,一般要把用C语言编写的程序转换成处理器的汇编代码。编译过程包含了C语言的语法解析和汇编语言的生成两个步骤。汇编一般是逐个文件进行的,对于每一个C语言编写的文件,可能还需要进行预处理。 汇编是从汇编语言程序生成目标原创 2009-11-01 09:57:00 · 1324 阅读 · 0 评论 -
vc 消息 事件
事件是一个动作——用户触发的动作。 消息是一个信息——传递给系统的信息。 事件与消息的概念在计算机中较易混淆,但本质不同: 事件由用户(操作电脑的人)触发且只能由用户触发,操作系统能够感觉到由用户触发的事件,并将此事件转换为一个(特定的)消息发送到程序的消息队列中。 这里强调的是: 可以说“用户触发了一个事件”,而不能说“用户触发了一原创 2009-10-31 09:56:00 · 712 阅读 · 0 评论 -
malloc用法
malloc用法需要包含头文件:#include stdlib.h函数声明(函数原型):void *malloc(int size);说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。从函数声明上可以看出。malloc 和 ne转载 2009-11-08 17:01:00 · 47708 阅读 · 3 评论 -
VC 界面库 收集
GuiToolkit(开源,类似Visual Studio 2003风格)http://www.beyondata.com/default.htmGardenUI(免费,界面效果挺好的,XML,代码 界面 分离)http://www.gardenui.com/CJLib(开源,免费,UNICODE编码,是xtreme toolkit的前生,但xtreme toolkit收费了)h原创 2009-11-09 09:18:00 · 1106 阅读 · 2 评论 -
VC 界面库皮肤库
VC 界面库皮肤库 CJLib(mfc扩展开发包,是xtreme toolkit的前生,但xtreme toolkit收费了)http://www.codejock.com/BCGControlBar(收费,mfc扩展开发包,功能很强大)http://www.bcgsoft.comSkinMagic(收费,看起来像Office)http://appspeed.com/html/do转载 2009-11-09 09:23:00 · 3646 阅读 · 0 评论 -
lib文件和dll文件
什么是lib文件,lib和dll的关系如何 (1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有 dll文件,那么对应的lib文件一般是一些索转载 2009-11-18 22:19:00 · 546 阅读 · 0 评论 -
65个源代码网站
1.51源码:http://www.51aspx.com/2.源码之家:http://www.codejia.com/3.源码网:http://www.codepub.com/4.虾客源码:http://www.xkxz.com/5.源码开发网:http://www.codedn.com/6.洪越源代码:http://www.softhy.net/7.锋网源码:http://www.fwvv.ne转载 2009-11-18 20:11:00 · 2967 阅读 · 0 评论 -
VS.Net的真相
对比Visual Studio C++每一代,变化最大的莫过于编译器和库,尤其是从(事实上也是好几年前的东西)Visual Studio 2003开始,编译器对标准C++的支持提升了不少,编译速度也有了很大的提高。可是无论当应用层面的开发进化到了何种层面,标准C运行库(以下简称CRL)都是程序最最底层的实现。 http://blog.zj.com 按照MSDN的说法在VC++ 2005中转载 2009-12-12 16:59:00 · 1503 阅读 · 0 评论 -
Win32串口编程
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。 在Win32下,可以使用两种编转载 2010-03-07 22:20:00 · 407 阅读 · 0 评论 -
UML图例
本文转自http://www.cnblogs.com/xiaruyan/archive/2011/04/24/2026250.htmlUML(统一建模语言):是面向对象的可视化建模的一种语言。是数据库设计过程中,在E-R图(实体-联系图)的设计后的进一步建模。UML中有3种构造块:事物、关系和图,事物是对模型中最具有代表性的成分的抽象;关系是把事物结合在一起;图聚集了相关的的事物。转载 2014-11-30 15:32:48 · 1083 阅读 · 0 评论