字节对齐(#pragma pack)

字节对齐(#pragma pack)
字节对齐(#pragma pack) 详解 什么是对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐 对齐的作用和原因:各个硬件平台对存储空间的处理有很大的不同。一些平台对某些特定类...

详解大端模式和小端模式

详解大端模式和小端模式
文章来源:http://blog.csdn.net/ce123_zhouwei/article/details/6971544#t0 一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的...

++i和i++效率谁高

++i和i++效率谁高
2014届搜狗校招笔试题再次提到了这个经典的问题,去百度上查资料解答是: (1):++i是在i上直接加1,表达式的值是i本身 i++也是在i上加1,表达式的值是加1前的副本 因为要存副本,所以效率略低,但是实际上大部分编译器都会完成这部分优化工作,但是对于自定义的迭代器之类的,就未必有优化了 (2):如果i是内置类型的,如int,效率是一样的(没有拷贝构造函数)。 如果是非内置类型的。如自定义类型A: A& A...

如何检查内存泄漏

如何检查内存泄漏
如何检查内存泄漏 假如程序如下: [cpp]#include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int *p; p=new int; *p = 10; cout<<*p<<endl; return 0; } [/cpp] 我们不去释放p申请的内存就会照成内存泄漏。 如何检测:在程序中加入如下代码 [cpp]#include "stdafx.h" #include "iostream" using namespace std; //检测内存泄漏 #define CRT...

C++中派生类对基类成员的三种访问规则

C++中派生类对基类成员的三种访问规则
C++中派生类对基类成员的访问形式主要有以下两种: 1、内部访问:由派生类中新增成员对基类继承来的成员的访问。 2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。 1、私有继承的访问规则 当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生类的其它成员可以直接访...

SetTimer无窗口使用模型

SetTimer无窗口使用模型
SetTimer无窗口使用模型,无窗口的时候使用如下:其中TimerProc为回调函数,OninitWork中GetMessage是从调用线程的消息队列中取得一个消息并将其放于指定结构,分发一个消息给窗口程序。DispatchMessage通常消息从GetMessage函数获得消息被分发到回调函数(过程函数),作用是消息传递给操作系统,然后操作系统去调用我们的回调函数。 [cpp] void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWO...

MFC菜单添加快捷键

MFC菜单添加快捷键
MFC菜单添加快捷键 对于我这种编程大菜来讲,不写得极度明白加上图解的话,始终是难以理解并且会马上就忘的 。 文章来源:百度空间.伊瑞玛的缺陷 ①.资源视图点右键->添加资源->Accelerator MFC菜单添加快捷键1 ②.Accelerator与要绑定的菜单ID一致,这个菜单是总菜单的ID,不是某一子菜单项   MFC菜单添加快捷键2 ③.在Accelerator里面设置快捷键,ID为对应的子菜单ID MFC添加菜单快捷键3.1 &nbs...

mysql配置ODBC数据源

mysql配置ODBC数据源
MySql是无法直接在Windows系统上添加ODBC数据源的! 只需下载一个驱动程序即可! 需求:MYSQL数据库的ODBC驱动程序:mysql-connector-odbc-3.51.20-win32.exe(百度一下) 这时创建ODBC数据源的时候会多出一个Mysql ODBC 5.1 Driver! 选择这个即可! 配置成功,点击Test按钮,测试,连接成功会提示 Connect success!

构造函数为什么不能是虚函数

构造函数为什么不能是虚函数
从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那...

already defined in .obj解决方案

already defined in .obj解决方案
我的程序是如下形状:一个头文件.h,一个主函数.cpp,一个操作函数.cpp。操作函数包含头文件,然后主函数包含操作函数.cpp。运行时出现错误: 错误症状: Linking... xz.obj : error LNK2005: "public: __thiscall XZ::XZ(void)" (??0XZ@@QAE@XZ) already defined in xzmain.obj xz.obj : error LNK2005: "public: void __thiscall XZ::pdc(void)" (?pdc@XZ@@QAEXXZ) already defined in xzmain.obj xz.obj...
Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录