มีสแตติกไลบรารี (LIB) และไดนามิกไลบรารี (DLL) - แต่โปรดทราบว่าไฟล์. LIB สามารถเป็นสแตติกไลบรารี (ที่มีวัตถุไฟล์) หรือไลบรารีนำเข้า (มีสัญลักษณ์เพื่ออนุญาตให้ลิงเกอร์ลิงก์ไปยัง DLL)
ไลบรารีถูกใช้เนื่องจากคุณอาจมีรหัสที่คุณต้องการใช้ในหลาย ๆ โปรแกรม ตัวอย่างเช่นถ้าคุณเขียนฟังก์ชั่นที่นับจำนวนตัวอักษรในสตริงฟังก์ชันนั้นจะมีประโยชน์ในหลาย ๆ โปรแกรม เมื่อคุณได้รับฟังก์ชั่นการทำงานที่ถูกต้องคุณไม่ต้องการให้คอมไพล์รหัสใหม่ทุกครั้งที่คุณใช้ดังนั้นคุณจึงใส่โค้ดที่สามารถใช้งานได้สำหรับฟังก์ชั่นนั้นลงในไลบรารีและตัวเชื่อมโยงสามารถแยกและแทรกรหัส . ห้องสมุดแบบคงที่บางครั้งเรียกว่า 'คลัง' ด้วยเหตุนี้
ไลบรารีแบบไดนามิกทำให้ก้าวต่อไปอีกขั้นหนึ่ง ดูเหมือนจะไม่มีประโยชน์ที่จะมีฟังก์ชั่นห้องสมุดหลายชุดที่ใช้พื้นที่ในแต่ละโปรแกรม เหตุใดพวกเขาจึงไม่สามารถแบ่งปันฟังก์ชั่นทั้งหมดหนึ่งชุดได้ นี่คือสิ่งที่ไลบรารีแบบไดนามิกมีไว้สำหรับ แทนที่จะสร้างรหัสห้องสมุดลงในโปรแกรมของคุณเมื่อมีการรวบรวมก็สามารถเรียกใช้โดยการทำแผนที่ลงในโปรแกรมของคุณเมื่อมันถูกโหลดลงในหน่วยความจำ โปรแกรมหลายโปรแกรมทำงานในเวลาเดียวกันที่ใช้ฟังก์ชั่นเดียวกันสามารถแบ่งปันหนึ่งสำเนาบันทึกหน่วยความจำ ในความเป็นจริงคุณสามารถโหลดไลบรารีไดนามิกได้ตามต้องการขึ้นอยู่กับเส้นทางผ่านโค้ดของคุณ ไม่มีจุดในการมีเครื่องพิมพ์เป็นประจำหน่วยความจำหากคุณไม่ได้ทำการพิมพ์ใด ๆ ในทางกลับกันหมายความว่าคุณต้องมีสำเนาของไลบรารีแบบไดนามิกที่ติดตั้งในทุกเครื่องที่โปรแกรมของคุณทำงาน
ตัวอย่างเกือบทุกโปรแกรมที่เขียนใน 'C' จะต้องการฟังก์ชั่นจากไลบรารีที่เรียกว่า 'C runtime library แต่โปรแกรมบางโปรแกรมอาจต้องการฟังก์ชันทั้งหมด รันไทม์ C มีทั้งแบบสแตติกและไดนามิกดังนั้นคุณสามารถกำหนดเวอร์ชันที่โปรแกรมของคุณใช้ขึ้นอยู่กับความต้องการเฉพาะ