Browse Source Download (without any required ccan dependencies)

Module:

array_size

Summary:

routine for safely deriving the size of a visible array.

Author:

Rusty Russell <rusty@rustcorp.com.au>

Dependencies:

Description:

This provides a simple ARRAY_SIZE() macro, which (given a good compiler) will also break compile if you try to use it on a pointer.

This can ensure your code is robust to changes, without needing a gratuitous macro or constant.

Example:

// Outputs "Initialized 32 values\n"
#include <ccan/array_size/array_size.h>
#include <stdlib.h>
#include <stdio.h>

// We currently use 32 random values.
static unsigned int vals[32];

int main(void)
{
        unsigned int i;
        for (i = 0; i < ARRAY_SIZE(vals); i++)
                vals[i] = random();
        printf("Initialized %u values\n", i);
        return 0;
}

License:

CC0 (Public domain)