摘要:
e.g.struct test{ char x1;//1+1 short x2;//2 float x3;//4 char x4;//1+3}共12字节改变缺省的対界方式:使用伪指令#pragma pack(n) c编译器将按照n字节对齐方式使用伪指令#pragma pack();//取消自定义对齐方式应用实例:在网络协议编程中,出出力不同协议的报文。一种方法是通过指针编译来得到各种信息,这样做编程复杂,而且一旦协议发生变化,程序修改起来也麻烦。另一种方法:定义自己的协议结构,通过访问结构的成员来获取各种信息。#pragma pack(1) // 按照1字节方式进行对齐struct TCPHE 阅读全文
摘要:
1、一般在每个头文件中用#ifdef #define #endif 来让头文件只编译一次 这个的作用等同于#pragma once,但是前者用的比较多2、一个原则:尽量在cpp文件中包含需要的头文件,而非在头文件中3、第二个原则:如果可以不包含头文件,就不要包含了。可以用前置声明的就尽量用前置声明class A;3、什么时候用前置声明可以解决问题,什么时候就必须要用包含头文件? 在这个文件中如果是仅仅需要的另一个头文件中的类的指针,并没有用到这个类的具体对象,也没有访问到具体成员,可以用前置声明即可。也就是前置声明只能用于指针 阅读全文