
C/C++
likefrank
这个作者很懒,什么都没留下…
展开
-
内联函数与普通函数的区别是什么
问题: 内联函数与普通函数的区别是什么? 回答: 内联函数是代码被插入到调用者代码处的函数。如同 #define 宏,内联函数通过避免被调用的开销来提高执行效率,尤其是它能够通过调用(“过程化集成”)被编译器优化。 内联函数和宏很类似,而区别在于,宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的。而且内联函数是真正的函数,只是在需要用到的时候,内联函数像转载 2008-09-16 21:25:00 · 651 阅读 · 0 评论 -
虚继承之单继承的内存布局
C++2.0以后全面支持虚函数与虚继承,这两个特性的引入为C++增强了不少功能,也引入了不少烦恼。虚函数与虚继承有哪些特性,今天就不记录了,如果能搞了解一下编译器是如何实现虚函数和虚继承,它们在类的内存空间中又是如何布局的,却可以对C++的了解深入不少。这段时间花了一些时间了解这些玩意,搞得偶都,不过总算有些收获,嘿嘿。先看一段代码class A{ virtual aa(){};转载 2008-11-06 18:57:00 · 538 阅读 · 0 评论 -
浅谈C中的malloc和free
浅谈C中的malloc和free在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!转载 2008-11-06 16:39:00 · 606 阅读 · 0 评论 -
认识 C++ 中的 explicit 关键字
认识 C++ 中的 explicit 关键字(Danny Kalev发表于2004-12-28 11:01:04)带单一参数的构造函数在缺省情况下隐含一个转换操作符,请看下面的代码:class C {int i;//...public: C(int i);//constructor and implicit conversion operator//as well};void f转载 2008-11-06 09:13:00 · 561 阅读 · 0 评论 -
自动变量、静态变量的持续性、区域性、和链接性
作者:closeall 这里我想写一下变量的持续性、区域性、和链接性。先简单的介绍一下这三个属性是什么意思。所谓持续性就是说这个变量所持续的时间,即它在内存中存在的时间。区域性简单的说就是变量的作用域,就是说这个变量在哪个范围内有效的。链接性是说,这个变量是不是允许外部文件使用。先说自动变量。什么是自动变量呢 ?自动变量就是指在函数内部定义使用的变量。他只是允许在定义他的转载 2008-10-08 16:35:00 · 920 阅读 · 0 评论 -
论calloc和malloc的区别
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void*malloc(size_tsize);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void*calloc(size_tnumElements,size_tsizeOfE转载 2008-10-08 16:10:00 · 933 阅读 · 0 评论 -
对内联函数与普通函数的一些比较与分析
本文出处:http://blog.youkuaiyun.com/closeall2008声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章的作者, 出处以及声明信息. 谢谢. 我们知道c++通过内联函数对c语言进行了扩充,从而在某种程度上对程序的运行效率进行改进。然而普通函数与内联函数的区别不在于它们的编写方式上,而在于c++编译器对它们的理解、解释。转载 2008-10-08 16:47:00 · 639 阅读 · 0 评论 -
详解link
详解link有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicatedexternalsimbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual S转载 2008-10-05 14:43:00 · 755 阅读 · 0 评论 -
C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板转载 2008-10-21 12:20:00 · 461 阅读 · 0 评论 -
宏和内联函数的区别
先说宏和函数的区别:1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数转载 2008-09-16 21:27:00 · 1060 阅读 · 0 评论 -
[转]用C++ 设计一个不能被继承的类
分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父转载 2008-12-29 10:23:00 · 597 阅读 · 0 评论