c++
DAo_1990
这个作者很懒,什么都没留下…
展开
-
WORD BYTE 相互转换
//数据转换函数//WORD to BYTEvoid CICONV::SetWordToByte(WORD wCardData, BYTE & cbCardData){ BYTE cbColor = wCardData >> 8; if (cbColor == 4) { cbCardData = 0x40|((wCardData & 0x000f) +原创 2015-08-26 19:19:28 · 6176 阅读 · 0 评论 -
C++ 防 陷阱1 逗号分隔的表达式
逗号分隔的表达式由于语言规则的不直观,容易产生理解上的误差。 在使用逗号分隔表达式时,C++会确保每个表达式都会被执行,而**整个表达式的值则是最右边表达式的结果**。原创 2015-09-07 09:32:44 · 533 阅读 · 0 评论 -
C++ 防 陷阱0 宏定义
建议正确合理使用C语言中的宏,能有效地增强代码的可读性。但是也要避免踏入其中的陷阱: 1、用宏定义表达式时,要使用完备的括号。其原因是优先级别问题 2、使用宏时,不允许参数发生变化。其原因是宏的字符替换问题。 3、用大括号将宏定义的多条件表达式包括起来。简单的字符替换,并不能保证对条件表达式都执行原创 2015-09-07 09:24:47 · 471 阅读 · 0 评论 -
C++ 命名建议
(1)名称必须直观,可望文生义,不必解码。 (2)长度要符合最小名长度最大信息量的原则,要用最少的字符表示最全的信息。 (3)与整体风格保存一致。Windows中喜欢骆驼命名法,而Unix中则偏好下划线命名法,如下所示:int studentCount = 0 //骆驼命名法int student_count = 0 //下划线命名法(4)变量名称应该是一个“名称”,或者是“形容词+名词”;而原创 2015-09-08 21:01:26 · 647 阅读 · 0 评论 -
C++ 不应该使用 “using namespace xxx”
C++ 任何情况下都不应该在头文件中使用 “using namespace xxx”,以避免可能的名空间污染,推荐使用全称:XXX::ABC.eg://修改前版本#include <vector>using namespace std; //不推荐class Data{ ...private: vector<int>m_vecData;}//修改后版本#includ原创 2015-09-09 09:33:35 · 588 阅读 · 0 评论 -
C++ 防 陷阱4 指针参数传递内存
用指针参数传回一块动态申请的内存,是很常见的一种需求。然而如果不慎小心,就容易造成严重的错误:程序崩溃+内存泄露!解决之道就是用指针的指针来传递,或者换种内存传递方式,用返回值来传递。原创 2015-09-08 20:19:16 · 634 阅读 · 0 评论 -
C++ 防 陷阱3 结构体位对齐详细说明
优化结构体中元素的布局 在下面的代码片段定义了结构体A和B:struct A{ int a; char b; short c;}struct B{ char b; int a; short c;}在32 位机器上,char、short、int 三种类型大小分别是1、2、4。那么上面两个结构体的大小如何呢?sizeof(struct A)=8原创 2015-09-07 10:31:06 · 640 阅读 · 0 评论 -
C++ 防 陷阱5 零值有陷阱 谨慎对待
零值有陷阱 谨慎对待 一般哟啊特别关注三个方面:(1) 0 在不在该类型数据的取值范围内?(2)浮点数不在绝对 0 值,所以浮点零值比较需要特殊处理;(3)区分比较操作符 == 与赋值操作符 = ,切记混淆。原创 2015-09-08 20:29:20 · 361 阅读 · 0 评论 -
C++ 防 陷阱2 重复包含头文件
multiple definition of 错误 为了避免重复包含头文件,建议在声明每个都文件时采用“头文件卫士”,采用google建议H具体形式如下:#ifndef _PROJECT_PATH_FILE_H_#define _PROJECT_PATH_FILE_H_......//声明、定义语句#endif原创 2015-09-07 09:52:55 · 617 阅读 · 0 评论 -
C++中的PImpl的技巧及其作用
1、PImpl(private implementation) 其主要作用是解开类的使用接口和实现的耦合。2、Pimpl 手法能比较完善的解决这些问题。利用 Pimpl 手法,我们把数据细节隐藏到一个实现类里:CImpl,而CSample 的 private 部分只剩下一个指针,那就是传说中滴 Pimpl 指针头文件中: class CSample { private: class CImp原创 2015-09-02 10:03:38 · 2323 阅读 · 1 评论 -
c++ 玩转 vector容器 用法
在c++中,vector是常用同时十分有用的容器。1 基本操作(1)头文件#include<vector>(2)创建vector对象,vector<int> m_nVector;(3)尾部插入数字:m_nVector.push_back(a);(4)使用下标访问元素,cout<<m_nVector[0]<<endl;记住下标是从0开始的。(5)使用迭代器访问元素.vector<int>::itera原创 2015-09-12 16:29:54 · 522 阅读 · 0 评论