c/c++
文章平均质量分 79
yony2011
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ new、delete、内存泄漏
人们有时好像喜欢故意使C++语言的术语难以理解。比如说new操作符(new operator)和operator new的区别。 当你写这样的代码:string *ps = new string("Memory Management");转载 2011-08-29 16:12:54 · 1659 阅读 · 0 评论 -
WINCE应用的UI实现方案
一、MFC的硬伤在接手现在这个项目之前,我对WINDOWS平台上的UI开发还是个白痴,除了MFC,就只知道GDI了。而且居然大言不惭地说用MFC只能画画灰色的对话框和按钮。但不论如何,在嵌入式这种对成本极度敏感的项目上,我是不会拍板用MFC的。假设极端情况,定制后的系统是31.8M,我放一个ARMV4I上的MFC DLL进去,大概500多K,那么只有两种选择,要么把32M的FLASH换转载 2012-09-24 10:58:14 · 1207 阅读 · 0 评论 -
static和const的比较和解释
static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用: 一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为转载 2012-12-05 00:33:31 · 481 阅读 · 0 评论 -
设计模式-compesite
一、组合模式简介(Brief Introduction)组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 二、解决的问题(What To Solve)解决整合与部分可以被一致对待问题。三、组合模式分析(Analysis)1、组合模式结构Component类:组合中的对转载 2012-11-22 16:11:06 · 675 阅读 · 0 评论 -
设计模式-FlyWeight
FlyWeight模式在实现过程中主要是要为共享对象提供一个对象池,其中有一个类似Factory模式的对象构造工厂,当用户需要一个对象的时候,会象工厂发出一个请求对象的消息,工厂会通过对象池遍历池中的对象,如果有直接返回,没有于是创建。1、抽象享元(Flyweight)角色:此角色是所有的具体享元类的基类,为这些类规定出需要实现的公共接口,通过这个接口Flyweight可以接受并作用于转载 2012-11-23 16:42:33 · 441 阅读 · 0 评论 -
VC多线程编程
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() {Sleep(60转载 2012-12-09 01:39:00 · 500 阅读 · 0 评论 -
_T、_TEXT、TEXT、L
百度或谷歌一下,有很多大牛早已经写过无数相关的文章说明这几个宏的作用而我嘛,写这篇东东当是给自己一个提醒,因为之前直接使用了L这个标志,搞到后来要自己手动转编码MSDN中对于L的说明有一大堆英文,不过主要的就是:L是用来标志一个字符(串)为宽字符(串)宽字符和多字节字符的说明如下:(引用自网络)宽字符,wide character,该字符集内每个字符使用相同的位长;转载 2012-12-28 11:58:58 · 709 阅读 · 0 评论 -
关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT
char :单字节变量类型,最多表示256个字符,wchar_t :宽字节变量类型,用于表示Unicode字符,它实际定义在里:typedef unsigned short wchar_t。为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下: wchar_t c = `A' ; wchar_t * p = L"Hello!"转载 2012-12-28 13:37:25 · 466 阅读 · 0 评论 -
Windows下的函数调用约定
注:这里的函数调用指的是C/C++中的函数调用,平台是Windows。如果要写可移植的代码,最好不要显式的使用这些调用约定。Windows上目前最常见的调用约定应该有如下四种:__cdecl,__stdcall,__fastcall和__thiscall,另外有好多从中#define出来的macros。这四种每种都规定了函数在调用时和调用后的处理步骤。在分析各种调用前,首先要了解下转载 2013-01-04 12:20:01 · 1851 阅读 · 0 评论 -
设计模式-Decorator
一 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。——包装器Wrapper。二 动机 有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边转载 2012-09-10 09:51:29 · 601 阅读 · 0 评论 -
默认拷贝构造函数,浅拷贝,深拷贝
类定义中,如果未提供自己的拷贝构造函数,则C++提供一个默认拷贝构造函数,就像没有提供构造函数时,C++提供默认构造函数一样。C++提供的默认拷贝构造函数工作的方法是:完成一个成员一个成员的拷贝,如果成员是类对象,则调用其拷贝构造函数或者默认拷贝构造函数。/*--------------------------------------在默认拷贝构造函数中,拷贝的策略是逐转载 2012-07-18 16:00:11 · 1859 阅读 · 0 评论 -
类访问控制(包括copy机制相关)
问题(知识点)描述:a. 在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量。b.在类的成员函数中可以访问同类型实例的私有变量。c. 拷贝构造函数里,可以直接访问另外一个同类对象(引用)的私有成员。d.类的成员函数可以直接访问作为其参数的同类型对象的私有成员。举例描述上述知识:1).在拷贝构造函数中可以访问引用对象的私有变量:例如: class转载 2012-07-17 16:32:16 · 813 阅读 · 0 评论 -
C/C++ 宏带来的奇技淫巧
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。关于宏的一些语法转载 2011-08-29 16:28:04 · 429 阅读 · 0 评论 -
Objects Counting in C++
在 C++ 中计算对象个数Objects Counting in C++(C++ User's Journal, 1998/04)作者:Scott Meyers译者:陈崴在 C++ 中,对某个 class 所产生出来的 objects保持正确的计数,是办得到的转载 2011-08-29 16:25:54 · 1397 阅读 · 0 评论 -
C++中 extern C含义深层探索
1.extern "C" 包含双重含义: (1)被extern "C"限定的函数或变量是extern类型的; extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使转载 2011-08-29 16:29:16 · 592 阅读 · 0 评论 -
程序只运行一次的方法
一、通过创建互斥量来判断: WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application-> Initialize(); HANDLE hMutex = CreateMutex转载 2012-04-10 12:03:34 · 849 阅读 · 0 评论 -
Windows内存映像文件及其应用
关键词:内核对象、内存映像文件、数据共享Key Words: Kernel Object; Memory-Mapped Files; Data Sharing一.内核对象和地址空间为了更好地理解本文后面的内容,在介绍内存映像文件之前我们先简单回顾一下Windows中内核对象和地址空间的有关概念。在Windows中有各种内核对象,如事件、文件、进程、旗语、互斥体等。内核对象是由系转载 2012-04-10 16:42:40 · 1408 阅读 · 1 评论 -
在VC中使用安全版字符串操作函数
1.前言对于直接使用C-Style字符串的C/C++ Coder来说,一个潜在的危险是如果目标缓冲区的大小不足以容纳要拷贝的文本,则会发生内存破坏strcpy/wcscpy以及其他大多数旧式的字符串处理函数来说,最大的问题是,它们只根据字符串末尾的\0来判断文本是否结束,而指定缓冲区的大小对它们来说是透明的,这就使得它们自己也不知道自己是否做了不该做的事情。考虑下面的例子:转载 2012-04-10 18:20:55 · 2773 阅读 · 0 评论 -
C语言字符串函数大全
#ifndef __HAVE_ARCH_STRNICMP/*** strnicmp - Case insensitive, length-limited string comparison* @s1: One string* @s2: The other string* @len: the maximum number of characters to compare*/int st转载 2012-05-29 12:02:34 · 486 阅读 · 0 评论 -
C语言的布尔类型
在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法://定义一个int类型变量,当变量值为0时表示false,值为1时表示trueint flag;flag = 0;//......flag = 1;if( flag ){//......}但这种做法不直观,而且没有明确flag一定是布尔值。所以我们又借助C语转载 2012-05-22 13:10:58 · 4015 阅读 · 0 评论 -
KMP
教你初步了解KMP算法作者: July 、saturnma、上善若水。 时间; 二零一一年一月一日-----------------------本文参考:数据结构(c语言版) 李云清等编著、算法导论引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。本文由简单的字符串匹配算法转载 2012-12-21 12:16:19 · 1559 阅读 · 0 评论
分享