2015-09-19 20 views

回答

4

C++的類型是爲了匹配通用硬件的各種大小的整數。

OCaml的類型是在一個稍高的水平(或至少我是這樣看的)。所以你不會找到C++的全部整數類型。

basic OCaml language definition只提到這些整數類型:

  • int:一個31位有符號值(停止在64位機器上;目前的64位實現定義63位有符號值)

  • char:一8位無符號值

OCaml language extensions document的d efines幾個整數類型:

  • int32:一個32位有符號值

  • int64:一個64位有符號值

  • nativeint:天然字大小的帶符號的值(32位機器上的32位;在64位機器上64位)

這就是整數類型!

這裏顯示了所有這些類型的值的會話:

$ ocaml 
     OCaml version 4.02.1 

# 3;; 
- : int = 3 
# 'z';; 
- : char = 'z' 
# 3l;; 
- : int32 = 3l 
# 3L;; 
- : int64 = 3L 
# 3n;; 
- : nativeint = 3n 
# 

一個原因使用較窄的整數值是爲了節省空間,當你有很多。對於這種情況,有Bigarray模塊,該模塊支持8位和16位的有符號和無符號值的數組,以及上面列出的整數類型。

1

uint庫實現不同的無符號整數類型。如果你需要一個ç

uint8_t

的行爲只是使用

Uint8.t

從這個庫。

+0

當試圖使它 - 它說它缺少setup.data –

+0

只需通過opam安裝! – lambdapower

相關問題