Mantener privadas las auxiliares en C
static a nivel de archivo esconde una función de toda otra unidad de traducción.
#include <stddef.h>
static int is_vowel(char c) {
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
static size_t count_if(const char *text, int (*test)(char)) {
size_t n = 0;
for (; *text; text++) {
if (test(*text)) {
n++;
}
}
return n;
}
size_t count_vowels(const char *text) {
return count_if(text, is_vowel);
}
Cómo funciona
- Una función
staticno puede llamarse desde otro archivo. - Eso mantiene chica la superficie pública y libres los nombres.
- El linker ni siquiera ve el símbolo.
Palabras clave y builtins usados aquí
charconstforifintreturnsize_tstatic
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 334
- Tokens
- 124
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 71 segundos.
Paso 3 de 3 en Encapsulación; paso 7 de 11 en APIs, errores y pruebas.