Macros tipo objeto en C
Un define es sustitución textual, hecha antes de que el compilador vea tu código.
#define MAX_STARS 3
#define GREETING "welcome"
#define BUFFER_SIZE (256 * 4)
int stars_available(void) {
int buffer[8];
(void) buffer;
return MAX_STARS;
}
size_t greeting_length(void) {
return sizeof GREETING - 1;
}
int buffer_bytes(void) {
return BUFFER_SIZE;
}
Cómo funciona
- No hay tipo ni alcance, solo reemplazo.
- Un
enumo unconstsuele ser la mejor constante. - Quitar la definición y redefinir es legal, y eso es parte del peligro.
Palabras clave y builtins usados aquí
intreturnsize_tsizeofvoid
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 265
- Tokens
- 50
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 32 segundos.
Paso 1 de 4 en Macros; paso 1 de 12 en Preprocesador y encabezados.