1040-structs.spl (665B)
1 2 struct Point { 3 x i32, 4 y i32, 5 }; 6 7 struct Line { 8 start Point, 9 end Point, 10 }; 11 12 fn add(a Point, b Point) { 13 a.x = a.x + b.x; 14 a.y = a.y + b.y; 15 } 16 17 fn print(p Point) { 18 _hexout_(p.x); 19 _hexout_(p.y); 20 } 21 22 var p0 Point = { x: 45, y: 17 }; 23 var p1 Point = { x: 5, y: 3 }; 24 25 var line Line = { 26 start: { x: 1, y: 2 }, 27 end: { x: 42, y: 17 } 28 }; 29 30 // var p2 struct { x i32, y i32, } = { x: 7, y: 6 }; 31 32 fn start() i32 { 33 _hexout_(p0.x); 34 _hexout_(p0.y); 35 p0.x = 123; 36 p0.y = 456; 37 _hexout_(p0.x); 38 _hexout_(p0.y); 39 add(p1, p0); 40 print(p1); 41 add(p1, p0); 42 print(p1); 43 var z Point = p1; 44 z.x = 0x10203040; 45 z.y = 0x50607080; 46 print(z); 47 _hexout_(z.x); 48 _hexout_(z.y); 49 return 0; 50 }