自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 关于通过不含虚析构函数的基类类型的指针删除派生类对象的问题

如题。这问题先得基于一个前提条件:析构函数不含释放其他资源的代码,甚至可以是空函数,甚至甚至都可以干脆的不写。这种情况下是否仍有任何问题。  这个问题的结论是 会导致未定义的行为(但不是内存泄漏那么简单)。具体如何就看编译器的实现了。  我们常用的编译器,如vc、gcc等都是用的尾部追加成员的方式实现的继承(前置基类的实现方式)。这样的话在最好的单继承环境下,可以做到对于同一个对象,整个类

2013-10-05 08:22:44 3443 1

原创 在没有对象的情况下使用decltype和sizeof问题的解决方案

假如声明了一个类型A,想得到其大小,可以写作sizeof(A)假如定义了一个A类型的对象o,想得到其大小,可以写作sizeof(o)假如声明了一个结构体TAG,内有成员m,想得到其大小,可以写作sizeof(TAG::m)是吗?不行的。因为现在TAG::m的处

2011-10-01 22:08:34 982 1

转载 [转]wxWidgest: 编程风格指导

http://www.wxwidgets.org/develop/standard.htm#no_ternarywithobjects ---------------------------------------------------------------Pro

2011-08-10 10:36:33 1254

转载 #pragma pack 文章收集

关键内容已标成绿色

2011-07-25 08:03:45 868

原创 关于右值引用的粗略研究

右值和右值引用相关要点

2011-07-02 11:05:30 920

转载 微软kinect的五个非游戏的应用

<br />http://techland.com/2010/11/26/top-five-uses-for-your-kinect-besides-gaming/<br /> 

2010-12-05 17:20:00 672

转载 [转]程序员会犯的10个错误

1 不是为人,而是为编译器写程序;2 编写巨型函数;3 高深莫测地优化技巧;4 使用全局变量;5 事先不做好规划;6 “多出一个”(例如一个访问数组的循环中不正确的循环中止条件,导致数组访问越界);7 压制异常、对错误毁尸灭迹;8 以纯文本形式存储秘密;9 不检查用户输入(的合法性,尤其是对程序运行的稳定性的影响);10 不作自我提高以跟进时下的新技术;

2010-12-05 16:52:00 1345

原创 规范化的C++编程方法备忘录 整数分类的细则

整数

2010-10-10 22:31:00 702

转载 [转]字符串编码杂谈

多语种的字符串编码实现简介

2010-07-27 16:03:00 761

原创 (转)为什么要用C运行时库的_beginthreadex代替操作系统的CreateThread来创建线程?

1.截取自 http://www.cnblogs.com/s5689412/archive/2006/12/05/582670.html2.似乎是对《windows核心编程》线程那章的copy & paste ??

2010-06-17 11:03:00 851

原创 规范化的C++编程方法备忘录 本地化相关[写中文版软件必看](2)

-从字符串中取字符:对于ASCII及UNICODE(1),方法比较简单,直接用相应的类型变量赋值即可:char c = *pszAscii;wchar_t cw = *pswzUncd;对于多字节:规定每个字符最多为5个字节,因此用一个64位整数表示。然后附上一个长度值。将你要拣出的字符,从首字符开始拣出5个字节。然后调用一次strinc或CharNextEx等。如果得到的结果小于5个字节,就把多

2010-05-17 21:58:00 755

原创 (转)Boost源码剖析之:容器赋值-assign 收藏

原文出处 http://oss.org.cn/?action-viewnews-itemid-3939Boost源码剖析之:容器赋值-assign发布: 2009-4-30 10:18    作者: ECHO    来源:    查看: 99次 相信大多数使用STL的人都是为了使用里面的容器,使用vector、list、map的程序员对以下代码可以说是非常熟悉了: ve

2010-05-16 20:03:00 641

转载 (转)《如果让我重新读次研究生》——王泛森院士 收藏

