typestar

Stringify y pegado de tokens en C

El operador # vuelve un argumento una cadena; ## une dos tokens en uno.

#include <stdio.h>

#define STR(x) #x
#define EXPAND_STR(x) STR(x)
#define JOIN(a, b) a##b
#define VERSION 21

void names(void) {
    int JOIN(count, er) = 5;
    printf("%s\n", STR(VERSION));
    printf("%s\n", EXPAND_STR(VERSION));
    printf("%d\n", counter);
}

Cómo funciona

  1. #x se convierte en un literal de cadena con el texto del argumento.
  2. a ## b forma un solo identificador nuevo.
  3. Hace falta una capa auxiliar para expandir una macro antes de stringificarla.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
248
Tokens
64
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 38 segundos.

Escribe este fragmento

Paso 1 de 3 en Manipulación de texto; paso 5 de 12 en Preprocesador y encabezados.

← Anterior Siguiente →