Checked C 通過修改控制指針來解決這些問題,指針被程序員們用來定義他們的代碼所操作的內存地址。當指針數量一多,指針控制就往往容易忙中出亂,項目越大跟蹤它們就越困難,類似 Chromium、Firefox、Office、OpenSSL 以及其它的大型代碼庫在這方面都存在這樣的問題,你可以從它們的變更日志中看到大量的這類問題修復。“Checked C 允許程序員更好的描述他們想要如何使用指針,以及指針應該指向的內存范圍”,微軟說,“這個信息可以用於在運行時環境中添加檢測,以偵測錯誤的數據訪問,而不是讓錯誤悄悄的發生而無所察覺。”
Checked C 也將允許開發者檢測到他們以為 C 語言有、而實際卻沒有的功能誤用。按編程界的說法來講,這個叫做“邊界檢查bounds checking”的功能,用於檢查變量/指針是否在它的范圍之內賦值,C# 和 Rust 已經有這樣的功能了,而且還不止於此。然而不幸的是,被廣泛使用的 C 和 C++ 卻沒有這樣的功能,微軟希望只需要對現有的 C/C++ 程序做最小的改動,利用 Checked C 就可以得到安全方面的改善,這樣會吸引大量的開發者開始使用 Checked C。
Checked C 項目已經放到了GitHub上。這並不是微軟第一次對基本編程語言做出來自己的演繹,之前該公司的程序員們還創建了一個名為 TypeScript 的 JavaScript 的超集,並且它已經得到了廣泛認可。
原文來自:https://linux.cn/article-7474-1.html
轉載地址:http://www.linuxprobe.com/microsoft-checkedc-opensource.html
http://xxxxxx/Linuxjc/1155877.html TechArticle