自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王兆华的专栏

一穷二白,怎能不努力

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 字节对齐和sizeof

      今天,用VC做一个简单的工具,向下位机设备传送一些数据。碰到了一个以前没有注意的问题。那就是内存对齐方式对sizeof的影响。上网浏览了http://blog.vckbase.com/zhangjw_cn/archive/2005/08/09/10701.html的说明,一下子明白了问题的缘由。记录整理一下,便于以后查阅,同时也便于碰到类似问题而不熟悉的朋友了解。     假定如下的数

2008-05-10 22:53:00 854

翻译 ATL入门:利用ATL编写简单的COM组件

序论       第一步:运行ATL COM Wizard         运行Visual C++ 并创建一个新的工程,选择“ATL COM AppWizard”,项目名称为”Simple_ATL”。设置好项目的保存路径,单击“OK”,你将看到弹出的一个对话框,如下所示:           我们将创建一个Server DLL, 故在“Server Type”项中选择“D

2008-03-26 23:35:00 7554 2

转载 经典基础教程---Programming TCP/IP Windows Sockets in C++

Programming TCP/IP Windows Sockets in C++ 转自:http://www.codeproject.com/KB/IP/beginningtcp_cpp.aspx另有根据本文的Demo,基于VC6.0,[email protected] really is not a lot of material on this subject, I

2008-03-09 23:36:00 2676 1

原创 折半查找

温故知新,最近回顾数据结构:)这是折半查找的C++表示: #include iostream>using namespace std;int find_bin(const char *pArray, char ch)...{    if(pArray == NULL)        return -1;    int nLeft = 0;    int nRight = strlen(pA

2008-03-02 17:29:00 620

原创 C++ 拷贝构造函数中的指针问题

Copy构造函数是显式地去处理一个对象初始化另一个对象的问题,如果类含有一个指针的话,那么处理起来主要分为两种情况。A. 指针在类的构造或者初始化时指向动态分配的内存, 并在对象析构时对该指针进行delete操作,释放内存资源。这种情况下,对指针的操作是万万不能简单对指针地址进行赋值操作的。应该是动态申请内存,然后按值Copy具体内容,从而防止指针指向无效内存地址的情况。B. 指针

2008-03-02 17:16:00 4121

原创 子集生成算法

      问题:  给定一个正整数,列出{1, 2, ···,n}的所有子集    朋友问我这个问题,一时无法作答,才发现,没有受过系统的计算机专业教育,对于我来讲,是个短板,于是,查看书籍,才在离散数学上找到了子集生成算法的基本介绍。      算法介绍:      若集合S包含n个元素x1, x2, ···, xn, 则用一种简介的表示S的子集的方法是,把它表示成由0和 1组成的串,其中,若

2008-03-02 17:02:00 4382 2

转载 远程登陆vm虚拟的linux的具体设置[转]

远程登陆vm虚拟机的linux的具体设置,转自lcx517的博客   参考网上论坛的方法,引用了一些高手的帖子,自己验证成功   1。安装虚拟机及RH9   2。安装vmware-tool:   3。网络设置:   4.开启telnet服务。   5.端口映射   6.验证   1。安装虚拟机及RH9   2。安装vmware-tool:   如果在图形界面下,首先要切换到文本模式。   右键点

2008-02-29 21:24:00 934

转载 Linux文件操作-->扫描目录

扫描目录   Linux系统上一个常见问题就是对目录进行扫描,也就是确定一个特定目录下存放的文件。在shell程序设计中,这很容易做到——只需让shell做一次表达式的通配符扩展。过去,UNIX操作系统的各种变体都允许用户通过编程访问底层文件系统结构。我们仍然可以把目录当作一个普通文件那样打开,并直接读取目录数据项,但不同的文件系统结构及其实现方法已经使这种办法没什么可移植性了。现在,一整套标准的

2008-02-17 12:02:00 2958

转载 Linux系统环境变量详谈

