#pragma once : 確保從此處往下的代碼片段只被編譯一次,與#ifndef實現的效果差不多,前者不需要使用宏名,後者需要,可以解決大工程中宏名重複的問題。
#pragma pack(push,MACRO_NAME) : 從此處往下的代碼(通常是結構體)按照MACRO_NAME的值指定的字節數對齊,並把原來的對齊字節數備份;
#pragma pack(pop) : 恢復原來的對齊字節數。
#pragma message(...) : 用於在代碼編譯的時期打印消息,常用於代碼的分析。
#pragma warning(...) : 編譯期間輸出警告信息;
#pragma warning(disable : MACRO_NAME) : 移除MACRO_NAME宏指定的警告信息;
#pragma warning(push : MACRO_NAME) : 從此處開始將警告級別按MACRO_NAME指定的值處理,並將原來的警告級別壓入堆棧。
#pragma push_macro("MACRO_NAME") : 將MACRO_NAME的值壓入堆棧;
#pragma pop_macro("MACRO_NAME") : 將MACRO_NAME的值從堆棧中恢復。