ความแตกต่างระหว่าง GCC และ CC Compiler ความแตกต่างระหว่าง

Anonim

GCC vs CC Compiler

CC เป็นชื่อที่กำหนดให้กับ UNIX Compiler Command ใช้เป็นคำสั่งคอมไพเลอร์ดีฟอลต์สำหรับระบบปฏิบัติการของคุณและยังสามารถใช้งานได้กับคำสั่งเดียวกัน ในทางกลับกัน GCC เป็นระบบปฏิบัติการ GNU Compiler ในระบบที่ทำงานบน GNU และ Linux พบว่า CC เป็นลิงก์เพื่อให้สคริปต์สามารถใช้โปรแกรมรวบรวมข้อมูลทั้งแบบสลับกันได้อย่างง่ายดาย มีข้อแตกต่างที่สังเกตได้จากการใช้ชุดรวบรวมคอมไพเลอร์ GNU และคอมไพเลอร์ CC ความแตกต่างเหล่านี้สามารถแบ่งออกเป็นสองกลุ่มหลัก หนึ่งในนั้นมีความเฉพาะเจาะจงมากขึ้นในขณะที่กลุ่มอื่น ๆ มีลักษณะทั่วไปมากกว่า

ความแตกต่าง

ข้อแตกต่างหลักระหว่างสองข้อเกี่ยวกับคอมไพเลอร์ C และคอมไพเลอร์ C ++ คอมไพเลอร์ C ++ ยอมรับโปรแกรม C ++ แต่ไม่ได้คอมไพล์โปรแกรมใน C โดยพลการ นี่เป็นความจริงโดยทั่วไปแม้ว่าจะมีการแสดงให้เห็นว่าเป็นไปได้ที่จะเขียนรหัสภาษา C ในชุดย่อยที่เข้าใจได้ดีโดย C ++ แม้ว่าโปรแกรม C จำนวนมากจะไม่สามารถใช้งานโปรแกรม C + + ได้ ในทางกลับกันคอมไพเลอร์ C ยอมรับโปรแกรม C แต่ปฏิเสธโปรแกรม C + + ที่รันอยู่ในโปรแกรมเหล่านี้มากที่สุด สาเหตุที่เกิดปัญหานี้คือโปรแกรม C ++ ส่วนใหญ่เรียกใช้โครงสร้างที่ไม่สามารถใช้งานได้ใน C.

ไลบรารีที่ใช้ได้สำหรับภาษาโปรแกรมเหล่านี้ส่วนใหญ่ขึ้นอยู่กับภาษา C + + โปรแกรมสามารถดำเนินการในห้องสมุด C แต่นี้เป็นแพลตฟอร์มเฉพาะ โปรแกรม C ในมืออื่น ๆ ไม่สามารถใช้ห้องสมุด C + +; ดังนั้น C ++ มีแนวโน้มที่จะมีไลบรารีที่มีขนาดใหญ่กว่า C.

ใน Solaris รหัสอ็อบเจ็กต์ที่สร้างขึ้นโดยคำสั่งคอมไพเลอร์จะไม่สามารถทำงานร่วมกับโค้ดที่ผลิตโดย g ++ ได้เนื่องจากเป็นคอมไพเลอร์แยกกันสองชุด อนุสัญญาจะแตกต่างกัน ประเด็นหลักที่แตกต่างกันคือการจัดการข้อยกเว้นและการโกงชื่อ อย่างไรก็ตามสิ่งสำคัญคือต้องทราบว่าการใช้ชื่อว่าเป็นสิ่งสำคัญในการป้องกันไม่ให้วัตถุที่เชื่อมโยงกันเข้ากันได้ นี้มีผลชี้ไปที่ความเป็นจริงว่าการใช้ไลบรารีที่คอมไพล์ใน CC ต้องการให้โปรแกรมทั้งหมดถูกรวบรวมไว้ใน CC นอกจากนี้ถ้าคุณต้องการใช้ไลบรารีคอมไพล์กับ CC และอีกชุดหนึ่งที่มี g ++ จะต้องมีการคอมไพล์ใหม่ของไลบรารีเพื่อให้แน่ใจว่าฟังก์ชันการทำงานที่ต้องการ

ในด้านคุณภาพของแอสเซมบลีที่สร้างขึ้น GCC ซึ่งเป็น GNU Compiler Collection เป็นสิ่งที่ดีมากในงานนี้ คอมไพเลอร์แบบดั้งเดิมทำงานได้ดีขึ้นในบางครั้ง คอมไพเลอร์ของ Intel สามารถกล่าวได้ว่ามีการเพิ่มประสิทธิภาพอย่างทั่วถึงซึ่งยังไม่ได้ทำซ้ำใน GCC

คอมไพเลอร์ทั้งสองตัวมีมาตรฐานใหม่ทั้งหมดในปัจจุบันแม้ว่าจะมีความแตกต่างเล็กน้อยระหว่างภาษามาตรฐานกับภาษาที่คอมไพเลอร์สนับสนุน มาตรฐานเหล่านี้ ได้แก่ (C ++ 98, C ++ 2003, C99)การสนับสนุน C89 เก่ามีให้บริการในคอมไพเลอร์และความเข้าใจเกี่ยวกับการตอบสนองที่คาดว่าเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าคอมไพเลอร์ม้วนออกตามที่คาดไว้ ใน GCC ทั้งหมดดูเหมือนจะเน้นที่ทำให้ชีวิตง่ายขึ้นเนื่องจากส่วนขยายและปรับแต่งที่สามารถทำได้เพื่อให้ได้ผลลัพธ์ที่ต้องการ

สรุป

มีปัญหาเกี่ยวกับความเข้ากันได้ข้ามกันของไลบรารีคอมไพเลอร์ C และ C ++

โปรแกรม C ++ สามารถทำงานได้บนไลบรารี C แต่เป็นแพลตฟอร์มที่เฉพาะเจาะจง

เมื่อต้องการใช้ไลบรารีที่ประกอบด้วย CC ต้องใช้โปรแกรมทั้งหมดที่จะคอมไพล์ด้วย CC และไม่ใช่ GCC

ถ้าคุณมีไลบรารีคอมไพล์ใน CC และ g + + หนึ่งไลบรารีต้องถูกคอมไพล์ใหม่

GCC เป็นงานมหัศจรรย์ในการสร้างชุดประกอบการที่มีคุณภาพ

ทั้ง CC และ GCC มีคุณสมบัติทางภาษาที่ยอดเยี่ยมเมื่อเทียบกับมาตรฐานปัจจุบัน