Pourquoi deux binaires de programmes avec seulement des commentaires modifiés ne correspondent-ils pas exactement dans gcc?

J'ai créé deux programmes C Programme 1 int main() { } Programme 2 int main() { //Some Harmless comments } AFAIK, lors de la compilation, le compilateur (gcc) doit ignorer les commentaires et les espaces blancs redondants, et donc la sortie doit être similaire. Mais quand j'ai vérifié les md5sums...