最近在嘗試編譯 C 程式碼時遇到的編譯錯誤引發了預設 C 標準是什麼的問題使用 g 編譯器時。涉及的程式碼包括文件流和字串操作。使用命令“g example.cpp”編譯時,由於涉及字串和 const char* 之間的轉換錯誤,編譯失敗。然而,使用命令 'g -std=c 17 example.cpp' 解決了這個問題。
為了調查未指定-std 標誌時g 使用的預設標準,提出了一種方法來確定特定版本的g 支援的C 標準的預設版本:
Bash:執行下列指令:
g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
PowerShell
g++ -dM -E -x c++ NUL | Select-String __cplusplus
PowerShell
執行以下指令:#define __cplusplus 199711L這些指令的輸出指令將顯示類似下列內容的行:程式碼可移植性
:如果程式碼旨在跨不同編譯器或平台移植,則最佳實踐是明確指定所需的 C 標準以確保一致的行為。 一般情況下,建議使用 -std 標誌明確指定 C 標準,以避免因意外行為隱式預設設定。透過控制 C 標準,程式設計師可以確保最佳效能、程式碼正確性和可攜性。以上是g 預設採用什麼 C 標準?的詳細內容。更多資訊請關注PHP中文網其他相關文章!