[ Foro de C ]

Podéis explicarme este código?

08-Feb-2023 21:06
Invitado (Thelordhat )
1 Respuestas

#include <unistd.h>

void ft_putchar(char c)
{
write(1, &c, 1);
}

void ft_putnbr(int nb)
{
if (nb == -2147483648)
{
ft_putnbr(nb / 10);
ft_putchar('8');
}
else if (nb < 0)
{
ft_putchar('-');
ft_putnbr(-nb);
}
else
{
if (nb > 9)
ft_putnbr(nb / 10);
ft_putchar('0' + nb % 10);
}
}


14-Mar-2023 21:37
Invitado (Alejandro Andrade)

Este código implementa dos funciones en C: ft_putchar y ft_putnbr.

La función ft_putchar recibe un carácter y lo imprime en la salida estándar usando la función write de la biblioteca unistd.h.

La función ft_putnbr recibe un número entero y lo imprime en la salida estándar como una cadena de caracteres. Si el número es negativo, se imprime un signo "-" y se llama a la función ft_putnbr con el valor absoluto del número. Si el número es el valor más negativo que se puede representar con un int, -2147483648, la función llama a ft_putnbr con nb / 10 (es decir, -214748364) y luego imprime el dígito 8. Para los demás casos, la función llama a sí misma de manera recursiva con nb / 10 (lo que descarta el último dígito) y luego imprime el último dígito sumándole '0' y usando la función ft_putchar.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)