You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
934 B
Zig

const std = @import("std");
const stdout = std.io.getStdOut().writer();
fn Box(comptime T: type) type {
return struct {
value: T,
};
}
const Point = struct {
X: i32 = 1,
Y: i32 = 2,
};
pub fn main() !void {
var vbox = Box(Point){
.value = undefined, // this is gonna be junk
};
try stdout.print("var box with undefined: {}\n", vbox);
var vbox2 = Box(Point){
.value = Point{}, // this is the default value
};
try stdout.print("var box with explicit defaults: {}\n", vbox2);
// looks like the value of this winds up in bss.
// https://en.wikipedia.org/wiki/.bss
const cbox = Box(Point){
.value = undefined, // this is zeroed out memory
};
try stdout.print("const box with undefined: {}\n", cbox);
try stdout.print("Box literal with undefined: {}\n", Box(Point){
.value = undefined, // this is also zeroed out memory
});
}