」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Visual Studio 是否完全支援現代 C/C++ 標準?

Visual Studio 是否完全支援現代 C/C++ 標準?

發佈於2024-12-22
瀏覽:535

Does Visual Studio Fully Support Modern C/C   Standards, and What Alternatives Exist?

Visual Studio 對現代C/C 標準的支援

在軟體開發領域,C 和C 程式語言隨著引入C99 和C 11 等新標準,可望帶來一系列有益的功能。然而,問題出現了:這些進步會進入微軟的 Visual Studio IDE(整合開發環境)嗎?

微軟的立場

微軟支持新 C 的官方立場/C 標準相當平淡。在一篇部落格文章中,Visual C 編譯器團隊以缺乏使用者需求為由,證明了他們不願意實現 C99 的合理性。根據他們的回饋,用戶更傾向於關注較新的 C -0x 標準。

此外,微軟的公開回應經常指責用戶自己對現代標準的緩慢採用。在 connect.microsoft.com 論壇貼文中,Visual C 編譯器團隊成員 Jonathan Caves 表示,他們只會考慮根據使用者回饋實現流行的 C-99 功能。

對開發人員的影響

缺乏對現代標準的支持給希望採用最新語言功能的開發人員造成了重大障礙。它將現代基於 gcc 的程式碼移植到 MSVC 成為一項艱鉅的任務。

英特爾的解決方案

值得慶幸的是,英特爾透過其英特爾 C 編譯器提供了替代解決方案。該編譯器支援 C99 程式碼,甚至使用與 gcc 類似的標誌,簡化了平台之間的程式碼可移植性。英特爾編譯器還可以整合到 Visual Studio 中,使開發人員能夠利用他們喜歡的 IDE,同時仍然可以存取現代 C/C 功能。

更廣闊的視角

超越在解決 Visual Studio 支援的具體問題時,重要的是要考慮 Microsoft 對語言標準化的消極方法的影響。它表明希望透過讓使用者難以切換編譯器或 IDE 來將使用者鎖定在其生態系統中。這違背了開源開發和程式碼可移植性的原則,而這在當今的軟體領域至關重要。

對於尋求更通用且面向未來的開發環境的開發人員,請遷移到 Intel CC 或 gcc 並使用像 Eclipse 這樣的替代 IDE 是更明智的選擇。透過採用更廣泛的編譯器和 IDE,開發人員可以存取現代語言功能並保持跨多個平台的程式碼可移植性。

