สวัสดีและยินดีต้อนรับกลับ
ในการบรรยายครั้งนี้ ฉันอยากจะพูดถึง ฟังก์ชันยูทิลิตี้บางอย่างที่จัดทำโดยไลบรารีมาตรฐาน
c
และสิ่งเหล่านี้ทำในสิ่งที่คุณ จะคิดแค่ยูทิลิตี้บางอย่าง
ฟังก์ชันทั่วไปบางอย่าง เพื่อทำสิ่งต่าง ๆ ที่แตกต่างกัน
ในการใช้ฟังก์ชั่นยูทิลิตี้ ปกติจะอยู่ใน lib มาตรฐาน ชม.
ดังนั้นคุณรวมไฟล์ส่วนหัวนั้นไว้
หน้าที่ของฉันกำลังจะไป เพื่ออธิบายฟังก์ชันที่มีประโยชน์เพียงอย่างเดียว
หนึ่งคือ abs ค่าสัมบูรณ์
ส่งกลับค่าสัมบูรณ์ ค่าของอาร์กิวเมนต์
ค่าสัมบูรณ์คือ แปลงเป็นบวก
ดังนั้นถ้าคุณผ่านในเชิงลบ มิฉะนั้นก็จะคืนค่าเป็นบวกให้คุณ
มีฟังก์ชันที่เรียกว่า exit
ฉันใช้สิ่งนี้มาบ้างแล้ว ในหน้าที่หลักของเรา
มันจะเป็นจำนวนเต็ม โดยปกติ a ส่งคืนค่าและโดยปกติตัวเลขติดลบหมายความว่ามีข้อผิดพลาด
จำนวนบวกหรือศูนย์หมายความว่าไม่มีข้อผิดพลาดหรือหนึ่งหมายถึงไม่มีข้อผิดพลาด
นี้จะสิ้นสุด โปรแกรมแม้ว่า
มันจะกระโดดออกไปทันที
หากคุณอยู่ในหน้าที่หลัก คุณทำการส่งคืน คุณสามารถกลับจากฟังก์ชันหลัก
แต่ทางออกมักจะ เพื่อปิดโปรแกรม
มีค่าคงที่เช่นกัน กำหนดเช่นความสำเร็จในการออกและความล้มเหลวในการออกที่คุณสามารถใช้ได้
if คุณไม่ต้องการใช้ตัวเลข
กิจวัตรอื่นๆ ที่เกี่ยวข้องใน ห้องสมุดที่คุณอาจต้องการอ้างถึงมีความสำคัญเมื่อออก
และคุณจะเห็นสิ่งนี้ใน a โปรแกรม bit c โดยเฉพาะการยกเลิก
การยกเลิกคือเมื่อมีบางอย่าง ชนิดของข้อผิดพลาดเช่นถ้าคุณไม่สามารถ malloc
คุณอาจโทรยกเลิก และคุณสามารถตั้งค่าให้เป็นสัญญาณได้
ข้อดีของการทำแท้ง คือมันจะสร้างไฟล์หลักขึ้นอยู่กับสัญญาณ
ไฟล์หลักสามารถช่วยได้ ดีบักสำหรับข้อมูลเพิ่มเติม
แต่ exit abort และ atexit มาก ฟังก์ชันที่มีประโยชน์ ซึ่งมักเรียกเมื่อคุณมีข้อผิดพลาดร้ายแรง
มีสภาพแวดล้อมที่ได้รับ ฟังก์ชั่นที่จะช่วยให้คุณสามารถอ่านตัวแปรสภาพแวดล้อม
ตัวแปรสภาพแวดล้อมมักจะ ที่เกี่ยวข้องกับสภาพแวดล้อมของคุณ
เป็นตัวแปรที่คุณ ใช้ได้เหมือนตัวแปรโกลบอลที่คุณสามารถใช้ได้
ที่ใดก็ได้บนระบบปฏิบัติการ
ดังนั้นหากเป็น Linux คุณมี ตัวแปรสภาพแวดล้อมสำหรับเส้นทางของคุณ
มีตัวแปรสภาพแวดล้อมใน หน้าต่างเพื่อระบุเส้นทางหรือตำแหน่งของโปรแกรมต่างๆ
หรือเพียงแค่ตัวแปรส่วนกลางทั่วไป
คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม จากนั้นคุณสามารถอ่านได้โดยใช้ฟังก์ชั่นรับสภาพแวดล้อม
และมันจะอ่านว่า ตัวแปรสภาพแวดล้อมและคุณสามารถใช้มันในโปรแกรมของคุณ
อีกครั้ง สิ่งต่างๆ เช่น เส้นทางอะไรก็ได้ ที่เกี่ยวข้องกับเชลล์ของคุณหรือเกี่ยวข้องกับสภาพแวดล้อมของคุณ
รับสภาพแวดล้อมที่มีประโยชน์มาก
มีฟังก์ชัน qsort
นี่จะเรียงลำดับ data array ชี้ไปที่อาร์เรย์ตัวชี้เป็นโมฆะ
จึงมีอาร์เรย์ที่ นำมาเป็นพารามิเตอร์แรกและจะทำการเรียงลำดับ
จะมีองค์ประกอบ n ตัวใน อาร์เรย์แต่ละขนาดกัดในความยาว
และ n และขนาด มีขนาด t
มีสี่ตัวแปร ที่ไปทำหน้าที่นี้
แต่คิวซอร์ทก็ดีเพราะ คุณสามารถเรียงลำดับอาร์เรย์
อาร์กิวเมนต์ที่สี่คือ a ตัวชี้ไปยังฟังก์ชันที่คุณต้องการใช้สำหรับการเรียงลำดับ
จึงสามารถซับซ้อนขึ้นได้
แต่ฟังก์ชั่นนี้เด็ดมาก มีประโยชน์เมื่อคุณต้องการเปรียบเทียบสององค์ประกอบในอาร์เรย์
คุณสามารถผ่านในพอยน์เตอร์ กับองค์ประกอบที่คุณต้องการเปรียบเทียบ
เรามีฟังก์ชันสุ่ม
เราใช้สิ่งนี้ในหนึ่งใน ความท้าทายของเราแรนด์
สิ่งนี้จะสร้างตัวเลขสุ่ม
คุณสามารถระบุเมล็ดพันธุ์ได้หากต้องการ ในฟังก์ชันอื่นหรือจะสร้างตัวเลขสุ่มระหว่าง
a ค่าต่ำสุด 3276 และค่าต่ำสุดเป็นศูนย์แบบสุ่ม ค่าสูงสุด 3276
ดังนั้น rand max จึงถูกกำหนดใน lib มาตรฐาน ชม.
คุณมักจะใช้สิ่งนี้กับ sran ทำหน้าที่ให้เมล็ดพืช
เมล็ดพันธุ์สามารถให้ช่วงหนึ่งได้
มันจะทำให้ตัวเลข อาจจะสุ่มมากขึ้นด้วย
มันเลยสุ่มเลข เครื่องกำเนิดไฟฟ้าไปยัง int ที่ไม่ได้ลงชื่อ
ระบบเป็นฟังก์ชันที่คุณทำได้ เรียกใช้เพื่อดำเนินการเรียกระบบ
ฉันใช้มันในชั้นเรียนเพื่อหยุดชั่วคราว
แต่ทุกสิ่งที่คุณสามารถเรียกใช้จาก คอนโซล เช่น การเปลี่ยนไดเร็กทอรี
การเปลี่ยนการอนุญาตหากคุณเปิดอยู่ ลินุกซ์, รันโปรแกรมอื่น, คุณสามารถทำทั้งหมดนี้ได้ผ่านระบบ.
และนี่จะเป็นจริง เรียกใช้คำสั่งในเชลล์ของคุณ ไม่ว่าจะเป็นพรอมต์
dos หรือ คุณกำลังใช้เชลล์บน Linux
มันจะรันคำสั่งนั้น
ตัวอย่างเช่น คุณสามารถพูดว่า ระบบสร้าง dir และมันจะสร้างไดเร็กทอรีของสิ่งที่คุณระบุ
ในการโต้แย้งเพื่อให้ ผบ.
ข้างในเป็นสองเท่า คำพูดจึงต้องใช้สตริง
ระบบมีประโยชน์มากเช่นกัน
ห้องสมุดยืนยันคือ มีประโยชน์สำหรับการดีบัก
เราไม่มีโอกาสได้พูดคุยกัน มากเกี่ยวกับการยืนยัน แต่ฉันอยากจะพูดถึงมันสั้น
ๆ
มันเป็นห้องสมุดที่ยืนยัน ชม. และเป็นตัวช่วยในการดีบัก
ดังนั้นการยืนยันคือการพูดว่าบางสิ่งเป็นความจริง
เลยใส่ยืนยันข้างใน รหัสของคุณเพื่อให้แน่ใจว่ามีบางอย่างเป็นจริงก่อนคุณ
ไปยังบรรทัดถัดไปของรหัส
มีมาโครยืนยันที่ คุณจะใช้และต้องใช้อาร์กิวเมนต์เช่นนิพจน์ภายใน
หากนิพจน์ประเมินถึง false มาโครยืนยันจะเขียนข้อความแสดงข้อผิดพลาดไปยังข้อผิดพลาดมาตรฐาน
สตรีมและเรียกใช้ฟังก์ชันยกเลิก
ดังนั้นโปรแกรมเมอร์ของคุณจึงยุติ
เลยใส่อะไรลงไปได้ ในโค้ดของคุณที่พูดแบบนี้โดยทั่วไป
คุณสามารถพูดได้ว่า z เท่ากับ x คูณ x ลบ x คูณ y
จากนั้นคุณสามารถยืนยันได้ว่า z มากกว่าหรือเท่ากับศูนย์
หากคืนค่าเป็นเท็จ . ของคุณ โปรแกรมกำลังจะออก
มิฉะนั้นจะดำเนินการ รหัสบรรทัดถัดไป
ก็เหมือนทำให้เป็นจริง สมมติฐานตลอดทั้งรหัสของคุณ
คุณต้องการให้แน่ใจว่า ค่าบางอย่างคือสิ่งที่เป็นก่อนที่คุณจะดำเนินการต่อไป
นี้เป็นหลักทำให้แน่ใจว่า คุณไม่เหมือนกับการหารด้วยศูนย์
คุณไม่มีค่าเป็นศูนย์ เมื่อคุณทำการคูณนี้
คุณมักจะเห็นการยืนยันภายใน ของโปรแกรม c สำหรับการดีบัก
ไฟล์ส่วนหัวที่มีประโยชน์อื่น ๆ ที่ คุณอาจต้องการพิจารณา: เวลา ชม.
เวลา. h มีความแตกต่างกันทุกประเภท ฟังก์ชันและมาโครเพื่อรองรับวันที่และเวลาที่แตกต่างกัน
โดยปกติการส่งคืนโครงสร้างเวลา
แต่คุณสามารถได้รับวันที่
คุณจะได้รับเวลา
เออร์โน h หรือหมายเลขข้อผิดพลาด ชม.
สิ่งนี้กำหนดมาโครสำหรับ การรายงานข้อผิดพลาด
มักใช้, อีกครั้ง, สำหรับ แก้จุดบกพร่องและรายงานข้อผิดพลาดเฉพาะได้ดีขึ้น
ฟังก์ชั่นมากมายให้คุณ ใช้ในห้องสมุดมาตรฐาน
หากล้มเหลวอาจส่งคืนหมายเลข สำหรับข้อผิดพลาดเฉพาะ และสำคัญกว่าเมื่อคุณใช้ socket
ทำหน้าที่อย่างอื่นเพราะอาจมีข้อผิดพลาดหลายอย่าง
บางครั้งก็มีประโยชน์ที่จะรู้ เกิดอะไรขึ้นแทนที่จะบอกว่ามีข้อผิดพลาดไม่ใช่
มีประโยชน์มากในการบอกว่าข้อผิดพลาดประเภทใดประเภทหนึ่งมีประโยชน์มาก
เพื่อให้คุณได้รับหมายเลขข้อผิดพลาด ใช้สิ่งนี้เพื่อช่วยในการแก้ไขข้อบกพร่องเพิ่มเติม
สถานที่ ชม.
มีฟังก์ชั่นมากมาย และมาโครในส่วนหัวนี้สำหรับการจัดรูปแบบที่แตกต่างกัน
สกุลเงินและหน่วยเงินตรา
สัญญาณ. ชม.
สิ่งนี้มีประโยชน์สำหรับปกติ สำหรับการยกเลิกโปรแกรมสร้างสัญญาณต่างๆ
สัญญาณไม่ใช่หัวข้อที่เราพูดถึง ในรายละเอียดมากมาย แต่สิ่งนี้อาจมีประโยชน์เมื่อคุณโทรยกเลิกการระบุ
สัญญาณเฉพาะในขณะที่โปรแกรมหยุดทำงานหรือโปรแกรมหยุดทำงาน
และคุณสามารถใช้สิ่งเหล่านี้ได้หากคุณ ทำความเข้าใจสัญญาณที่คุณสามารถใช้ในไฟล์หลักของคุณได้เช่นกัน
สตดาร์ก ชม.
สิ่งนี้กำหนดสิ่งอำนวยความสะดวกต่าง ๆ ที่ เปิดใช้งานจำนวนตัวแปรของอาร์กิวเมนต์ที่จะส่งผ่านไปยังฟังก์ชัน
varargs
เราใช้ vargs และ printf แต่เราไม่ได้ สร้างฟังก์ชันหาเรื่องของเราเอง
เป็นหัวข้อขั้นสูง
แต่นี่เป็นไฟล์ส่วนหัวพื้นฐาน ที่คุณอาจพบว่ามีประโยชน์ในการรับเวลา
หมายเลขข้อผิดพลาด และอื่นๆ
สิ่งเหล่านี้เป็นฟังก์ชันยูทิลิตี้ที่ดี
ดังนั้นฉันหวังว่านี่จะเป็นประโยชน์
ขอขอบคุณ.