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
#xse convierte en un literal de cadena con el texto del argumento.a ## bforma un solo identificador nuevo.- Hace falta una capa auxiliar para expandir una macro antes de stringificarla.
Palabras clave y builtins usados aquí
intvoid
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.
Paso 1 de 3 en Manipulación de texto; paso 5 de 12 en Preprocesador y encabezados.