typestar

La macro de longitud de arreglo en C

La macro que todo proyecto de C tiene, y el único lugar donde no debe usarse.

#include <stddef.h>

#define ARRAY_LEN(a) (sizeof(a) / sizeof((a)[0]))

int sum_all(void) {
    int values[] = {2, 4, 6, 8, 10};
    int total = 0;
    for (size_t i = 0; i < ARRAY_LEN(values); i++) {
        total += values[i];
    }
    return total;
}

size_t count_names(void) {
    const char *names[] = {"ada", "grace", "alan"};
    return ARRAY_LEN(names);
}

Cómo funciona

  1. Dividir el tamaño del arreglo entre el de un elemento da el conteo.
  2. Solo funciona donde el tipo del arreglo es visible.
  3. Sobre un puntero calcula un sinsentido en silencio.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
329
Tokens
101
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 64 segundos.

Escribe este fragmento

Paso 3 de 4 en Macros; paso 3 de 12 en Preprocesador y encabezados.

← Anterior Siguiente →