
C/C++ 基础
fysy0000
这个作者很懒,什么都没留下…
展开
-
typedef #define 理解
typedef 类型再定义基本句法 typedef OriginalType NewType作用 1 定义原来类型别名 使得代码阅读性提高 例如 typedef unsigedint sizt_t 2程序移植性更好。加入16机器上in原创 2011-07-13 02:13:05 · 382 阅读 · 0 评论 -
数组定义 时候小技巧 宏应用
#includeusing std::cout;using std::endl;#define COUNT_TEST static_cast(sizeof(aiTest) / sizeof(int))int main(){ int aiTest[]={1,2,原创 2011-07-19 16:55:33 · 506 阅读 · 0 评论 -
C++ 对象内存布局 虚表
先问一个问题,在C++里,成员函数里的this指针和调用此函数的对象地址总是一样的吗?如果你的回答是:不一定。那么至少你是个老手吧,下面的内容你就不用看了;如果你的回答是:是啊,那么强烈建议你看看下面的内容。 非静态成员函数,无论是不是虚函数,都隐藏了一个this指针参数。这个参原创 2011-07-19 21:47:53 · 948 阅读 · 0 评论 -
C++ 虚表深入理解
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R原创 2011-07-20 16:36:29 · 853 阅读 · 0 评论 -
多个线程公用函数体
多线程访问同一个函数为什么要互斥呢?如果函数是可重入的,就没有这样的问题,随便你怎样访问,每次都会是不同的堆栈来处理这个函数调用吧。原创 2011-07-27 22:36:37 · 877 阅读 · 0 评论 -
sizeof 内存对齐
关于sizeof()的一些思考(转载)2007-10-21 20:35文章作者:lostinmymind原始连接:http://lostinmymind.blogchina.com/index.html关键字:sizeof,字节对齐,多继承,虚拟继承,成员函数指针前向声明:siz原创 2011-07-19 20:11:14 · 609 阅读 · 0 评论 -
对象引用 计数 原理
C++ 模拟对象引用计数原创 2011-07-20 10:41:17 · 1017 阅读 · 0 评论 -
结构体 写入文件 C++ 深入理解
fwrite等写文件的函数都是void*的输入,直接填入结构体的指针即可,前提是结构体中不能有指针类型,有的话那些东西写不进去.可以这样理解,结构体内全部存储的是成员变量,结构体首地址存储的是第一个变量的首地址,结束位置存储的是最后一个变量的位置。如果用同一种编译器,对变量的地址原创 2011-07-20 12:57:30 · 9404 阅读 · 0 评论 -
C 语言文件存储 文本 2进制
都是2进制的方式存储在磁盘上面,是内存中数据在磁盘上的另一种方式。注意,选择合适的方式。文本:会转化字符,如10 如转化成 10 13回车会转化,长度增加 ,当读入时候遇到 10 13会合并(这种方式对于图片声音是灾难性的)2进制不转化按照自己存储,读写。原创 2011-08-03 17:44:43 · 620 阅读 · 0 评论 -
网络中下载文本文件误区
文本文件在windows上面回车为 \r\n 读写文件的函数充当的角色是吧\n翻译\r\n把\r\n翻译\n 网络传输下载中服务器用二进制打开了文本文件,\r\n全部都出来,如果写入文件时候用不是二进制写入,那么\r\n被翻译成\r\r\n多出一个\rMAC的换行是\r window原创 2011-11-22 14:48:18 · 646 阅读 · 0 评论 -
C++ 虚函数理解
class A{ public: int y;int x;virtual fun1();virtual fun2();}class B:public class A{ public: int z; virtual fun1(); fun3();}原创 2011-07-19 22:46:32 · 564 阅读 · 0 评论 -
结构体存储文件 C 深入理解2 直接存储,有大端和端的问题。
结构体存储文件 C 深入理解2 直接存储,有大端和端的问题。原创 2011-07-20 16:01:13 · 1554 阅读 · 0 评论 -
大端小端问题
不同的CPU或者说计算机体系结构支持的存储结构是不同的。IntelX86 支持的是小端口 当一个存储大于1byte时候,我们将会用多个存储单元存储。这些存储单元的顺序就是我们称的大端,小端口问题如下列数据 int a =1; 注意大小端只是针对byte字节间的顺序,byte原创 2011-07-21 11:50:10 · 3000 阅读 · 0 评论 -
C++ 内存划分
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。千万别混合搭配 new free malloc free 两个存储区域。 自由存储区,就是那些由原创 2011-07-24 11:08:48 · 479 阅读 · 0 评论 -
C标准库 rand理解
int main(){ srand(time(NULL)); for(int i =0;i<50;i++) { printf("%d ",rand()); } printf("\n");原创 2011-07-15 23:39:57 · 560 阅读 · 0 评论 -
new/delete malloc free
new/delete不是库函数,它只是C++的运算符;而malloc/free是C++/C语言的标准库函数。如:string *str;new 一个string; 用free将会释放str指向的内存, 但是不会调用string的析构函数而string是一个字符串类,里面不仅有数据转载 2011-07-24 10:57:25 · 527 阅读 · 0 评论 -
产生特定范围 rand
rand() 在seed初始化后,会产生【0-RAND_MAX】之间的整数如果要得到【R1-R2】之间的随机序列。不要试图用下面的方法,这个方法会降低随机性的int iRand = rand() % R2// 产生 0 - R2之间的序列,这个方法会降低随机性的int iRand原创 2011-07-17 12:26:42 · 651 阅读 · 0 评论 -
C/C++ 变长参数 (自己定义类似printf的函数)
#include/* va_list 参数列表指针,C语言默认函数又到左压栈。 va_arg 获取参数 va_end 清空参数 缺点不能动态知道参数类型 + 参数个数。 printf函数依靠格式化字符串判断参数类型和个数 */原创 2011-07-17 13:47:24 · 2919 阅读 · 0 评论 -
c/C++ 函数参数返回值的深入理解
函数形参分为:值类型,引用类型。 值类型分为 值类型和指针函数默认是有栈大小的 函数栈默认1-2M编译器自动分配,作用参数压栈,函数返回值临时变量创建。函数递归时断点保护,变量保护。由此可以大致计算函数可以递归调用的次数。例如下面的程序struct stuStudent{原创 2011-07-17 18:24:00 · 702 阅读 · 0 评论 -
cctype 原来C ctype.h 几个函数理解
iscntrl() //返回控制字 true,比如/n/t等等isspace() //返回空白字 true 比如" ""\t"isgraph()//可打印字符,true原创 2011-07-18 14:30:24 · 785 阅读 · 1 评论 -
string 用法
/* Name: Copyright: Author: Date: 18/07/11 13:25 Description: the way to use string. some important princinple*/#include#原创 2011-07-18 14:26:47 · 498 阅读 · 0 评论 -
C++ 虚函数 修改虚表
#include#includeusing namespace std;class CC{ public: virtual void Print() { cout<<"CC"<<endl; } } ; class Cst:public CC{ private: int a; int b; public: Cst(int a,int b)原创 2011-07-20 18:16:13 · 1726 阅读 · 0 评论