C/C++
文章平均质量分 54
wangsifu2009
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sizeof()和strlen()区别和使用方法
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type)数据类型必须用括号括住。如sizeof原创 2009-12-10 09:54:00 · 843 阅读 · 0 评论 -
析构函数可以是纯虚函数
在某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数。怎么办?因为抽象类是准备被用做基类的,基类必须要有一个虚析构函数,纯虚函数会产生抽象类,所以方法很简单:在想要成为抽象类转载 2011-09-17 16:36:09 · 2991 阅读 · 0 评论 -
字节对齐
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int,long,float等)的变量,也可以是一些复合数据类型(如数组,结构,联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个原创 2011-09-15 16:31:53 · 679 阅读 · 0 评论 -
#ifdef __cplusplus 的用法
我们知道C和C++在编译时对函数有一个mangling过程~所以C和C++程序不能直接相互调用,必须使用extern "C"进行修饰~ 一般来说,我们会这样写头文件中: #ifdef __cplusplus //注意__cplusplus是C 编译器的保留原创 2011-08-11 20:41:25 · 1981 阅读 · 0 评论 -
C语言异常处理
在C中,goto语句是不能跨越函数的,而执行这类跳转功能的是setjmp和longjmp。这两个函数对于处理发送在深层嵌套函数调用中的出错情况是非常有用的。setjmp参数env的类型时一个特殊类型jmp_buf,这一数据类型是某种形式的数组,其中存放在调用longjmp时能转载 2011-09-08 15:45:10 · 1474 阅读 · 0 评论 -
exit 和 _exit
进程终止有5种方法:1正常终止(1)从main函数返回(2)调用exit(3)调用_exit2异常终止(1)调用abort(2)由一个信号来终止 exit和_exit就是用来正常终止一个进程的,主要区别是_exit会立刻进入内核,而exit转载 2011-09-01 21:07:12 · 643 阅读 · 0 评论 -
FreeLibrary造成死锁的问题探讨
今天自己在写一测试程序时,显示调用一个DLL时,使用LoadLibrary函数,然后使用FreeLibrary函数进行释放时,出现了程序卡死的情况,网上这方面讲解比较少,且认为这造成了死锁,具体原因确实也弄不清楚~~不知道是测试程序的问题还是DLL的问题,后来索性自己写个DLL,原创 2011-08-04 09:49:06 · 6907 阅读 · 2 评论 -
标准IO边读边写文件
首先以读写方式打开(r+ w+ a+都可以,不过要注意读写位置指针分别指向文件头、文件头、文件尾),一次读一个字符(此时读写位置指针指向此字节后面,判断后,若要转换,移动读写位置指针fseek(fp,-1L,SEEK_CUR),再写入,由于在C中规定:以上述三种方式打转载 2011-09-01 20:12:15 · 4738 阅读 · 0 评论 -
函数指针,指向成员函数的指针与指向成员变量的指针
<br />1.从函数指针说起<br /> 可以声明一个指向特定函数的指针:<br /> void (*fp)(int); //指向函数的指针(函数指针)<br /> 注意:其中的括号是必不可少的,它表明fp是一个指向返回值为void的函数的指针,而不是返回值为void*的函数。<br /> void* fp(int); //声明一个返回值为void*的函数(指针函数)<br /> <br /> 函数指针的赋值:指向函数的指针可以为空,否则它就应该指向一个具有适当类型原创 2011-06-01 13:48:00 · 915 阅读 · 0 评论 -
深入探索C++对象模型笔记之五 —— 构造函数语意学 (成员们的初始化队伍 Member Initialization List)
当你写下一个constructor时,你有机会设定class members的初值。有两种方法:1.使用member initialization list2.在constructor函数本身之内有四种情况,为了让你的程序能够顺利编译,必须使用member initialization list:(1) 当初始化一个reference member 时(2) 当初始化一个const member 时(3) 当调用一个base class的constructor,而它拥有一组参数时(4) 当调用一个membe原创 2011-05-26 20:34:00 · 1005 阅读 · 0 评论 -
深入探索C++对象模型笔记之二 —— 关于对象(下)
<br /> <br />上一节讲了C++基本对象(没有使用继承)的模型构造。本节介绍C++的继承模型。<br /> <br />C++支持单一继承。<br />class Library_materials {...};<br />class Book:public Library_materials {...};<br />class Rental_book: public Book {...};<br />C++也支持多重继承。<br />class iostream:<br /> public原创 2011-05-26 15:39:00 · 503 阅读 · 0 评论 -
深入探索C++对象模型笔记之六 —— Data语意学
<br />对类或类的实例进行sizeof取大小<br /> <br />大小主要有三个因素影响:<br />1.语言本身所造成的额外负担:语言支持虚函数和虚拟基类时,导致一些额外负担。<br />2.编译器对于特殊情况所提供的优化处理:某些编译器会对empty virtual base class提供特殊支持。<br />3.边界对齐<br /> <br />Data Member的绑定<br /> <br />全局变量作用域与类的作用域。<br /> <br />早期C++的两种防御性程序设计风格:<b原创 2011-05-26 22:00:00 · 654 阅读 · 0 评论 -
深入探索C++对象模型笔记之四 —— 构造函数语意学 (Copy Constructor的建构操作)
<br /> <br />有三种情况,会以一个object的内容作为另一个class object的初值。<br /> <br />1.当对一个object做明确的初始化操作时<br /> <br />2.当object被当做参数交给某个函数时<br /> <br />3.当函数传回一个class object时<br /> <br />以上三种情况都会导致copy constructor的调用。<br /> <br /> <br />Default Memberwise Initialization<br原创 2011-05-26 19:14:00 · 883 阅读 · 0 评论 -
深入探索C++对象模型笔记一 —— 关于对象(上)
开篇就面向过程的C语言的体系进行了讲解,在C语言中,“数据”和“操作(函数)”是分开声明的。语言本身没有支持“数据和函数”之间的关联性。在C++中,使用的是“抽象数据类型(ADT)”或“类层次的数据封装”。从软件工程的角度来看,C++威力更大。C++加上封装后的布局成本:c++在布局以及存取时间上主要的额外负担是由virtual引起的。包括: Virtual function 机制 。用以支持一个有效率的“执行期绑定”(runtime binding)。 Virtual base class。用以实现“原创 2011-05-19 21:46:00 · 632 阅读 · 0 评论 -
Static 的作用
<br />关键字static的作用是什么?<br /><br />这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:<br />1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。<br />2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。<br />3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范原创 2010-10-23 19:40:00 · 421 阅读 · 0 评论 -
构造函数不能声明为虚函数
构造函数不能声明为虚函数的原因:1.所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是先构造父类对象,然后才能使子类对象,如果构造函数设为虚函数,那么你在构造父类的构造函数时就不得不显式的调用构造,还有一个原因就是为了防错误的发生,试想如果你在子类中一不小心重写了个转载 2011-09-17 16:39:49 · 1010 阅读 · 0 评论
分享