Os caracteres de cotação extravagantes ‘’ são caracteres Unicode U + 2018 e U + 2019 (um único caractere Unicode cada). Sua codificação UTF-8 é uma seqüência de 3 bytes para cada, e2 80 98 e e2 80 99, respectivamente. Não tenho ideia de por que você tem dificuldade em acreditar nisso.
Evidentemente, seu ambiente indica uma localidade UTF-8. Execute locale para exibir as variáveis de ambiente relevantes. Parece que seu console está configurado para exibir UTF-8, mas a fonte não inclui os caracteres ‘ e ’ , portanto você vê um ? .
Se você mudar para uma localidade não-UTF-8, o gcc usará aspas ASCII ( '->' ).