สวัสดีและยินดีต้อนรับกลับ
ในการบรรยายนี้ฉันต้องการ เพื่อพูดคุยเกี่ยวกับหัวข้อเพิ่มเติมที่คุณสามารถศึกษาได้
โดยพื้นฐานแล้วเรากำลังเลิกเรียน
เรากำลังปิดท้าย
เราก็เลยไม่ได้ เพื่อครอบคลุมทุกอย่าง
เห็นได้ชัดว่าเป็นชั้นเรียนเริ่มต้น
จึงมีขั้นสูงมากมาย หัวข้อที่คุณสามารถศึกษาต่อเพื่อให้คกลายเป็นจริง
ยอดเยี่ยมในการเขียนโปรแกรม c และฉันแค่อยากจะพูดถึงสองสามเรื่อง
ก่อนอื่นเราไม่ เข้าสู่ typedefs
ฉันอยากจะมี พูดถึงเรื่องนี้ แต่มันเป็นแนวคิดขั้นสูงมากกว่า
เราคุยกันเรื่อง enums
และอีนุมเป็นวิถีของ สร้างประเภทของคุณเอง
แต่โดยเฉพาะใน c มี คำหลักที่เรียกว่า typedef และคุณสามารถสร้างประเภทข้อมูลของคุณเองได้
มีประโยชน์มากๆ ของแนวคิดขั้นสูง
ได้แน่นอน เรียนรู้เพิ่มเติมเกี่ยวกับสิ่งนั้น
มีข้อมูลเพิ่มเติมมากมายเกี่ยวกับ ตัวประมวลผลล่วงหน้าที่คุณสามารถเรียนรู้ได้
โดยเฉพาะการต่อสตริง
ตัวประมวลผลล่วงหน้าจำ ที่ทำงานก่อนคอมไพเลอร์
เราได้เรียนรู้เกี่ยวกับ คำสั่งที่กำหนดไว้
เราได้เรียนรู้อีกสองสามสิ่ง ที่นี่และที่นั่น แต่ตัวประมวลผลล่วงหน้าอาจเป็นส่วนอื่นทั้งหมดด้วย
ข้อมูลเพิ่มเติมมากมายเกี่ยวกับเรื่องนี้
คุณสามารถใช้มันโดยพื้นฐานเพื่อ เพิ่มประสิทธิภาพโค้ดของคุณเป็นจำนวนมาก เพื่อให้คุณสามารถเรียกใช้ได้ล่วงหน้า
คุณสามารถทำฟังก์ชันอินไลน์ได้ ที่ทำงานในตัวประมวลผลล่วงหน้า
แนวความคิดที่ดีทั้งหมด
มีอีกมากมายใน void stars
ดาวว่างเปล่าจำไว้ มีความยืดหยุ่นสูง
โดยเฉพาะ Malloc ฟังก์ชั่นส่งคืนดาวที่ว่างเปล่า
เราสามารถสร้างฟังก์ชัน take void . ได้ พอยน์เตอร์และส่งต่อโมฆะพอยน์เตอร์ไปรอบๆ
เพื่อให้มีความยืดหยุ่นมากขึ้น
มีอีกเยอะครับ เราสามารถศึกษาเรื่องนี้ได้
ไลบรารีแบบคงที่และอ็อบเจ็กต์ที่ใช้ร่วมกัน
เราไม่ได้พูดถึงเรื่องนี้ แนวคิดของห้องสมุด
เราใช้ห้องสมุดเมื่อเราเชื่อมโยง
โดยเฉพาะจำนวนมากของ ไลบรารีถูกกำหนดไว้ในไลบรารีมาตรฐาน
c
แต่คุณสามารถสร้างห้องสมุดของคุณเองได้
เราสร้างโปรแกรม
โปรแกรมคือกระบวนการ ที่ทำงานอยู่ในความทรงจำ
แต่จริงๆ แล้วห้องสมุดเป็นรหัสอื่น ที่คุณสามารถนำมาใช้ซ้ำในโปรแกรมอื่นได้
ตัวอย่างเช่น ไลบรารีมาตรฐาน c
หากคุณเคยตั้งโปรแกรมไว้ในโปรแกรมอื่นๆ ภาษามักจะเป็น API
ที่มาพร้อมกับภาษา
มีสองประเภทคือ ห้องสมุดที่คุณสร้างได้
คุณสามารถสร้างสแตติก ห้องสมุดที่คุณรวบรวมรหัสทั้งหมดนั้นเมื่อคุณเชื่อมโยง
จากนั้นคุณสามารถสร้างแชร์ วัตถุที่ระหว่างการดำเนินการของโปรแกรม
คุณจะไป ค้นหาฟังก์ชันและเรียกใช้
ดังนั้นไลบรารีแบบคงที่มักจะสิ้นสุด ใน dot a และคอมไพล์ในเวลาคงที่หรือคอมไพล์แล้ว
เมื่อคุณคอมไพล์โปรแกรม
วัตถุที่ใช้ร่วมกันเป็นจุดดังนั้นไฟล์ หรือคุณอาจมองว่าเป็น dll ก็ได้
ถ้าคุณ เคยได้ยินเกี่ยวกับการเชื่อมโยงไลบรารีแบบไดนามิกและ
Visual c plus plus
แต่วัตถุที่ใช้ร่วมกัน ไม่ใช่เวลารวบรวม
อีกครั้งเป็นวิธีการใช้รหัสซ้ำ
เราสามารถศึกษาแนวคิดเหล่านี้และ I สามารถแสดงวิธีสร้างไลบรารีแบบสแตติกรวมถึงอ็อบเจ็กต์ที่ใช้ร่วมกันได้
มาโคร
เราไม่ได้รับโอกาส เพื่อพูดคุยเกี่ยวกับมาโคร
นี่เป็นหัวข้อขั้นสูง
สิ่งนี้ถูกเรียกใช้โดยตัวประมวลผลล่วงหน้า ส่วนใหญ่จะทำการทดแทนการแทนที่สตริง
ฟังก์ชันบางอย่างที่เรา ที่ศึกษาจริง ๆ แล้วเขียนเป็นมาโครเช่นมาโครยืนยัน
สามารถสำรวจมาโครได้ ในรายละเอียดมากขึ้น
สหภาพแรงงาน
สหภาพแรงงานมักจะ ไปพร้อมกับโครงสร้าง
เป็นช่องทางให้มีความหลากหลาย ประเภทของข้อมูลที่ส่งคืนหรือองค์ประกอบสมาชิกประเภทต่างๆ
ภายใน a โครงสร้างที่แสดงถึงสิ่งเดียวกัน
คุณจึงมีโครงสร้าง ที่มีสมาชิกหนึ่งคน แต่สมาชิกนั้นสามารถเข้าสู่ลอยและ
คุณจะใช้สหภาพเพื่อทำเช่นนั้น
หัวข้ออื่น ๆ ฟังก์ชั่นพอยน์เตอร์
เราพูดถึงตัวละคร พอยน์เตอร์เป็นส่วนใหญ่ และแม้แต่พอยน์เตอร์จำนวนเต็มและพอยน์เตอร์คู่
แต่คุณสามารถมีตัวชี้ได้ ที่ชี้ให้เห็นถึงหน้าที่ต่างๆ
ในขณะที่โปรแกรมของคุณกำลังทำงานอยู่ คุณสามารถดำเนินการหนึ่งฟังก์ชัน
และครั้งต่อไปที่มันวิ่ง มันสามารถดำเนินการฟังก์ชั่นที่แตกต่างกันตามการป้อนข้อมูลของผู้ใช้
หรืออะไรทำนองนั้น
ตัวชี้ฟังก์ชันคือ หัวข้ออื่นทั้งหมด
ตัวชี้ขั้นสูง
มีอะไรให้ชี้อีกเยอะ กว่าที่เราได้พูดคุยกัน
เราได้กล่าวถึงพื้นฐานของ พอยน์เตอร์ แต่เราสามารถพูดถึงพอยน์เตอร์ในรายละเอียดมากขึ้น
มีพอยน์เตอร์จริงถึงพอยน์เตอร์ ดังนั้นจึงมีตัวชี้คู่ และนั่นเป็นหัวข้อที่ก้าวหน้ากว่า
อาร์กิวเมนต์ตัวแปรของฟังก์ชัน
เหล่านี้เรียกว่า เป็นฟังก์ชันแปรผัน
เราใช้ฟังก์ชัน printf ที่มีจำนวนตัวแปรของอาร์กิวเมนต์
แต่เราไม่ได้กำหนด ฟังก์ชันใด ๆ ที่เรามีจำนวนตัวแปรของอาร์กิวเมนต์
เราก็ทำได้ สำรวจแนวคิดนั้นมีประโยชน์มาก
การเชื่อมโยงแบบไดนามิก
นี่คือตอนที่คุณเปิด ห้องสมุดในเวลาและแตกต่างจากวัตถุที่ใช้ร่วมกันเล็กน้อย
คุณสามารถเปิดห้องสมุด ที่รันไทม์และเพิ่มประสิทธิภาพและทำให้
.ของคุณ โปรแกรมปฏิบัติการที่มีขนาดเล็กลง
dlm เปิดมีจริง ห้องสมุดเรียกร้องให้ทำเช่นนี้
สัญญาณ, ฟอร์ก การสื่อสารระหว่างกระบวนการ
ทั้งหมดนี้สามารถสำรวจได้ระหว่างกระบวนการ การสื่อสารคือเมื่อคุณมีสองโปรแกรมที่ต้องการสื่อสาร
มีวิธีที่แตกต่างกัน ที่พวกเขาสามารถสื่อสารได้
พวกเขาสามารถสื่อสารผ่านไฟล์
สามารถสื่อสารผ่าน สิ่งที่เรียกว่าซ็อกเก็ต
พวกเขาสามารถสื่อสารโดยใช้ท่อ
มีเทคนิคต่างๆออกมา ที่นั่น แต่เมื่อกระบวนการทั้งสองต้องการพูดคุยกัน
Forking เป็นที่ที่คุณทำได้ สร้างกระบวนการอื่น
มีห้องสมุดให้สร้าง กระบวนการอื่นๆ ในโค้ดของคุณ
ถ้าคุณจะสร้างอีก ประมวลผลในรหัสของคุณ มันจะมีพื้นที่หน่วยความจำที่อยู่ของตัวเอง
และสามารถทำให้โปรแกรมของคุณมีประสิทธิภาพเพิ่มขึ้นอีกเล็กน้อย
แล้วสัญญาณว่าเราไม่ได้เข้า จำนวนมาก แต่สัญญาณจะใช้สำหรับการดีบักในการสร้างความแตกต่าง
ข้อความไปยังโปรแกรมต่างๆ
เธรดและการทำงานพร้อมกัน
อีกหัวข้อขั้นสูง ที่คุณอยากเรียน
สิ่งนี้ทำให้สามารถดำเนินการได้หลายครั้ง คะแนนภายในโปรแกรมของคุณ
ช่วยให้คุณสามารถเรียกใช้รหัส เกือบจะในเวลาเดียวกัน
ดังนั้นจึงเป็นเรื่องของประเภทประสิทธิภาพ
หากคุณมีงานยาวที่ คุณต้องทำในโปรแกรมของคุณเช่นการเฝ้าติดตามข้อมูลหรือรอ
data หรือบางทีงานของคุณกำลังอ่านไฟล์ขนาดใหญ่ คุณสามารถสร้างไฟล์อื่นได้
เพื่อทำสิ่งนั้นแล้วยังคงรันส่วนอื่น ๆ ของโปรแกรมของคุณ
ควบคู่กันไปในคราวเดียวกัน
ซ็อกเก็ต
ซ็อกเก็ตใช้สำหรับเครือข่าย
ซ็อกเก็ตจะถูกนำมาใช้ถ้าคุณต้องการ เพื่อเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นและรับข้อมูลจากคอมพิวเตอร์เครื่องอื่น
Networking นั้นใหญ่มากเพราะเรา มีอินเตอร์เน็ตและอื่นๆ
เพื่อให้คุณสามารถเรียนรู้ทุกอย่างเกี่ยวกับ ซ็อกเก็ตและดูเช่นกัน
มีสองหน้าที่ เรียกว่า setjump และ longjump
นั่นเพื่อการฟื้นฟูสภาพ
เราสามารถศึกษาสิ่งเหล่านั้นใน รายละเอียดที่ดีเพิ่มเติมเกี่ยวกับการจัดการหน่วยความจำและการแตกแฟรกเมนต์
นี่ไม่ใช่แค่เกี่ยวกับ malloc แต่ นี่คือวิธีที่คุณสามารถจัดการหน่วยความจำและวางไว้บนฮีปหรือสแต็กได้
คุณสามารถมั่นใจได้ว่าโปรแกรมของคุณ มีประสิทธิภาพมากขึ้นเล็กน้อย ดังนั้นคุณจึงไม่มีการกระจายตัวมากนัก
Fragmentation เป็นที่ที่คุณมีความทรงจำ ในที่ต่างๆ กัน และไม่ต่อเนื่องกันจึงอาจทำได้ยากขึ้น
ใช้เวลามากขึ้นเพื่อค้นหาความทรงจำนั้น
คุณสามารถลดการกระจัดกระจาย
เราสามารถทำงานเพื่อทำให้ โปรแกรมพกพาได้มากขึ้น
โดยทั่วไป โปรแกรม c ค่อนข้างพกพาได้
แต่มีเทคนิคมากกว่านั้น คุณสามารถใช้เพื่อให้แน่ใจว่าเมื่อคุณเขียนโปรแกรมของคุณหนึ่งครั้ง
โปรแกรมจะทำงาน บนระบบปฏิบัติการต่างๆ มากมาย และคุณไม่จำเป็นต้องเขียนมันใหม่
โดยพื้นฐานแล้วเราสามารถใช้ มาตรฐานโพซิกซ์บางอย่างที่มีอยู่ในค.
เราสามารถมั่นใจได้ว่าขึ้นอยู่กับ ในเวอร์ชันที่แตกต่างกันของมาตรฐาน
c ที่พวกเขา ทำงานในหลายมาตรฐานโดยใช้อนุสัญญาบางประการ
เรายังสามารถเขียนโปรแกรมที่ ติดต่อกับเคอร์เนลโดยตรง
จำไว้ว่าเคอร์เนลคือ สมองของระบบปฏิบัติการ
เคอร์เนลประกอบด้วยไดรเวอร์ทั้งหมด
มันมีทุกประเภทของการโทร เพื่อฟังก์ชั่นหน่วยความจำระดับล่าง
มันทำมากของ ข้อมูลที่แตกต่างกัน
ดังนั้นเคอร์เนลจึงมีความเฉพาะเจาะจง ฟังก์ชั่นที่คุณสามารถเชื่อมต่อกับมันในโปรแกรม
c ของคุณ
มันจะต่ำ สิ่งที่ฝังตัวระดับ
จะได้ใช้โทรได้ เช่นการควบคุม IO
เราสามารถสร้างไดรเวอร์ให้กับ พูดคุยกับฮาร์ดแวร์โดยตรง
มีมากขึ้นในคอมไพเลอร์ และแฟล็กต่าง ๆ ที่คุณสามารถส่งผ่านไปยังคอมไพเลอร์หรือ
ตัวเชื่อมโยงซึ่งทำให้โปรแกรมของคุณมีประสิทธิภาพมากขึ้นอีกครั้ง
เราไม่มีโอกาส พูดคุยเกี่ยวกับธงต่างๆ
มากมาย
เราพูดถึง dash เป็นหลัก กำแพงและอื่น ๆ ขั้นพื้นฐาน แต่ไม่มีอะไรขั้นสูงไปกว่านี้
เราพูดถึงดีบักเกอร์ และวิธีแก้จุดบกพร่องของแอปพลิเคชัน
ดีบักเกอร์ในบล็อคโค้ดคือ ผ่านส่วนต่อประสานกราฟิกกับผู้ใช้
แต่ข้อดีที่แท้จริงของตัวดีบั๊ก อยู่ภายใต้ประทุนที่ใช้ gdb
Gdb เป็นตัวดีบัก gnu
และเราพูดถึงเบรกพอยต์เท่านั้น และใช้งานผ่านส่วนต่อประสานกราฟิกกับผู้ใช้
แต่คุณสามารถ ทำได้มากขึ้นด้วย gdb
เราสามารถผ่านดีบักเกอร์ gdb จากคอนโซลออกคำสั่งต่าง
ๆ ทำมากขึ้นด้วย ไฟล์หลักทำความเข้าใจวิธีอ่านไฟล์หลักโดยใช้
gdb, a มีหัวข้อขั้นสูงที่ดีมากมาย
เครื่องมือทำโปรไฟล์และติดตาม
เราไม่ได้คุยกันสักหน่อย เครื่องมือวิเคราะห์สแตติก เครื่องมือบางอย่างที่สามารถวิเคราะห์โค้ดของคุณได้ก่อนคุณ
เรียกใช้โปรแกรมของคุณเพื่อดูว่ามีโค้ดที่ไม่ทำงานหรือมี
แนวปฏิบัติด้านการเขียนโปรแกรมที่ไม่ดี
แล้วก็เครื่องมือติดตามเช่นกัน s trace, d trace, g profile, ทั้งหมดนี้คือเครื่องมือสำคัญที่คุณทำได้
ใช้เพื่อดูเพื่อช่วยคุณแก้ปัญหาและช่วยคุณวัดประสิทธิภาพหรือ
คุณใช้หน่วยความจำเท่าใดหรือประสิทธิภาพของโปรแกรมของคุณ
มีหน่วยความจำเพิ่มเติมอื่น ๆ เครื่องมือดีบัก เช่น valgrind
สิ่งนี้ช่วยได้เมื่อคุณมีไลค์ สภาพการแข่งขันหรือคุณมีปัญหาหน่วยความจำเสียหาย
หลายครั้งที่คุณจัดการ หน่วยความจำของคุณและคุณมีบัฟเฟอร์ล้นหรือหน่วยความจำรั่ว
มันคือ ยากมากที่จะหาสิ่งเหล่านั้น
มีเครื่องมือที่สามารถ ช่วยคุณค้นหาสิ่งเหล่านั้นเช่น valgrind
จึงมีความแตกต่างกันมากมาย หัวข้อที่คุณสามารถสำรวจเพื่อเป็นผู้เชี่ยวชาญในค.
เราสัมผัสถึงพื้นฐาน
เราได้สัมผัสของจริง จริงๆ สิ่งสำคัญในการเริ่มต้น
แต่ด้วยการเพิ่มเติมเหล่านี้ หัวข้อ คุณสามารถเป็นผู้เชี่ยวชาญได้
ขอขอบคุณ.