Acho que você deve primeiro verificar as configurações de localidade com:
locale
Se não estiver alinhado com o conjunto de caracteres do arquivo, você pode estar recebendo erros, como tal.
file yoursrcfile
deve fornecer as informações necessárias.
Há também o caso de que seu compilador esteja sendo executado com uma localidade diferente. Você pode solucionar isso definindo
export LC_ALL=en_US
para sua sessão bash. Isso pode ser colocado na frente do comando de compilação também. por exemplo.
LC_ALL=en_US gcc -o outfile srcfile.c
Mas o efeito nesse caso será apenas no comando subsequente.
Outro caso é que provavelmente o seu código-fonte pode ter sido editado no Windows, talvez? De qualquer forma, pode conter alguns personagens estranhos por algum motivo.
Você deve verificá-lo no vim ativando todos os caracteres
:set invlist
Espero que isso ajude!