#pragma 预处理指令,作用是设定编译器的状态或者指示编译器完成一些特定的动作。
- #pragma once 保证头文件被编译一次
- #pragma warning
#pragma warning(disable:450734;once:4385;error:164)
等价于:
#pragma warning(disable:450734)//不显示4507和34号警告信息
#pragma warning(once:4385)//4385号警告信息仅报告一次
#pragma warning(error:164)//把164号警告信息作为一个错误
- #pragma pack(1)设置存储以1为对齐方式
结构体对齐原则:
对于结构的各个成员,第一个成员位于偏移为0的位置,以后每个数据成员的偏移量必须是min(#pragma pack()指定的数,这个数据成员的自身长度) 的倍数。
在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragma pack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行
#pragma pop()就是取消#pragma pack(n)的意思了,也就是说接下来的结构不用#pragma pack(n)