C/C++
文章平均质量分 77
xiaoquanhuang
这个作者很懒,什么都没留下…
展开
-
memcpy() -- 拷贝内存内容
相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()表头文件: #include 定义函数: void *memcpy(void *dest, const void *src, size_t n)函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束返回值: 返回指向dest的指针附加转载 2011-05-11 10:58:00 · 568 阅读 · 0 评论 -
__cdecl __fastcall与 __stdcall
标题:__cdecl __fastcall与 __stdcall[转]出处:服务器开发(Server Development)时间:Fri, 22 Aug 2008 17:17:58 +0000作者:huzhangyou2002地址:http://www.do转载 2011-07-03 16:48:20 · 1589 阅读 · 0 评论 -
成员函数指针与高性能的C++委托
成员函数指针与高性能的C++委托(上篇) 撰文:Don Clugston 引子 标准C++中没有真正的面向对象的函数指针。这一点对C++来说是不幸的,因为面向对象的 指针(也叫做"闭包(closure)"或"委托(delegate)")在一些语言中已经证明了它转载 2011-07-03 12:36:17 · 2058 阅读 · 0 评论 -
"C++你知道吗?" 之 几个冷僻的关键字
<br />mutable关键字<br /><br />关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员<br />我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,<br />对像的状态也会随之发生变化!<br />如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是<br />该函数不会修改类的非静态数据成员.但是有些时候需要在该类函数中对类的数据成员<br />进行赋值.这个时候就需要用到mutable关键字了转载 2011-05-09 17:38:00 · 397 阅读 · 0 评论 -
C++中extern “C”含义深层探索
<br />1.引言<br /><br /> C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。<br />2.从标准头文件说起<br />某企业曾经给出如下的一道面试题:转载 2011-04-27 23:06:00 · 365 阅读 · 0 评论 -
export关键字的用法
<br />1.函数模版的编译模式分两种:完全包含编译模式和局部编译模式(需要用export关键字) <br />2.不同的编译器对这两种编译模式的支持各不相同,但一般都支持完全包含编译模式,具体支持情况需要参照具体使用的编译器文档 <br /><br />模版函数和普通函数在使用的时候有一定的区别: <br /> (1)普通函数在使用的源文件中直接include该函数的声明即可 <br /> (2)模版函数在使用的源文件中既要include模版函数的声明,也要include模版转载 2011-04-27 22:41:00 · 854 阅读 · 0 评论 -
c++中为什么不允许虚构造函数?
<br />刚才试了一下,c++确实不允许虚构造函数。<br />测试代码:<br /><br />class A <br />{ <br />public: <br /> virtual A()<br /> {<br /> cout<<"sgsfsdfasf";<br /> }<br />private: <br /><br /> int x;<br /><br />};<br /><br />int main()<br转载 2011-04-27 13:59:00 · 1490 阅读 · 0 评论 -
引用和指针的区别
<br />在c++函数中,形式参数用 引用 和用 指针都可以起到在被调用函数中改变调用函数的变量的作用。什么时候用引用作参数什么时候用指针作参数呢 void function (int *ptr); void function(int &ref); <br /> 没有 特定的规定。。 学的 久了,就 会习惯什么时候用指针什么时候用引用了 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 2) 不存在指向空值的引用,但是存在指向空值的转载 2011-04-23 15:56:00 · 875 阅读 · 0 评论 -
strlen与sizeof的区别
<br />strlen与sizeof的区别<br /><br />1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。<br />该类型保证能容纳实现所建立的最大对象的字节大小。<br /> <br />2.sizeof是算符,strlen是函数。<br />3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。<br />4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。<br /转载 2011-04-20 09:12:00 · 402 阅读 · 0 评论 -
STL中的排序算法一览
<br /><br />STL中有多种排序算法,各有各的适用范围,下面听我一一道来:<br /><br />I、完全排序<br />sort() <br />首先要隆重推出的当然是最最常用的sort了,sort有两种形式,第一种形式有两个迭代器参数,构成一个前开后闭的区间,按照元素的 less 关系排序;第二种形式多加一个指定排序准则的谓词。sort基本是最通用的排序函数,它使用快速排序算法,并且在递归过程中,当元素数目小于一个阈值(一般是16,我的试验是24)时,转成直接插入排序。伟大的数学家Knuth已转载 2011-04-20 12:10:00 · 503 阅读 · 0 评论 -
操作符重载
<br /><br />此篇文章来自于网上,作为自己学习中的笔记,若有侵权行为,请告之,24小时之内必删除!下面就转入正题吧!<br />一、什么是操作符重载?<br />一看到重载,很容易就让人联想到成员函数重载,函数重载可以使名称相同的函数具有不同的实际功能,只要赋给这些同名函数不同的参数就可以了,操作符重载也是基于这一机制的。系统为我们提供了许多操作符,比如“+”,“[ ]”等,这些操作符都有一些默认的功能,而操作符重载机制允许我们给这些操作符赋予不同的功能,并能够按照普通操作符的使用格式来使用自己定转载 2011-04-20 10:42:00 · 443 阅读 · 0 评论 -
c++中string的用法
<br />之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> //注意这转载 2011-05-11 18:12:00 · 488 阅读 · 0 评论 -
VS2010中的调试技巧 断点
今天的博文将介绍Visual Studio中的一些实用调试技巧。这是受我朋友Scott Cate (他发表过几十篇很棒的VS技术文章) 启发。他最近告诉我,许多Visual Studio下的程序员,甚至一些很有经验的开发人员,都不知道这些技巧。希望这篇文章能帮你掌握这些技巧。它们转载 2011-08-30 14:25:28 · 2962 阅读 · 0 评论