pragma、条件编译预处理指令用法(Visual Studio)

只被编译一次

#pragma once

结构体对齐

#pragma pack(1) 
(结构体中数据成员按1字节对齐)

加载静态链接库

#pragma comment(lib, "gdiplus") 
(使用gdi+,调用gdiplus.lib)

忽略静态链接库(用于消除静态库冲突)

#pragma comment(linker, "/NODEFAULTLIB:libcd.lib") 
(vs2005以上项目中调用vc6编译的静态库需要忽略libcd.lib)

#pragma comment(linker, "/NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmt.lib") 
(忽略多个静态链接库)

忽略警告

#pragma warning(disable:4996) 
(C4996: 编译器遇到了标记有 deprecated 的函数。在未来版本中可能不再支持此函数。可以用 warning 杂注关闭此警告)

扫描二维码关注公众号,回复: 2517352 查看本文章

仅报告一次警告

#pragma warning(once:4267 4244) 
(C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据) 
(C4244: “参数”: 从“int”转换到“Gdiplus::REAL”,可能丢失数据)

组合处理警告

#pragma warning(once:4267; disable:4244)

条件编译指令

#if defined(_WIN64) && defined(_DEBUG) 
#pragma comment( lib, "json_vc71_libmtd64.lib" )
#elif defined(_WIN64)
#pragma comment( lib, "json_vc71_libmt64.lib" )
#elif defined(_DEBUG)
#pragma comment( lib, "json_vc71_libmtd32.lib" )
#else
#pragma comment( lib, "json_vc71_libmt32.lib" )
#endif

猜你喜欢

转载自blog.csdn.net/xueluowutong/article/details/81262746
今日推荐