// tipos de retorno
La palabra antes del nombre de la función indica qué tipo de dato devuelve.
void ft_putchar(char c)
{
write(1, &c, 1);
// No hay return con valor
}
int ft_strlen(char *str)
{
int i;
i = 0;
while (str[i])
i++;
return (i);
}
char ft_toupper(char c)
{
if (c >= 'a' && c <= 'z')
return (c - 32);
return (c);
}
char *ft_strdup(char *src)
{
// ...
return (copy); // dirección de memoria
}
char **ft_split(char *str, char *charset)
{
// ...
return (array); // array de cadenas
}
int *ft_range(int min, int max)
{
// ...
return (array); // array de ints
}
static int ft_isdigit(char c)
{
return (c >= '0' && c <= '9');
}
// Solo usable dentro del mismo .c
| Tipo | Devuelve | Ejemplo típico |
|---|---|---|
| void | Nada | ft_putchar, ft_putstr |
| int | Número entero | ft_strlen, ft_is_prime |
| char | Un carácter | ft_toupper, ft_tolower |
| char * | Una cadena | ft_strdup, ft_strjoin |
| char ** | Array de cadenas | ft_split |
| int * | Array de enteros | ft_range |
| static + tipo | Igual al tipo base | Funciones auxiliares |
Lo que hay después del return() debe coincidir con el tipo declarado.
int funcion(void) → return (42); ✅
char funcion(void) → return ('a'); ✅
void funcion(void) → return ; ✅ (sin valor)
char *funcion(void) → return (ptr); ✅ (puntero)
int *funcion(void) → return (array); ✅ (puntero a int)
Sin IA, sin internet, hoja en blanco. Entrena tu razonamiento ahora para que fluya solo cuando llegue el momento.