能用Rust的方式寫C 程式嗎?

時間 2021-05-11 13:15:16

1樓:chunquedong

可以。把所有用指標的地方都改為unique_ptr就行了,unique_ptr相當於Rust中的所有權機制。但是其他rust的編譯時安全檢查的功能做不到。

2樓:

這個我還真動手做了,https://

先要實現rust標準庫。。

rust裡面的trait可以讓程式設計變得很簡單,比如ops,cmp,iter,display,write,read等等。

比如這個struct X,新增乙個names的靜態常量,這樣就可以被fmt,serial使用了,能夠被列印,序列化。

3樓:暮無井見鈴

我覺得 Rust 的一些東西移植到 C++ 裡能提供一些便利。

譬如 dyn trait ,我們可以在 C++ 中實現其類似物,用多型胖指標(指向物件和指向虛函式表的一對指標)代替裸指標/引用放在介面上。

好處是這是非侵入式多型,不用給物件加基類,這可以維護其可能有的標準布局和可平凡複製性質。外加胖指標本身也可以是 POD (取決於實現方式)。綜合來說這對 ABI 穩定也有意義。

另一方面是有些類(如 lambda 表示式的型別)無法加基類,此時用非入侵式多型的思路寫可能比封裝一層再加基類更簡單。

壞處是由於這沒有 C++ 語言內建支援,寫起來有些麻煩。而且如果想復用內建的虛表機制,用起來就可能會有些不舒服。

至於其他 Rust 有而 C++ 暫時未使用的東西,我感覺暫時不是很適合移過來。畢竟語言支援跟不上。

能用C語言寫嗎嗎 怎麼寫?

勝勳 這個問題並沒有看上去那麼簡單 腳印,也要分 左腳 和 右腳 爸爸的左腳腳印 和 兒子的右腳腳印 不可能重疊 爸爸的右腳腳印 和 兒子的左腳腳印 不可能重疊 爸爸的左腳腳印 和 兒子的左腳腳印 看似有可能重疊,但其實不能,第一步相差10cm,之後每週期相差20cm的整數倍,所以不能重疊 爸爸的右...

寫作業系統只能用彙編和 C 語言嗎?

繪圖員 非專業人士,想起來點舊事 當年有個叫吳曉軍的人搞了個2.13 DOS漢字系統,最早是用debug作為開發工具,後來改用彙編開發。 aa11ss55 引導什麼的部分是只能寫彙編 後面寫什麼語言就取決於你的RT了 RT構成了最基本的函式庫,然後你就可以實現自己的標準庫了如果你說 只能用C語言 那...

為什麼科學計算程式用c 寫的極少

gang chen C 是物件導向的語言,搞個小東西用C 略顯重量級,有點麻煩 很演算法庫在其他語言上已經實現,C 開源太晚,演算法庫不夠完善,有些用C 時需要重新造輪子,白piao還是很爽的,重新造輪子代價太高,與我等拿來主義的價值觀不符 國內大公司風向問題歧視鏈 白友利 工業軟體好多用的啊。很多...