日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 中的 #pragma warning(push) 和 #pragma warning(pop)有什么用

發布時間:2023/12/20 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 中的 #pragma warning(push) 和 #pragma warning(pop)有什么用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#pragma?warning(push)是保存當前的編譯器警告狀態;?
#pragma?warning(pop)是恢復原先的警告狀態。?

?

例如:rocksdb中的一段代碼

#if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable : 4244)? ? # 禁止compiler警告
?

// varint32編碼

char* EncodeVarint32(char* dst, uint32_t v) {// Operate on characters as unsignedsunsigned char* ptr = reinterpret_cast<unsigned char*>(dst);static const int B = 128;if (v < (1 << 7)) {*(ptr++) = v;} else if (v < (1 << 14)) {*(ptr++) = v | B;*(ptr++) = v >> 7;} else if (v < (1 << 21)) {*(ptr++) = v | B;*(ptr++) = (v >> 7) | B;*(ptr++) = v >> 14;} else if (v < (1 << 28)) {*(ptr++) = v | B;*(ptr++) = (v >> 7) | B;*(ptr++) = (v >> 14) | B;*(ptr++) = v >> 21;} else {*(ptr++) = v | B;*(ptr++) = (v >> 7) | B;*(ptr++) = (v >> 14) | B;*(ptr++) = (v >> 21) | B;*(ptr++) = v >> 28;}return reinterpret_cast<char*>(ptr); }


#if defined(_MSC_VER)
#pragma warning(pop)??# 恢復compiler警告
#endif
這樣在編譯? varint32編碼? ?部分的代碼時,4244這個警告將不會出現。

總結

以上是生活随笔為你收集整理的C++ 中的 #pragma warning(push) 和 #pragma warning(pop)有什么用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。