一、研究生与大学生的区别    首先跟大家说明一下研究生和大学生的区别。大学生基本上是来接受学问、接受知识的,然而不管是对于硕士时期或是博士时期的研究而言,都应该准备要开始制造新的知识,我们在美国得到博士学位时都会领到看不懂的毕业证书,在一个偶然的机会下,我问了一位懂拉丁文的人,上面的内容为何?他告诉我:「里头写的是恭喜你对人类的知识有所创新 ,因此授予你这个学位。」在中国原本并没有博硕士的学历,

2010-05-09 14:44:00 934

原创 规范化的C++编程方法备忘录 程序流程(3)

避免条件分离-以下代码不好int aiBuff[15];...for(i = 0; i < 15; i++) aiBuff[i] = 0; 要改成int aiBuff[15];...for(i = 0; i < sizeof(aiBuff) / sizeof(aiBuff[0]); i++) aiBuff[i] = 0; 这样是为

2010-05-08 17:30:00 585

原创 规范化的C++编程方法备忘录 本地化相关[写中文版软件必看](1)

1.字符和字符串-编码:为了将人类定义的文字在计算机中能完整地表示,人们使用逻辑上连续存放的整数表示语句。受历史的影响(早期的计算机是没有考虑国际化的。那是为科学家和高校设计的,字符串存在的目的之一是用尽可能少的字符表达特定环境下的语义。知道意思即可,所以不乏大量的英文缩写、符号与数字的混合体),计算机被指定用0~127表示语言(仅英文、数字和标点符号,剩下的做编辑、控制符),成为ASCII。

2010-04-30 09:25:00 975

原创 规范化的C++编程方法备忘录 常用符号表示方法

-如果系统对某个操作有自己的一套规则,就尽量使用系统提供的库文件中声明过的符号,不要自己去实现它例1:不要在系统要求使用 GET_X_LPARAM(a) 的地方使用 (int)(short)((a) & 0xffff) 取代(如GetMessagePos的返回值)。例2:不要自己实现多字节的crt库,如strinc等。尽可能使用标准的东西。-注意下面的内容是自定义的,但他们之所以能

2010-04-30 08:26:00 1250

原创 规范化的C++编程方法备忘录 对象管理

    先说一些题外话...  其实并没有“Win64编程”这一说法。只有64位Windows、64位平台、(应用程序的)64位版本。Win32PlatformSDK自从7.0版发布以来就做了修订。支持32/64位一体化代码。微软保证:没有特殊说明的API在32位和64位上都有相同的形式(仅针对库文件而言)。64位的API也叫Win32API(的64位版本)。没有Win64API一说。  当然不是

2010-04-22 17:36:00 682

原创 规范化的C++编程方法备忘录 Windows下线程编程(Rev1.1)

    编译原理、计算机原理的基本内容,我不想重复了。放上些内容,主要是关于理论与实际间的差距。 - 线程间共享变量应该在声明时加入volatile关键字    如果不加会怎样?看以下代码:intptr_t a = 1; // Reset by another thread....while(a){// Looping until a equal to zero.    Sleep(0);}优化后

2010-04-22 17:33:00 541

原创 规范化的C++编程方法备忘录 c++ for windows(2)

DllMain(说明:这不是一个API,但用对它很重要)  详见http://msdn.microsoft.com/en-us/library/ms682583.aspx,(你在自己的MSDN光盘上也可找到。后同,略)需要强调的是Remarks中的"The entry-point function should perform only simple initialization or termi

2010-04-22 17:29:00 671 1

原创 规范化的C++编程方法备忘录 c++ for windows

上面几贴的内容会很有用。后面说的假定你已经知道这些东西了。这是一个复杂的系统,需要大量的人做不同的工作... C++和Windows并无本质的联系,但个人认为在操作系统中,Windows的MSDN是C++/C中非常规范的典型例子,不像其他操作系统、非MS公司的windows软件那样,代码编写的随意性很大。本文旨在通过描述C++环境下的Windows API调用及MS官方的建议来表明规范的第

2010-04-22 17:26:00 775 2

原创 规范化的C++编程方法备忘录 程序流程(2)

 - 函数 - 前面提过的:成员函数(方法)是不参与决定结构本身的大小的,但函数指针成员则参与。这很好理解:因为函数指针就是一个指针变量。 - 如果有结构体或类指针/引用作为参数,未经说明就不要将无同步保护的多线程共享结构地址传入该函数。 - 如果你想自己定义并编写好用的函数:1.明确函数的行为、目的、参数及返回值、使用方法及调用时必须满足的前提条件、禁忌、是否要公开到用户库文件中、是否申请了堆、

