Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำไมไม่ควรใช้ #include <bits/stdc++.h> ใน C++


<bits/stdc++.h> เป็นไฟล์หัวข้อ (header file) ที่รวมไลบรารีมาตรฐานทั้งหมด เข้าด้วยกัน บางครั้งในการแข่งขันเขียนโปรแกรม (coding contests) ที่ต้องการประหยัดเวลา การใช้ไฟล์หัวข้อนี้จึงมีประโยชน์

แต่ในแนวทางวิศวกรรมซอฟต์แวร์ เราควรลดการรวมไฟล์ (include) ให้น้อยที่สุด การใช้ไฟล์หัวข้อนี้จะทำให้รวมไฟล์จำนวนมาก เข้าด้วยกัน บางครั้งอาจไม่จำเป็นในโปรแกรม ทำให้เพิ่มเวลาการคอมไพล์และขนาดของโปรแกรม

ข้อเสียหลักของไฟล์หัวข้อนี้มีดังนี้

  • <bits/stdc++.h> ไม่ใช่ไฟล์หัวข้อมาตรฐานของไลบรารี GNU C++ ดังนั้นบางคอมไพเลอร์อาจคอมไพล์โค้ดที่มีไฟล์หัวข้อนี้ไม่ผ่าน

  • อาจใช้เวลาคอมไพล์ที่ยาวขึ้นโดยไม่จำเป็น

  • เนื่องจากไม่ใช่ส่วนหนึ่งของไลบรารีมาตรฐาน C++ จึงเป็น non-portable (ย้ายระบบไม่ได้)

  • สำหรับไฟล์หัวข้อนี้ คอมไพเลอร์จะพยายามนำเข้าไฟล์หัวข้อแบบเรียกซ้ำ (recursively) ทุกครั้งที่คอมไพล์โค้ด