#import "atomic.odin"; #import "fmt.odin"; #import "hash.odin"; #import "math.odin"; #import "mem.odin"; #import "opengl.odin"; #import "os.odin"; #import win32 "sys/windows.odin"; #import "sync.odin"; #import "utf8.odin"; main :: proc() { b : [1000]byte; using fmt; println(); println("Pointer of Address 0"); println(^b[0]); println(); println("Pointer of Address 50"); println(^b[50]); println(); println("Difference between 50 and 0"); println(^b[50] - ^b[0]); } /* foo :: proc(x: ^i32) -> (int, int) { fmt.println("^int"); return 123, cast(int)(x^); } foo :: proc(x: rawptr) { fmt.println("rawptr"); } THINGI :: 14451; THINGF :: 14451.1; a: i32 = #line; b: f32; c: rawptr; fmt.println(foo(^a)); foo(^b); foo(c); // foo(nil); atomic.store(^a, 1); foo :: proc() { fmt.printf("Zero args\n"); } foo :: proc(i: int) { fmt.printf("int arg, i=%d\n", i); } foo :: proc(f: f64) { i := cast(int)f; fmt.printf("f64 arg, f=%d\n", i); } foo(); // foo(THINGI); foo(THINGF); foo(cast(int)THINGI); fmt.println(THINGI); fmt.println(THINGF); f: proc(); f = foo; f(); } */