最新教學 更多>
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-22
  • 如何在 Spring 中串流大型 MySQL 結果集以避免 OutOfMemoryError?
    如何在 Spring 中串流大型 MySQL 結果集以避免 OutOfMemoryError?
    使用MySQL 串流處理大型結果集在Spring 應用程式中處理大量MySQL 表時,當驅動程式試圖執行下列操作時,可能會出現OutOfMemoryException:將整個表載入到記憶體中。設定statement.setFetchSize(Integer.MIN_VALUE);可能還不夠,因為這僅...
    程式設計 發佈於2024-12-22
  • 在 SQL 中更新同一個表後,如何安全地更新觸發器內的表?
    在 SQL 中更新同一個表後,如何安全地更新觸發器內的表?
    更新同一個表後更新觸發器中的表在SQL 中,更新觸發器後更新表同一張表提出了一個潛在的問題。這是因為該表已針對更新操作鎖定,並且嘗試在作為相同交易的一部分執行的觸發器內存取該表可能會導致衝突。 要規避此限制,您可以更新透過使用 BEFORE 選項而不是 AFTER 來影響觸發器中的列。這允許您在原始...
    程式設計 發佈於2024-12-22
  • 使用PHP的DOMDocument擷取節點時如何保留HTML標籤?
    使用PHP的DOMDocument擷取節點時如何保留HTML標籤?
    使用DOMDocument 提取HTML 節點的問題簡介DOMDocument 是PHP 類,提供了一種便捷的解析方法以及操作HTML 文件。然而,當嘗試在提取內容時保留 HTML 標籤時,使用者可能會遇到困難。本文深入探討了 DOM 的基本概念,並提出了應對這項挑戰的解決方案。 理解 DOM 和節...
    程式設計 發佈於2024-12-22
  • 如何在 Python 類型提示中指定函數類型?
    如何在 Python 類型提示中指定函數類型?
    在類型提示中指定函數類型在Python中,類型提示用於提供有關變數和函數參數的預期類型的可選元資料。然而,將變數的類型提示指定為函數類型似乎不清楚。 解決方案儘管相關中缺少“typing.Function” PEP 483,您可以使用下列指令將變數的型別提示指定為函式型別"typing.C...
    程式設計 發佈於2024-12-22
  • 為什麼我在發送 URL 編碼的 POST 請求時收到 400 BAD REQUEST?
    為什麼我在發送 URL 編碼的 POST 請求時收到 400 BAD REQUEST?
    帶有URL 編碼負載的POST 請求當構造帶有URL 編碼資料的POST 請求時,經常會遇到400 BAD REQUEST 回應,表示伺服器無法理解負載。當有效負載提供不正確時,通常會出現此問題。 標準函式庫的 http.NewRequest(...) 方法期望將有效負載作為第三個參數提供,該參數應...
    程式設計 發佈於2024-12-22
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-22
  • 為什麼我不能直接從定義類別中呼叫內聯友元函數?
    為什麼我不能直接從定義類別中呼叫內聯友元函數?
    內聯友元函數的可見性範圍儘管在類別中定義了內聯友元函數,但它們的實際範圍超出了類別的邊界。 C 標準規定,內聯友元函數的名稱引用在最近的封閉命名空間範圍中聲明的函數。 但是,在該命名空間內提供匹配聲明之前,無法透過非限定或限定查找存取此聲明的函數。範圍。因此,從類別本身、封閉作用域或成員函數直接呼叫...
    程式設計 發佈於2024-12-22
  • ## [].forEach.call() 如何轉換 JavaScript 類別陣列結構?
    ## [].forEach.call() 如何轉換 JavaScript 類別陣列結構?
    JavaScript 中的陣列轉換:了解[].forEach.call()使用JavaScript 時,您可能會遇到使用下列程式碼片段[].forEach.call() 迭代元素列表。該技術允許使用數組函數擴展類似數組的結構,例如 NodeList。 空數組 [] 用於存取 forEach 函數,該...
    程式設計 發佈於2024-12-22
  • 如何使用 CSS 建立具有固定標題的可捲動表格?
    如何使用 CSS 建立具有固定標題的可捲動表格?
    如何使用 CSS 和固定標題製作可捲動表格在 Web 開發中,通常需要建立包含大量資料的表格需要捲動。然而,在滾動表格主體的同時保持固定的標題可能具有挑戰性。以下是實現此效果的方法:HTML 結構首先,我們必須確保 HTML 結構正確。我們有一個帶有捲軸的外部 div,一個包含表格的內部 div,表...
    程式設計 發佈於2024-12-22
  • 如何使用 JavaScript 和 Python 產生 RSA 金鑰
    如何使用 JavaScript 和 Python 產生 RSA 金鑰
    在当今的数字时代,确保敏感信息的安全至关重要。 RSA 是最广泛使用的加密技术之一,它通过允许安全通信和数据保护来帮助实现这一目标。如果您是想要学习如何生成 RSA 密钥对的初学者,本教程将指导您通过 JavaScript 和 Python 完成该过程。 什么是 RSA? RSA (...
    程式設計 發佈於2024-12-22
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-22
  • 當滑鼠懸停在子元素上時,如何僅使用 CSS 來變更父容器的背景顏色?
    當滑鼠懸停在子元素上時,如何僅使用 CSS 來變更父容器的背景顏色?
    更改子級懸停時父容器的背景顏色(僅限CSS)而有關使用CSS 選擇父元素的問題通常標記為重複,它忽略了實際解決方案的需要。特別是,當滑鼠懸停在其子容器上時更改父容器的背景顏色的問題可以透過僅 CSS 方法來解決。 指針事件和懸停: 為了達到這個效果,我們可以操作指針事件和:hover偽類:設定poi...
    程式設計 發佈於2024-12-22
  • 如何修復 MySQL 儲存表情符號時出現「字串值不正確」錯誤?
    如何修復 MySQL 儲存表情符號時出現「字串值不正確」錯誤?
    解決MySQL 表情符號儲存中的「字串值不正確」錯誤儲存包含「🎶」等表情符號的推文時,用戶可能會遇到錯誤,指出「字串值不正確...」此錯誤是由不相容的字元編碼引起的。 要解決此問題問題,資料庫和儲存推文的表的字元集需要配置為支援 Unicode 字元。操作步驟如下:修改MySQL設定檔...
    程式設計 發佈於2024-12-22
  • 如何逐行讀取大文本檔案以避免記憶體過載?
    如何逐行讀取大文本檔案以避免記憶體過載?
    逐行讀取大文本文件,不會造成內存超載處理超出內存容量的海量文本文件時,逐行讀取,不會造成記憶體超載記憶體超載變得至關重要。一種節省記憶體的方法涉及直接在文件物件上使用 for 循環。 與 open(...) 一起使用建立一個上下文管理器,該管理器在讀取後會自動關閉檔案。這是一個範例:with ope...
    程式設計 發佈於2024-12-22

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3