2010-04-22 17:23:00 510

原创 规范化的C++编程方法备忘录 内存管理

很多编程书都谈过这个问题。只关心API的可见罗云斌的《Win32汇编语言程序设计》;关心质量的典型,可见林瑞的《高质量程序设计指南C/C++》;如果用的C++,就应该知道各种经典的对象管理技术,以及用模板包装常规对象如句柄的方法(例如C++ for COM中的ATL),还可以用类似垃圾收集器的原理管理对象...。    这里主要说明的是对Win32编程有直接关系的内容,这些内容有部分都可以

2010-04-22 09:31:00 574

原创 规范化的C++编程方法备忘录 杂项约定

1.引子    对于程序编制人员来说,怎样安排他们的代码成了他们除设计具体算法外的最大的任务之一。和学生时代开发的试验品相比,所写代码还必须在执行正确的前提下(但这是个绝对的前提),保证健壮、可靠、系统收敛的,还必须尽可能的快(但不能以降低稳定为代价)。你还得保证代码看起来“漂亮”,以便让其他人看着舒服——请记住:你写的代码不是给你看的,是给别人,尤其是给开发测试人员——看的。这里的“其他人”还包

2010-04-22 09:15:00 482

原创 规范化的C++编程方法备忘录 程序流程

 - goto语句的争议    从前很多人都喜欢用goto,结果程序结构常常变得难以理解,现在却相反——坚决反对goto,甚至有人要取消它。这就叫“goto恐惧症”...    用goto即有好处又有坏处,看具体情况了。    如:for(y = 0; y {    for(x = 0; x     {        if(clr == 0x000000)            goto J_Bl

2010-04-21 14:13:00 764

原创 规范化的C++编程方法备忘录 C/C++算数运算:

    已经知道的,不说了...大家都知道的,可以问问,查查资料。这里又放些附加建议:1.基本算数运算:  既然计算机里没有真正的整数,那么计算机里也没有真正的算数运算。    取值范围:  设a和b是两个占一样位宽的无符号整数,这种整数可取到最大值MAX:    如果f1为一元运算,f2为二元运算,则先将计算机中的整数和运算扩展到 {0}UZ+ 域有      f1(a) = fz1(az) %

2010-04-21 13:56:00 723

原创 规范化的C++编程方法备忘录 结构体和类

  -复合式数据类型的大小:很久前看过有计算机考题如下:struct tcs{    char a, b, c;};则sizeof(tcs) == ______编程时发现实际情况与答案不同:如果你写了一个这样的结构体,编译运行,调试时应该会显示结果为4。这是因为有对齐到WORD边界的规定(答案就是4)。现在在结构体上下加几句,结果如下:#pragma pack(push)#pragma pack(

2010-04-21 13:35:00 1059

原创 规范化的C++编程方法备忘录 整数声明

形式上把整数分成3大类:-通用型整数:int/long/short/char,及他们的unsigned类型特点:标准字节的宽度 | 用于大小有限,又不强调最大值,或者最大值总保证满足实际需要的场合。| 平台无关。不同的编译器,同样类型的整数,不同编译器厂商规定的实际字节的宽度可能不同,具体由编译器厂商决定。| 不要假定某个类型的具体位宽(除了char/unsigned char),不要假定

2010-04-14 14:51:00 772

原创 规范化的C++编程方法备忘录 说明

编程最有趣的地方在于:以前越怕麻烦,以后就越麻烦。 我身边的“大部分”同行,写代码的随意性很大。直到出现“bug”才去查,结果发现潜在的问题到处都是...只好发现一点改一点。我想这就是国产软件不好的根本原因之一吧:懒得做好就做不好。不要忘了一个系统的有效性等于各部分有效性的乘积。到处都有点小问题的系统是没法稳定的。很多人不喜欢规范。国内很多人都是因为不愿受制于规范才去

2010-04-14 05:44:00 604

空空如也

空空如也

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

TA关注的人

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