Linux系统环境变量详谈 var arrBaiduCproConfig=new Array();arrBaiduCproConfig[uid] = 128453;arrBaiduCproConfig[n] = trottercpr;arrBaiduCproConfig[tm

2008-01-31 00:10:00 540

转载 几种Shell介绍

转自 http://it.sohu.com/2004/06/09/39/article220453966.shtml目前流行的Shell有ash, bash, ksh, csh, zsh等,你可以用下面的命令来查看你自己的Shell类型:  # echo $SHELL$SHELL是一个环境变量,它记录用户所使用的Shell类型。你可以用命令:  # Shell-name  来转换到

2008-01-30 23:54:00 661

转载 mmap的使用

UNIX提供了一个非常有用的功能,它允许程序共享内存,Linux内核从2.0版本开始已经把这一功能包括进来。mmap(内存映射,memory map)函数的作用是建立一段内存,使它能够被两个或更多个程序读写。一个程序对它所做出的修改可以被其他程序看见。这一功能还可以用在文件的处理上。你可以使某个磁盘文件的全部内容看起来就像是内存中的一个数组。如果文件由记录组成,而这些记录又能够用C语言中的结构来描

2008-01-22 10:43:00 1697

原创 c++头文件

传统 C++#include     //设定插入点#include      //字符处理#include      //定义错误码#include      //浮点数处理#include     //文件输入/输出#include     //参数化输入/输出#include    //数据流输入/输出#include     //定义各种数据类型最值常量#include     //定义本

2008-01-18 23:05:00 449

转载 C++中的时间函数

转自:http://www.cppblog.com/bourne/archive/2006/07/05/9423.aspx摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),C

2008-01-10 14:20:00 1119

转载 (转)mmap函数的使用

转自:http://hi.baidu.com/scupy/blog/item/1adebf1862961a0634fa41dd.html mmap函数介绍

2008-01-10 14:12:00 2080

原创 聚合(读书笔记)

  聚合如果类与类之间的关系具有“整体与部分”的特点,则把这样的关联称为聚合。 共享聚合和复合聚合       如果聚合关系中处于部分方的对象同时参与了处于整体方对象的构成,则该聚合称为共享聚合。一个球队有多个队员组成,但是一个队员可以参加多个球队。如果构成整体类的部分类,完全隶属于整体类,则这样的聚合称为复合聚合。可以表示为:带角色的复合聚合:

2007-12-26 20:59:00 670

原创 UML类图---关联(1)

  UML类图笔记类图:类的属性中有一种能够被该类的所有对象共享的属性,称之为类的作用域(Class-scope attribute),也成为类变量(class variable);类变量在类图中表示为带下划线的形式。       类也有类作用域操作,图示为带下划线形式,类作用域操作只能存取本类中的类作用域属性。 类的关系:类图由类和它们之间的关系组成类与类之间通常

2007-12-21 23:24:00 1667

转载 Memmove 函数说明

Memmoveheadfile: string.hvoid *memmove(void *destination, const void *source, size_t num);Move block of memory Copies the values of num bytes from the location pointed by source to the memory bloc

2007-12-20 17:04:00 1004

原创 向其它进程传递信号

本文所有程序均应在UNIX系操作系统下编译执行。第八章:向其它进程传递信号上一章,我们简单地说了一下信号。信号不仅仅可以在本进程内使用,还可以向其它的进程传递。确切地说,一般情况下,一个进程收到的信号绝大部分是从系统的INIT传来的。而INIT也是一个进程。用过UNIX或者LINUX的朋友大概都知道,UNIX系的操作系统里,有一个kill命令。如果你的一个进程无法中止,可以使用kill命令强行干掉

2007-12-18 22:16:00 844

原创 Windows程序的基本运行流程

Windows程序的基本运行流程对于一般的C语言程序,main是函数的进入点:int main(int argc, char *argv[]){    ...       return 0;}而Windows程序的进入点是WinMain:int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,               

2007-07-24 11:20:00 1700

原创 RTTI在C++继承中的运用

  RTTI: Run-Time Type Identification 运行时刻类型识别。为了支持RTTI,在C++中,提供了两个操作符:1. dynamic_cast 操作符,它允许在运行时刻进行类型转换,从而使程序能够在一个类层次结构中安全地转换类型,把基类指针(引用)转换为派生类指针(引用)。2. Typeid操作符,它指出指针或者引用指向的对象的实际派生类型。 dyn

2007-06-19 14:42:00 783

原创 new和malloc的区别

   new和malloc的区别1. malloc是库函数,在C++程序中,要用到malloc函数,必须包含malloc.h。malloc函数的原型是:void *malloc( size_t size ),其中,size是分配的空间大小。该函数返回一个void类型的指针,因此,在用malloc函数时,往往需要进行数据类型的强制转换:              int *pm = (i

2007-06-12 08:32:00 4074 1

原创 好的开发者

曾经以为,一定的编程经验就说明拥有较强的开发能力,就算好的开发者,现在明白,编程经验是必要条件,而不是决定条件。       在Pete McBree的《Software Crafismanship》一书中,他认为,那些成功地开发过几个应用程序,并在交付后仍在项目组中,直到下一个升级或者维护版本发布的开发者,因为能够交付最初的产品,说明这个人有能力开发出可用的产品;参与第二个版本的开发则使它有

2007-06-04 19:02:00 768

原创 带参数的主函数

 带参数的主函数                                                                                                                        一般情况下(许多教科书中都没有说明),我们在写程序的时候,往往忽略了主函数的参数,例如: int main(){    

2007-05-16 10:05:00 7222

原创 变量的声明和定义以及extern的用法

 变量的声明和定义以及extern的用法                                         变量的声明不同于变量的定义,这一点往往容易让人混淆。l         变量的声明是告诉编译器,该变量名称已经存在,编译器认识这个名字,不会引起编译错误。l         对变量进行定义之后,编译器就会给变量分配空间,链接时,链接器可以找到它们的地址。

2007-05-15 14:22:00 4921

原创 类的继承与派生

类的继承与派生一、            派生类生成过程1.吸收基类成员。2.改造基类成员。3.扩充基类成员。在类的派生中,构造函数和析构函数不能被派生。派生类继承了基类的全部数据成员和除了构造,析构之外的全部函数、成员。二、            类的继承方式有共有继承、保护继承、私有继承三种1.公有继承。 基类的公有和保护成员的访问属性在派生类中不变,而基类的私

2007-05-12 08:45:00 2503

原创 bc3.1环境下创建uCOS-II应用程序的一种方法

由于尝试采用BC3.1创建uCOS-II的应用工程失败,失败原因及现象见上一篇中所描述。因此,这里绕了一个圈,实现了两方面的需求:一方面可以采用BC3.1的工程管理功能,实现对开发项目的管理,如增添文件等等功能。可以对单独的文件进行编译(除了汇编文件),这样就可以在BC开发环境下,进行代码的编写、编译、调试。另一方面可以消除原来连接出错的问题,生成exe文件。基本思想是利用BC3.1的集成

2007-01-26 14:52:00 4176 1

原创 BC3.1环境下创建uCOS-II工程的问题

最近学习uCOS-II,想模仿书上的例子1,按照书上的ex1_x86l的形式,创建了工程test,并且设置了相应的路径,.c文档都通过了编译,唯一的一个.asm编译没有反应(我设置了汇编器的路径,并将TASM2MSG拷贝到相应的工程目录下),表现为:     main file:      compiling:这两项后面都没有显示信息,也没有出错报警。查看工程目录,发现了OBJ文件,并且汇编文件也

2007-01-26 11:24:00 2140

GNU make中文手册

GNU make中文手册 本文比较完整的讲述GNU make工具,涵盖GNU make的用法、语法。同时重点讨论如何为一个工程编写Makefile。<br> 阅读本文的几点建议:<br><br>1. 如果之前你对GNU make没有了解、当前也不想深入的学习GNU make的读者。可只阅读本文各章节前半部分的内容(作为各章节的基础知识)。<br><br>2. 如果你已经对GNU make比较熟悉,你更需要关心此版本的新增特点、功能、和之前版本不兼容之处;也可以作为开发过程过程的参考手册。<br><br>3. 之前你对GNU make没有概念、或者刚开始接触,本身又想成为一个Linux下的专业程序员,那么建议:完整学习本文的各个章节,包括了基础知识和高级用法、技巧。它会为你在Linux下的工程开发、工程管理提供非常有用的帮助。<br><br>4. 此中文文档当前版本v1.5,本文的所有勘误和最新版本可在主页 http://xhbdahai.cublog.cn 上获取!!<br><br> <br><br>谢谢!<br><br> 徐海兵 2005-12-31

2007-12-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除