Problema com o exemplo 1.5.2 no livro K&R em C

Estou me ensinando C com K&R e sou surpreendido por um dos exemplos do livro. Eu compilo o código exatamente como está escrito no exemplo, mas ele não faz o que os autores dizem que fará. O programa deve contar caracteres. O código fornecido é o seguinte:

#include <stdio.h>

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

Para compilar, substituo main () por int main (). Mas presumo que isso não seja relevante para a questão. O programa compila e roda bem. Mas simplesmente não conta caracteres como foi escrito. Estou esquecendo de algo? Alguma coisa mudou na maneira como os compiladores modernos tratam um exemplo de código como esse desde que o livro foi escrito? Qualquer assistência que as pessoas boas deste quadro de mensagens possam oferecer seria muito apreciada.

Best, Dan

questionAnswers(4)

yourAnswerToTheQuestion