3
เหตุใดไบนารีสองโปรแกรมที่มีเฉพาะความคิดเห็นจึงไม่เปลี่ยนไปตรงกับใน gcc
ฉันสร้างโปรแกรม C สองโปรแกรม โปรแกรม 1 int main() { } โปรแกรม 2 int main() { //Some Harmless comments } AFAIK เมื่อรวบรวมคอมไพเลอร์ (gcc) ควรละเว้นความคิดเห็นและพื้นที่สีขาวที่ซ้ำซ้อนและด้วยเหตุนี้ผลลัพธ์จึงต้องใกล้เคียงกัน แต่เมื่อฉันตรวจสอบ md5sums ของไบนารีเอาต์พุตมันไม่ตรงกัน ฉันลองรวบรวมด้วยการเพิ่มประสิทธิภาพ-O3แล้ว-Ofastแต่ก็ยังไม่ตรงกัน เกิดอะไรขึ้นที่นี่? แก้ไข: คำสั่งที่แน่นอนและมี md5sums คือ (t1.c คือโปรแกรม 1 และ t2.c คือโปรแกรม 2) gcc ./t1.c -o aaa gcc ./t2.c -o bbb 98c1a86e593fd0181383662e68bac22f aaa c10293cbe6031b13dc6244d01b4d2793 bbb …