51CTO博客开发
首先无缓存只不过是指在用户层没有缓存,但对于内核来说,还是进行了缓存如果你想要写数据到文件中(即硬盘中),内核先将数据写入到内核中所设的缓冲储存器(write()系统调用),等缓冲器满的时候再真正写到磁盘上带缓冲的IO是在用户层再建立一个缓冲区(流缓冲区),通过减少对系统调用(read() 和 write())的次数来提高性能例如:用户多次调用fwrite将数据写入流缓冲区,等流缓冲区满的时候再调
程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来指定“对齐系数”。规则:1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或
引用int ival = 1024;int &refVal = ival;//refVal refers to ival引用是别名,作用在引用上的所以操作事实上都是作用在改引用绑定的对象上。refVal += 2;//将refVal指向的对象ival加2引用是const性质,定义时必须初始化,且一直保持初始化时所指向的对象,不可变化。const引用是指指向const对象的引用
const int* :指向const对象的指针不允许通过指针p来修改其所指对象的值,但是可以指向其他int对象但是:int i = 5;const int* p = &i;i++;依旧编译正确,所以const int* 应该理解为“自认为指向const对象的指针”int* const:const指针因为是const,所以一定需要初始化允许通过指针来修改其所指对象的值,但是不可以指向其他i
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号