#pragma用于指示编译器完成一些特定的动作
1 设置内存对齐与警告
#pragma pack(push,_CRT_PACKING) //从此处开始结构体成员按照_CRT_PACKING所表示的字节数对齐
#pragma warning(push,3) //表示从此处开始将警告级别提升为3
#pragma warning(disable: 4521 4522 4800) //表示不记录4521 4522 4800号警告
#pragma warning(pop) //恢复警告
#pragma pack(pop) //恢复对齐
2 避免使用到外部宏定义,比如new 举例
#pragma push_macro("new")
#undef new
... // 期间使用的new为原始语义
#pragma pop_macro("new")
将宏定义new压入栈并取消它的定义,如此一来new的本来含义便获得了恢复,使用完毕后将宏定义new弹出栈,恢复宏定义