86 lines
1.1 KiB
OCaml
86 lines
1.1 KiB
OCaml
# sizeof 234 ;;
|
|
- : int = 1
|
|
|
|
# sizeof 23.4 ;;
|
|
- : int = 2
|
|
|
|
# sizeof (1,2);;
|
|
- : int = 3
|
|
|
|
# sizeof (2, 3.4) ;;
|
|
- : int = 4
|
|
|
|
# sizeof (1,2,3,4,5) ;;
|
|
- : int = 6
|
|
|
|
# sizeof [| 1;2;3;4;5 |] ;;
|
|
- : int = 6
|
|
|
|
# sizeof [1;2;3;4;5] ;;
|
|
- : int = 11
|
|
|
|
(* because a list is equivalent to *)
|
|
|
|
# sizeof (1,(2,(3,(4,(5,0))))) ;;
|
|
- : int = 11
|
|
|
|
# type foo = A | B of int | C of int * int ;;
|
|
type foo = A | B of int | C of int * int
|
|
|
|
# sizeof A ;;
|
|
- : int = 1
|
|
|
|
# sizeof (B 3) ;;
|
|
- : int = 2
|
|
|
|
# sizeof (C(1,2)) ;;
|
|
- : int = 3
|
|
|
|
# sizeof true ;;
|
|
- : int = 1
|
|
|
|
# sizeof 'A' ;;
|
|
- : int = 1
|
|
|
|
# sizeof `some_pvar ;;
|
|
- : int = 1
|
|
|
|
# sizeof "" ;;
|
|
- : int = 1
|
|
|
|
# sizeof "Hello!" ;;
|
|
- : int = 2
|
|
(* remember the size is given in words
|
|
(so 4 octets on 32 bits machines) *)
|
|
|
|
# for i=0 to 16 do
|
|
Printf.printf "%d -> %d\n" i (sizeof(String.create i))
|
|
done;;
|
|
0 -> 1
|
|
1 -> 1
|
|
2 -> 1
|
|
3 -> 1
|
|
4 -> 2
|
|
5 -> 2
|
|
6 -> 2
|
|
7 -> 2
|
|
8 -> 3
|
|
9 -> 3
|
|
10 -> 3
|
|
11 -> 3
|
|
12 -> 4
|
|
13 -> 4
|
|
14 -> 4
|
|
15 -> 4
|
|
16 -> 5
|
|
- : unit = ()
|
|
|
|
# sizeof(Array.create 10 0) ;;
|
|
- : int = 11
|
|
|
|
# sizeof(Array.create 10 (String.create 20)) ;;
|
|
- : int = 16
|
|
|
|
# sizeof(Array.init 10 (fun _ -> String.create 20)) ;;
|
|
- : int = 61
|