預處理器定義


預處理器定義

預定義宏 | Microsoft Docs

/D(預處理器定義) | Microsoft Docs

🤦‍♀️ Microsoft 專用預定義宏

MSVC 支持以下預定義宏:

  • _WIN32:當編譯目標為 32 位 ARM、64 位 ARM、x86 或 x64 時,定義為 1。 其他情況下則不定義。
  • _WIN64:當編譯目標為 64 位 ARM 或 x64 時,定義為 1。 其他情況下則不定義。

注意區分另一個宏 WIN32 ,它是在Windows頭文件 minwindef.h 中定義的,我們也可以在 Visual Studio 的 預處理器定義 中進行定義,其配置后會生效在xxx.vcxproj 文件中,其Visual Studio命令行參數 /D 與源代碼文件開頭的 #define 指令具有相同的效果。默認情況下,與符號關聯的值為 1。

綜上所述, _WIN32WIN32 在Visual Studio 控制台應用程序中, 都可以使用,但是,_WIN32 可用范圍更廣一些,更安全,更適合用來判斷Windows平台,畢竟其是在MSVC編譯器中進行了預定義

經過測試, MSVC 和 MinGW-W64 都有預定義宏 _WIN32 ,linux-gnu g++ 無。

🤦‍♂️ 在 Visual Studio 開發環境中設置預處理器定義選項

  1. 打開項目“屬性頁” 對話框。 有關詳細信息,請參閱在 Visual Studio 中設置 C++ 編譯器和生成屬性

  2. 選擇 "配置屬性" " > c/c + + > 預處理器" 屬性頁。

  3. 打開 " 預處理器定義 " 屬性的下拉菜單,然后選擇 " 編輯"。

  4. 在 " 預處理器定義 " 對話框中,添加、修改或刪除一個或多個定義,每行一個或多個定義。 選擇“確定”以保存更改 。

    不需要在此處指定的定義上包含 "/D" 選項前綴。 在屬性頁中,定義由分號分隔 (;) 。

    編輯后會生效在xx.vcxproj 文件中。

Reference

/D (Preprocessor Definitions) | Microsoft Docs

/D(預處理器定義) | Microsoft Docs

預定義宏 | Microsoft Docs

宏 (C/C++) | Microsoft Docs

預定義的宏 | Microsoft Docs

VS中添加預處理宏的方法 - rainbow70626 - 博客園 (cnblogs.com)

VS2010中屬性頁中,C/C++ -->預處理器定義 - J.M.Liu - 博客園 (cnblogs.com)

WIN32和_WIN32的區別_碧海凌雲的博客-CSDN博客

c preprocessor - What's the difference between the WIN32 and _WIN32 defines in C++ - Stack Overflow


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM