Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

rand_r

rand.rand_r
fn rand_r(seed: *c_uint) callconv(.c) c_int

File

lib/c/stdlib/rand.zig:16

Code

fn rand_r(seed: *c_uint) callconv(.c) c_int {
    var mix: std.Random.SplitMix64 = .init(seed.*);
    defer seed.* = @truncate(mix.s);

    // Every bundled libc defines RAND_MAX as `std.math.maxInt(u31)` (except windows where it is `std.math.maxInt(u15)`)
    return @as(u31, @truncate(mix.next() >> 33));
}