硬核解讀:爲什麼Rust的Unsafe關鍵字有效?

就像生活中許多偉大的事情一樣,本文也是源於刁難。Reddit,更確切地說是r/programming,已經讓我抓狂了。所以我的目標很簡單:我想概要的介紹一下爲什麼Rust的unsafe關鍵字有效,而在C/C++中類似的方法卻行不通。

本文最初發佈於jam1garner的個人博客,由InfoQ中文站翻譯並分享。

就像生活中許多偉大的事情一樣,本文也是源於刁難。Reddit,更確切地說是r/programming,已經讓我抓狂了。所以我的目標很簡單:我想概要的介紹一下爲什麼Rust的unsafe關鍵字有效,而在C/C++中類似的方法卻行不通。

C語言令人頭痛之處

和其他許多人一樣,我在日常工作中也用到C語言。它不是一種糟糕的語言,我喜歡它,就像我喜歡使用匯編或其他深奧的語言編碼一樣,我將其看成是一個有趣的、具有挑戰性的謎題。我不能說我喜歡維護C語言代碼,我也不認爲任何人會喜歡長時間這樣做。作爲安全專家,我認爲…在安全性方面,C語言有很多問題。每個人都知道,這不是祕密,我這裏不是要告誡你,如果你不用Rust重寫一切,一切就都會出問題。

讓我們來看一個非常簡單的C程序:

const char* get_name() {
    return "jam";
}
int main() {
    printf("name: %s\n", get_name());
    return 0;
}

原文鏈接:【https://www.infoq.cn/article/iDQcr9gkBqI7UDS8t2iA】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章