mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
Relative pointer and relative slices
This commit is contained in:
+21
-1
@@ -1938,10 +1938,29 @@ dummy_procedure :: proc() {
|
||||
|
||||
explicit_context_definition :: proc "c" () {
|
||||
// Try commenting the following statement out below
|
||||
context = runtime.default_context();
|
||||
context = runtime.default_context();
|
||||
|
||||
fmt.println("\n#explicit context definition");
|
||||
dummy_procedure();
|
||||
}
|
||||
|
||||
relative_data_types :: proc() {
|
||||
fmt.println("\n#relative data types");
|
||||
|
||||
x: int = 123;
|
||||
ptr: #relative(i16) ^int;
|
||||
ptr = &x;
|
||||
fmt.println(ptr^);
|
||||
|
||||
arr := [3]int{1, 2, 3};
|
||||
s := arr[:];
|
||||
rel_slice: #relative(i16) []int;
|
||||
rel_slice = s;
|
||||
fmt.println(rel_slice);
|
||||
fmt.println(rel_slice[:]);
|
||||
fmt.println(rel_slice[1]);
|
||||
}
|
||||
|
||||
main :: proc() {
|
||||
when true {
|
||||
the_basics();
|
||||
@@ -1973,5 +1992,6 @@ main :: proc() {
|
||||
constant_literal_expressions();
|
||||
union_maybe();
|
||||
explicit_context_definition();
|
||||
relative_data_types();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user