typestar

Inicializadores designados en C

C99 te deja nombrar los miembros y elementos que inicializas.

struct Settings {
    int time_limit;
    int editor_mode;
    const char *theme;
};

struct Settings defaults(void) {
    struct Settings s = {.time_limit = 60, .theme = "default"};
    return s;
}

int sparse_sum(void) {
    int weights[8] = {[0] = 5, [3] = 10, [7] = 1};
    int total = 0;
    for (int i = 0; i < 8; i++) {
        total += weights[i];
    }
    return total;
}

Cómo funciona

  1. Nombrar un campo hace que el inicializador sobreviva un reordenamiento.
  2. Todo lo que no se nombra queda inicializado en cero.
  3. Los designadores de arreglo saltan adelante y dejan los huecos en cero.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
333
Tokens
111
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 74 segundos.

Escribe este fragmento

Paso 3 de 4 en Valores y almacenamiento; paso 29 de 35 en Fundamentos del lenguaje.

← Anterior Siguiente →