Problema con el ejemplo 1.5.2 en el libro de K&R sobre C

Me estoy enseñando C con K&R y estoy desconcertado por uno de los ejemplos en el libro. Compilo el código exactamente como está escrito en el ejemplo, pero no hace lo que los autores dicen que hará. Se supone que el programa cuenta caracteres. El código proporcionado es el siguiente:

#include <stdio.h>

/* count characters in input; 1st version */
main()
{
    long nc;
    nc=0;
    while (getchar() != EOF)
     ++nc;
    printf("%ld\n", nc);
}

Para compilarlo, reemplazo main () con int main (). Pero supongo que eso no es relevante para la pregunta. El programa compila y funciona bien. Pero simplemente no cuenta los caracteres como fue escrito para hacerlo. ¿Me estoy perdiendo de algo? ¿Podría haber cambiado algo en cómo los compiladores modernos tratan un ejemplo de código como este desde que se escribió el libro? Cualquier ayuda que las buenas personas en este foro puedan ofrecer sería muy apreciada.

Mejor, Dan

Respuestas a la pregunta(4)

Su respuesta a la pregunta