สวัสดีและยินดีต้อนรับ.
ในการบรรยายครั้งนี้ ฉันอยากจะพูด เกี่ยวกับคำสั่งรวม
และอีกครั้งตั้งแต่ครั้งแรกของเรา ท้าทายการเปิดเผยครั้งแรกของเรากับรหัส
c และโปรแกรม c คุณควรมี สังเกตเห็นนี้รวมถึงคำสั่ง
มันอยู่บนบรรทัดที่แปดที่นี่ในนี้ ตัวอย่าง และนี่คือตัวอย่างโครงการท้าทายพื้นฐานโปรแกรม
c
คุณจะเห็นว่ามันรวม
และตอนนี้เพราะเราได้เรียนรู้ เกี่ยวกับตัวประมวลผลล่วงหน้า
เรารู้ว่าเป็นคำสั่งตัวประมวลผลล่วงหน้า เพราะเรามีสัญลักษณ์ปอนด์นั้น
อะไรก็ได้ที่ขึ้นต้นด้วย สัญลักษณ์ปอนด์ก่อนช่องว่างอื่น
ๆ คือคำสั่งตัวประมวลผลล่วงหน้า คำสั่งพรีโปรเซสเซอร์
ดังนั้นเราจึงรู้ว่าบรรทัดที่แปดรวม คีย์เวิร์ดพิเศษที่มีสัญลักษณ์ปอนด์เป็นคำสั่งที่ประมวลผลล่วงหน้า
ตอนนี้ฉันอยากจะอธิบายให้คุณฟัง นี่กำลังทำอะไรอยู่กันแน่?
สิ่งนี้หมายความว่า?
นี่เป็นแนวคิดพื้นฐานใน c . อีกครั้ง ที่เราต้องพูดถึงตั้งแต่เนิ่นๆ
เพราะทุกโปรแกรมภาษาซีมี
มันคล้ายกันมากถ้าคุณคุ้นเคย ด้วย java พร้อมคำสั่งนำเข้า
แต่เราจะอธิบายเรื่องนี้ใน รายละเอียดในตอนนี้ในบางสไลด์ แต่คุณจะเห็นสิ่งนี้ในโปรแกรม
c ทั้งหมดของคุณ
ดังนั้นคำสั่ง include คือ a คำสั่งตัวประมวลผลล่วงหน้าเนื่องจากสัญลักษณ์ปอนด์ที่เราทราบ
และเราเรียกมันว่าคำสั่งเป็น ตรงกันข้ามกับคำสั่งโดยไม่มีเหตุผลที่แท้จริงเพียงเพราะเป็นเรื่องธรรมดาที่จะ
ใช้คำนั้นในภาษาการเขียนโปรแกรม แต่เป็นคำสั่งในทางเทคนิค
และอีกครั้ง ตัวอย่างของเรา โปรแกรมได้รวมสิ่งนี้ไว้ในวงเล็บมุมเหล่านี้
ดังนั้นเราจึงเห็นว่ามีคำหลัก แล้วเราก็เห็น stdio นี้ ชม.
และนี่คือตัวอย่าง
นี่คือสิ่งที่เรา ใช้ในความท้าทายแรกของเรา
ไม่ใช่ส่วนหนึ่งอย่างเคร่งครัด ของโปรแกรมปฏิบัติการ
อย่างไรก็ตาม โปรแกรม จะไม่ทำงานหากไม่มีมัน
เรารู้ว่ามันคือ คำสั่งที่ประมวลผลล่วงหน้า
มันไม่ได้ทำอะไรมากเท่า เท่าที่โปรแกรมทำงาน
มันก็แค่บอกคอมไพเลอร์ ก่อนที่มันจะทำงาน เฮ้ เรากำลังทำอะไรบางอย่างที่นี่ ซึ่งรวมถึงสิ่งนี้ด้วย
แล้วถ้าไม่มี คอมไพเลอร์จะบ่นและโยนข้อผิดพลาด
ดังนั้นคุณต้องการมัน
สัญลักษณ์ปอนด์แสดงว่า มันเป็นคำสั่งก่อนการประมวลผล
เราพูดถึงเรื่องนั้นซึ่งก็คือ คำสั่งคอมไพเลอร์ของคุณให้ทำบางอย่างก่อน
รวบรวมซอร์สโค้ด
มีการประมวลผลล่วงหน้าจำนวนมาก คำสั่งและเราให้ตัวอย่างบางส่วนในการบรรยายก่อนการประมวลผลของเรา
เราพูดถึงค่าคงที่ งบที่กำหนดไว้
เราคุยกันเรื่อง if และ else และ ดังนั้นความแตกต่างของคำสั่งก่อนการประมวลผลแบบมีเงื่อนไข
แต่นี่เป็นหนึ่งในที่สุดจริงๆ ที่ใช้กันทั่วไป ได้แก่
และอีกครั้ง คำสั่งเหล่านี้สามารถ อยู่ที่ใดก็ได้ในซอร์สโค้ดของคุณ แต่โดยปกติแล้วจะอยู่ที่ด้านบนสุด
ในการรวมโดยเฉพาะนี้ รวมคำสั่งตัวประมวลผลล่วงหน้านั้นคล้ายกับคำสั่งนำเข้ามาก
ใน java หากคุณคุ้นเคยกับสิ่งนั้น
แต่นั่นหมายความว่าอย่างไร?
ดังนั้นในตัวอย่างข้างต้นที่นี่ด้วย รวม stdio สัญลักษณ์ปอนด์ h นี่กำลังบอกคอมไพเลอร์ของคุณ
เพื่อรวมเนื้อหาโปรแกรมบางส่วนของไฟล์ด้วยชื่อนั้น
จึงมีชื่อไฟล์ว่า มีอยู่บางแห่งที่เรียกว่า stdio ชม.
และสิ่งที่สั่งสอนก็คือ โปรแกรมปัจจุบันของฉันที่มีคำสั่งต้องการเนื้อหาบางส่วน
ภายในไฟล์นี้เพื่อรวบรวม
โดยเฉพาะการรวม คำสั่งจะมีชื่อไฟล์ที่ลงท้ายด้วย
. ชม.
สิ่งเหล่านี้เรียกว่าไฟล์ส่วนหัว
เรียกว่าไฟล์ส่วนหัว เพราะมักจะรวมไว้ที่ด้านบนของไฟล์ต้นฉบับ
เป็นสิ่งแรกที่คุณทำ คือคุณรวมไฟล์ส่วนหัวทั้งหมดของคุณ
และอีกครั้ง พรีโปรเซสเซอร์นี้ คำสั่งบอกว่าฉันต้องการเนื้อหาบางส่วนภายในไฟล์นั้น
ไม่ใช่ไฟล์ c
เรารู้ว่าไฟล์ที่จบ ใน . c เป็นไฟล์ต้นฉบับ c
ดังนั้น . h จะต้อง อย่างอื่นและมันคือ
มันเป็นไฟล์ส่วนหัว
และมีสิ่งนั้น เอช นามสกุล
มาคุยกันหน่อย ไฟล์ส่วนหัวคืออะไร
ไฟล์ส่วนหัวกำหนดข้อมูล เกี่ยวกับฟังก์ชันบางอย่างที่มีให้ในไฟล์นั้น
และฉันจะยกตัวอย่างให้คุณฟัง ของเนื้อหาในไฟล์ส่วนหัว
แต่ก่อนอื่น พวกเขากำลังกำหนดบางอย่าง ข้อมูลเกี่ยวกับซอร์สโค้ดบางส่วน
และสำหรับตัวอย่างของเราโดยเฉพาะ ด้วย stdio ที่รวมอยู่ด้วย h นี่รวมถึงส่วนหัวของไลบรารีมาตรฐาน
c
จำไว้ฉันบอก คุณเกี่ยวกับห้องสมุด
ห้องสมุดเป็นเพียงส่วนเสริม ฟังก์ชันที่เขียนไว้สำหรับคุณและคที่คุณ
สามารถรวมไว้ในโปรแกรมของคุณ ดังนั้นคุณจึงไม่ต้องเขียนใหม่
ตัวอย่างของห้องสมุดก็คือ การอ่านและการเขียนไปยังคอนโซล
แสดงผล การอ่าน และ การเขียนไฟล์ต่างๆ การทำโค้ดเครือข่ายต่างๆ
มากมาย ห้องสมุดต่าง ๆ มากมาย
แต่สตั๊ด. h เป็นไลบรารีมาตรฐาน c
ความหมายมันมาพร้อมกับ ภาษาการเขียนโปรแกรม c และมีฟังก์ชันสำหรับการแสดงผล
ส่งออกท่ามกลางสิ่งอื่น ๆ อีกมากมาย
โคตรเท่เลย h มันเป็นไฟล์ส่วนหัว
มันกำหนดฟังก์ชั่นบางอย่างที่ คอมไพเลอร์ต้องเข้าใจก่อนจึงจะสามารถใช้งานได้จริง
โดยเฉพาะ stdio h ประกอบด้วย ข้อมูลเกี่ยวกับ printf
แล้วเราจะมาคุยกัน เกี่ยวกับ printf ในการบรรยายครั้งต่อไป
ซึ่งช่วยให้เราแสดงผล แต่ printf เป็นฟังก์ชันที่อยู่ใน stdio
ไฟล์ส่วนหัว h
และยังมี ฟังก์ชั่นอื่น ๆ อีกมากมาย
Stdio ย่อมาจาก เอาต์พุตอินพุตมาตรฐาน
ห้องสมุดนี้กำลังอธิบาย มันมีฟังก์ชันสำหรับจัดการกับอินพุตและเอาต์พุต
และนี่คือแนวคิด ของการใช้ชื่อที่มีความหมาย
เราไม่อยากเรียกแบบนั้น ห้องสมุด Jason หรือ Jason h เพราะนั่นไม่มีความหมาย
เราใช้ stdio h เพราะ มันบอกว่ามาตรฐาน io
อินพุตและเอาต์พุตมาตรฐานและเรารู้ ว่าไลบรารีนั้นมีฟังก์ชันทุกประเภทสำหรับการนำเข้าอัลฟ่า
ฟังก์ชันเฉพาะที่ เราต้องการใช้ใน Challenge Program ตัวอย่างแรกของเรา
คือเราต้องการใช้ฟังก์ชันนี้ที่เรียกว่า printf
ซึ่งช่วยให้เรา แสดงผลไปยังคอนโซล
และด้วยการรวม stdio นี้ ชั่วโมงใน ซอร์สโค้ดของเรา เรากำลังพูดเพื่อใช้ฟังก์ชันนี้ของ
this printf เราจำเป็นต้องรวมไฟล์นี้
ดังนั้นไฟที่ส่วนหัวจะระบุ ข้อมูลที่คอมไพเลอร์ใช้ในการรวมและนำกลับมาใช้ใหม่
โค้ด ฟังก์ชันใดๆ ภายในโปรแกรม
ดังนั้นคุณจะใช้หลาย ๆ อย่าง ไฟล์ส่วนหัวของไลบรารีมาตรฐานที่แตกต่างกันมากมายและมีมากมาย
ออกไปที่นั่น stdio h เป็นเพียงหนึ่ง
มีไฟล์ส่วนหัวที่กำหนดอีกครั้ง ฟังก์ชันหรือฟังก์ชันต้นแบบสำหรับรหัสเครือข่าย
รหัสซ็อกเก็ต
อีกครั้งเราจะผ่าน จำนวนมาก สตริงสำหรับคำที่สมบูรณ์และสิ่งต่างๆ
เช่นนั้น
แต่นอกเหนือจากมาตรฐานค ห้องสมุดในไลบรารีต่าง ๆ ที่มาพร้อมกับการเขียนโปรแกรม
c ภาษา คุณยังสามารถสร้างไฟล์ส่วนหัวของคุณเองได้ และคุณจะเป็น
การสร้างไฟล์ส่วนหัวของคุณเองเนื่องจากไฟล์ส่วนหัวอนุญาตให้ใช้ซอฟต์แวร์ซ้ำได้
ให้คุณนำกลับมาใช้ใหม่ได้ ฟังก์ชั่นที่เขียนในค.
ดังนั้นที่ไหนสักแห่งที่นักออกแบบของ c เขียน รหัส c ทั้งหมดที่อ่านและเขียนข้อมูลและจัดการอินพุตและเอาต์พุต
พวกเขาไม่ต้องการโปรแกรมเมอร์ c ใหม่นี้ ที่จะต้องเขียนเอง
ดังนั้นพวกเขาจะเขียน สำหรับคุณและพวกเขาจะบอกว่าคุณสามารถใช้มันได้
และวิธีที่คุณใช้ก็คือ คุณรวมไฟล์ส่วนหัว
ดังนั้นคุณในฐานะนักพัฒนาของคุณเอง คุณอาจเขียนโค้ดในโปรแกรมขนาดใหญ่ ขนาดใหญ่
ไฟล์หลายพันไฟล์ที่ คุณต้องการนำไปใช้ในไฟล์อื่น
แล้วคุณจะเขียน ไฟล์ส่วนหัวของคุณเอง
และไฟล์ส่วนหัวอีกครั้ง กำลังจะกำหนดฟังก์ชันต้นแบบ
ค่าคงที่ต่างๆ ต่าง ๆ ต่าง ๆ ที่จะช่วยเหลือผู้อื่น
ไฟล์ที่สามารถใช้โปรแกรมของคุณได้ก็จะช่วยคอมไพล์โปรแกรมของคุณ
จึงเป็นซอฟต์แวร์ที่ใช้ซ้ำ เทคนิคเป็นหลัก
เราจะรวมสิ่งนี้ไว้ด้วย มาตรฐานไอโอ ไฟล์ส่วนหัวในโปรแกรมทุกครั้งที่เราจำเป็นต้องใช้
จำเป็นต้องใช้ฟังก์ชัน printf จากไลบรารีมาตรฐาน
หากคุณไม่ได้รวม มันมันจะไม่คอมไพล์
ดังนั้นทุกครั้งที่คุณใช้ ฟังก์ชันบางอย่าง คุณต้องใช้คำสั่ง
include
ไวยากรณ์เท่าไฟล์ส่วนหัว ไป พวกเขาจะพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หมายถึง ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก
มันสำคัญว่าคุณ ทำอย่างใดอย่างหนึ่ง
ดังนั้นคุณควรเสมอ เขียนเป็นตัวพิมพ์เล็ก
ไฟล์ส่วนหัวของคุณควรอยู่ใน ตัวพิมพ์เล็กเพราะมิฉะนั้นบางระบบอาจตีความ
พวกเขามีความหมายที่แตกต่างกัน
มีสองวิธีในการรวม ไฟล์ส่วนหัวในโปรแกรม
คุณสามารถใช้วงเล็บมุม เช่น ปอนด์ รวมเจสัน
h และวงเล็บเหลี่ยม
และที่มักจะหมายความว่ามันคือ บอกให้ตัวประมวลผลล่วงหน้าค้นหาไฟล์ในไดเร็กทอรีระบบบางประเภท
มักจะเป็นห้องสมุดมาตรฐานที่ มาพร้อมกับภาษาซี
คุณยังสามารถใช้เครื่องหมายคำพูดคู่
เครื่องหมายคำพูดคู่มักจะหมายความว่ามันหมายถึง เป็นไฟล์ส่วนหัวที่ผู้ใช้กำหนด
เป็นหนึ่งที่คุณสร้างขึ้นเป็น นักพัฒนาที่ไม่ได้มาพร้อมกับภาษาโปรแกรม
c แต่ คุณต้องการให้มีส่วนหัวนั้นเพราะคุณต้องการใช้รหัสซ้ำ
มันก็เลยจะพูด ดูในไดเร็กทอรีปัจจุบัน
คอมไพเลอร์ c ทุกตัวที่สอดคล้อง ถึงมาตรฐาน C11 จะมีชุดของส่วนหัวมาตรฐาน
ไฟล์ที่ให้มาด้วย
นี่เป็นเพียงไฟล์ส่วนหัว ที่เป็นตัวแทนของห้องสมุด
C ฟังก์ชั่นที่ มาพร้อมกับภาษา
เมื่อคุณใช้คำสั่ง include เป็นเรื่องปกติที่จะใช้คำสั่งตัวประมวลผลล่วงหน้าอื่น
ๆ หากไม่เป็นเช่นนั้น ค้นหาและกำหนด เพื่อไม่ให้คุณรวมไฟล์มากกว่าหนึ่งครั้ง
นี้สำหรับประสิทธิภาพ
ดังนั้นหากโปรแกรมของคุณใช้ printf เช่น แสดงผลออกทางหน้าจอ
ต้องการบอกโปรแกรม ฉันต้องรวมฟังก์ชันเพิ่มเติมนี้ไว้ในไลบรารีมาตรฐานด้วย
ไม่อยากบอก รวมไว้มากกว่าหนึ่งครั้งเพราะตัวประมวลผลล่วงหน้าจะทำหลายอย่าง
สิ่งที่ไม่จำเป็นต้องทำ
โดยทั่วไปแล้วคุณจะ ใช้ถ้าไม่ได้กำหนดไว้
ดังนั้นคุณจะเห็นสิ่งนี้ในบางส่วน ของตัวอย่างที่ฉันให้โดยที่ฉันรวมไว้ใน
if . เหล่านี้ ไม่ได้กำหนดและกำหนดงบ
นี่คือตัวอย่างของ ไฟล์ส่วนหัวในเนื้อหา
คุณอาจมีไฟล์ส่วนหัว มีความคิดเห็นบางอย่างในนั้น อาจมีสิ่งอื่นในนั้น
ส่วนใหญ่มีฟังก์ชั่น ต้นแบบในนั้น แต่สามารถมีค่าคงที่ได้
มันสามารถมี typedefs
เหล่านี้เป็นแนวคิดบางอย่างที่ เรายังไม่เข้าใจ
แต่ฉันแค่พยายามอธิบาย พยายามช่วยให้คุณเข้าใจว่ามันประกอบด้วยสิ่งต่าง
ๆ มากมาย
แต่อีกครั้งสำหรับ stdio ของเรา มี บางอย่างในนั้นเรียกว่า printf ที่กำหนดฟังก์ชัน printf เพื่อที่ว่าเมื่อเราเชื่อมโยง
เราจะสามารถหาโค้ดการนำไปใช้สำหรับสิ่งนั้นได้
นี่คือตัวอย่างฟังก์ชันบางส่วน
ต้นแบบฟังก์ชันคือ แค่ชื่อฟังก์ชัน
เรารู้ว่าฟังก์ชันคืออะไร หวังว่าตอนนี้มันเป็นเพียงวิธีการจัดกลุ่มโค้ดเข้าด้วยกัน
เราจะมาพูดถึงฟังก์ชั่นกัน ในรายละเอียดมากขึ้นในภายหลัง
ดังนั้นไฟล์ส่วนหัวจึงสามารถรวม มากมายหลายสิ่งหลายอย่าง
มันสามารถรวมถึงคำสั่งที่กำหนดไว้ ค่าคงที่การประกาศโครงสร้าง
นี่เป็นอีกวิธีในการจัดกลุ่มที่แตกต่างกัน ตัวแปร จัดกลุ่มข้อมูลต่างๆ
คำสั่ง Typedef มี จะทำอย่างไรกับประเภทข้อมูล
เราจะพูดถึงเรื่องนี้มากขึ้น
แต่ต้นแบบฟังก์ชันคือ ที่สำคัญจริงๆ
พวกเขากำลังบอกคุณว่าทำงานอย่างไร ถูกกำหนดไว้แล้ว ดังนั้นคอมไพเลอร์จึงสามารถสร้างโค้ดที่จำเป็นได้
รหัสปฏิบัติการไป ในไฟล์ซอร์สโค้ด
ไฟล์ซอร์สโค้ดสิ้นสุด ใน . ค ส่วนขยาย
รหัสปฏิบัติการตามปกติ ไม่ไปอยู่ในไฟล์ส่วนหัว
มีข้อยกเว้นบางประการ
เมื่อคุณต้องการทำสิ่งต่าง ๆ แบบอินไลน์ ซึ่งเป็นสิ่งที่มีประสิทธิภาพอีกครั้งเมื่อคุณใส่ได้
ซอร์สโค้ดลงในไฟล์ส่วนหัว แต่โดยทั่วไปแล้ว
ไฟล์ . h ไฟล์ a ไฟล์ส่วนหัวจะไม่มีรหัสการใช้งาน
มันจะมีเส้น ของรหัสสำหรับคำจำกัดความเพียงอย่างเดียว
เอาล่ะ ไม่ไป ที่จะเป็นตรรกะใด ๆ ในนั้น
มันจะเป็นเพียงแค่คำจำกัดความ
ฟังก์ชันนี้มีอยู่
ฟังก์ชั่นนั้นมีอยู่
ค่าคงที่เหล่านี้มีอยู่
โครงสร้างที่แตกต่างกันเหล่านี้มีอยู่
ไม่ได้บอกว่ารหัสนี้เป็นอย่างไร กำลังทำในสิ่งที่กำลังทำอยู่
มันก็แค่บอกคุณว่ามันอยู่ที่นั่น
มันเป็นสิ่งจำเป็นโดยคอมไพเลอร์ เพื่อสร้างการเชื่อมโยง
โอเค งั้นคุณก็ไป สร้างไฟล์ส่วนหัวของคุณเอง
คุณจะใช้ส่วนหัวของระบบ ไฟล์สำหรับการทำงานเพิ่มเติม
เป็นแนวคิดที่คุณต้องทำ ทำความเข้าใจก่อนเริ่มเขียนโปรแกรมภาษาซีเพราะว่า
คุณจะเห็นสิ่งนี้รวมถึงคำสั่งในทุกโปรแกรม
และมันก็แค่บอกโปรแกรม อีกครั้งที่เรากำลังรวมรหัสเพิ่มเติมไว้ที่ใดที่หนึ่ง
เรากำลังรวมคำจำกัดความเพิ่มเติม โค้ดเพื่อให้เราสามารถเรียกใช้ฟังก์ชันต่างๆ
เหล่านี้ได้ในนี้ รหัสต่าง ๆ ในโปรแกรม c ของเรา
ดังนั้นฉันหวังว่านั่นจะสมเหตุสมผล
อีกครั้งที่มันไม่ใช่ของจริง แนวคิดที่ซับซ้อน
เรากำลังรวมรหัสเพิ่มเติม
มันค่อนข้างใช้งานง่าย แต่ เราจะดำเนินการต่อไป เราจะให้ตัวอย่างเพิ่มเติมเมื่อเราดำเนินการ
ขอขอบคุณ.