99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

Rust 為什么比C安全,請看數據類型對比

在基本數據類型方面,Rust的定義更加簡單命令,各類型所占空間大小都一目了然,除isize/usize依賴于處理器平臺位數外,其他類型的大小都是確定的

對于C來說,int是核心的數據類型,但不同平臺的處理器位數大小也不一樣,則int的大小也不一樣,如8位機和32位機的int類型大小則不一樣。因此C語言中的大部分數據類型都是不可確定的,需要依賴一些額外的頭文件去確定數據類型大小。

bool類型上,Rust自帶bool類型,C則沒有,通常需要在頭文件或自己定義bool類型,因此在不同的代碼中可能bool的truefalse可能不一樣。另外字符類型中,Rust的字符則是Unicode 的大小, 占用四個字節,C則占用一個字節,但是不同編譯器規定的char類型可能是帶符號或不帶符號的類型,因此范圍也不可直接確定。

Rust 基本數據類型

C基礎數據類型

自定義類型

結構體

RustC的結構體定義大致相同,但Rust更加精確。有以下區別

  1. 支持數據類型的權限訪問定義,默認為私有類型
  2. 成員順序可能改變,可節省空間,但也可強制保持與定義相同,并保留字節對齊
  3. 支持模板
  4. 支持零大小定義
  5. 支持定制實現方法
  6. 支持宏擴展
#[derive(PartialEq)]     // 使用宏自動實現比較的方法
pub struct Language{         
    pub name: String,    // public 屬性
    id: u32              // 私有屬性  
}

// 零大小結構體
struct C;         

// 模板結構體
pub struct AnyAdc<'d, T: Instance, M: Mode> {
    t: PhantomData<&'d T>,
    _m: PhantomData,
}

枚舉

Rust的枚舉與C最大的不同是,Rust更加規范,枚舉可為數字,也可為匿名標記,C則可強制轉換成整數類型。枚舉在Rust中有著非常重要的角色,如ResultOption枚舉讓Rust代碼處理邏輯更加安全.。

  1. 枚舉可包裹其他數據
  2. 支持模板
  3. 支持轉換成數字
  4. 支持零大小
  5. 支持訪問權限控制
  6. 支持宏自動實現方法
pub enum Rule {       // 標記類型,不能轉換成數字       
    Master,    
    Slave,    
}
#[derive(PartialEq)]   // 使用宏實現比較的方法         
pub(crate) enum Id {   // 只在crate中訪問,外部不可訪問    
    Rtc1 = 0,          // 可轉換成數字       
}
enum Config;           // 零大小枚舉       
enum Mode {        // 模板類      
    Mode1(T)    
    Mode2    
}

聯合體

Rust并不提倡大量使用聯合體,但為了兼容C的數據類型,也實現了聯合體的功能,在訪問時強制標記unsafe域。在內部成員的引用方式則與C幾乎一致。

#[repr(C)]    
union MyUnion {    
    f1: u32,    
    f2: f32,    
}

總結

通過以上對比,可感受到Rust在數據類型方面的設計更加嚴謹和安全,同時也更加靈活,且移植性更強。同時也最大限度得兼容了C數據類型的所有特性。另外Rust的各種數據類型,其實也是對象,可使用一些Rust提供的方法來實現操作,讓開發者使用起來如Python一樣簡單,同時運行效率與C/C++幾乎一致。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關注 14
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 国产精品自产拍在线观看55亚洲 | 日韩一级黄色大片 | 中文字幕123伦 | 91精品国产综合久久福利软件 | 二区三区偷拍浴室洗澡视频 | 国产精品一区二区av日韩在线 | 精品视频在线观看一区 | 野花社区www官网在线观看 | 久久这里只有精品18 | 欧美毛片免费看 | 成人av在线大片 | 欧美激情视频一区二区 | 欧洲视频一区 | 内射白嫩少妇超碰 | 亚洲国产AV天码精品果冻传媒 | 超91在线 | 欧美精品二区 | 欧美一区1区三区3区公司 | 99re在线视频精品 | 老师粉嫩小泬喷水视频90 | 九九久久精品一区 | 黄色免费一级视频 | 成人综合婷婷国产精品久久蜜臀 | 人人人草 | 久久久噜噜噜久久熟女 | 中国熟妇videosexfreeXXXX片 | 精品乱码一区二区三四区 | 日韩精品在线一区二区 | 国产在线视频在线观看 | 欧美性猛交╳XXX富婆 | 人妻夫の上司犯感との中文字幕 | jizz国产精品网站 | 国产欧美日本一区二区三区 | 蜜臀av免费一区二区三区久久乐 | 色亚洲天堂 | 三级黄色的视频 | 日韩国产精品91 | 不卡成人| 免费不卡欧美自拍视频 | 国产精品综合在线观看 | 51午夜精品视频 |