![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 81
渔村居士
这个作者很懒,什么都没留下…
展开
-
C_C++预定义宏
下面描述的宏定义,不需引用其他头文件,直接可用于代码中。特定的作用给我们提供了不少的便利。分别描述如下:1 -- __FILE__,__LINE__,__FUNCTION__或者__func____FILE__:当前程序行所在源文件名称,标准C支持,该宏当做字符串对待; __LINE__:当前程序行所在源文件内的行号,标准C支持,该宏当做整形对待;__FUNCTION__或者__f转载 2011-06-08 18:24:00 · 1341 阅读 · 0 评论 -
__stdcall __cdecl 与 __fastcall 区别
原文地址:http://blog.csdn.net/leonardwang/article/details/5248747 __cdeclC++void fun(int a) //默认__cdecl{ cout }int main(){ fun(3); system("pause"); return 0;} 反汇编:void fu转载 2013-03-07 14:17:24 · 752 阅读 · 0 评论 -
C++实现快速排序(源代码)
快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序是一种不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种转载 2011-11-09 22:01:38 · 185186 阅读 · 32 评论 -
C++对象模型系列集合
C++对象模型系列:文章: 指针和引用 指针与数组 指针与字符串 堆栈与函数调用 sizeof与对象内存布局 单继承与虚函数表 多重继承与虚函数表 虚继承与虚函数表 类型转化参考:1) C++对象模型 C++对象模型笔记:http://blog.csdn.net/ZengMuAnSha/archive/2004/10/13/135477.aspx转载 2013-02-21 14:06:31 · 859 阅读 · 0 评论 -
关于C++ 字节对齐
从union的sizeof问题看cpu的对界 考虑下面问题:(默认对齐方式) union u{ double a; int b;}; union u2{ char a[13]; int b;}; union u3{ char a[13]; char b;}; coutcoutc转载 2012-05-04 18:08:30 · 547 阅读 · 0 评论 -
10 个 Visual Studio 原生开发的调试技巧
英文原文:10 Even More Visual Studio Debugging Tips for Native Development原中文地址:http://www.oschina.net/translate/10-even-more-visual-studio-debugging-tips-for-native?from=20130127我以前关于Visual Stud转载 2013-01-31 14:06:35 · 975 阅读 · 0 评论 -
STL中map、set的数据结构及底层实现
摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。vector(向量)——STL中标准而安全的数组。只能在vecto转载 2012-11-23 19:56:23 · 1055 阅读 · 0 评论 -
12个有趣的C语言面试题
原文地址:http://www.csdn.net/article/2012-09-06/2809604-12-c-interview-questions/11.gets()函数问:请找出下面代码里的问题:#include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(bu转载 2012-09-08 00:08:49 · 628 阅读 · 0 评论 -
c++中new的3种使用方法
总结C++中三种关于"new"的使用方法虽然有三种new的用法,但是分为两大类也未尝不可,那么是哪两类呢?其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如:string* ps = new string("abc");上面这个new表达式完成转载 2012-07-02 17:14:15 · 1331 阅读 · 0 评论 -
标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这转载 2011-11-04 18:23:51 · 951 阅读 · 0 评论 -
内存管理:_CrtDumpMemoryLeaks和_CrtSetBreakAlloc
1._CrtDumpMemoryLeaks确定自程序开始执行以来是否发生过内存泄漏,如果发生过,则转储所有已分配对象。如果已使用 _CrtSetDumpClient 安装了挂钩函数,那么,_CrtDumpMemoryLeaks每次转储 _CLIENT_BLOCK 块时,都会调用应用程序所提供的挂钩函数。 CrtDumpMemoryLeaks()就是显示当前的内存泄漏。 注意是“当前转载 2012-05-30 15:59:52 · 884 阅读 · 0 评论 -
浅谈C++中内存泄漏的检测
首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck,功能非常强大,相信做C++开发的人都离不开它。此外就是不使用任何工具,而是自己来实现对内存泄露的监控,分如下两种情况:一. 在 MFC 中检测内存泄漏假如是用MFC的程序的话,很简单。默认的就有内存泄露检测的功能。我们转载 2012-05-30 15:22:36 · 567 阅读 · 0 评论 -
C++ 内存池 -- C++ Memory Pool
原文链接: http://www.codeproject.com/cpp/MemoryPool.aspC++ 内存池l 下载示例工程 – 105Kbl 下载源代码 – 17.3Kb目录l 引言l 它怎样工作l 示例l 使用这些代码l 好处l 关于代码l ToDol 历史 引言C/C++的内存分配(通过malloc或ne转载 2011-12-30 17:41:58 · 978 阅读 · 0 评论 -
[C++]explicit解释
explicit C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数, 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参转载 2011-12-26 12:27:01 · 551 阅读 · 0 评论 -
C++性能优化策略
1 关于继承:不可否认良好的抽象设计可以让程序更清晰,代码更看起来更好,但是她也是有损失的,在继承体系中子类的创建会调用父类的构造函数,销毁时会调用父类的析构函数,这种消耗会随着继承的深度直线上升,所以不要过度的抽象和继承。2 对象的复合:对象的复合和继承很相似,当一个对象包含其他对象构造时也会引起额外的构造。关于这点可能会有很多人不解,认为这是不可避免的,举个例子,你的一个对象中用到数组和字符串...转载 2018-03-15 13:36:41 · 404 阅读 · 0 评论