พรีโปรเซสเซอร์คืออะไร?

โดยทั่วไป เมื่อมีคนพูดถึงโปรเซสเซอร์ในการประมวลผล พวกเขาหมายถึงชิปซิลิกอนบางประเภทที่ทำการคำนวณ P ใน CPU, GPU, APU, NPU และลอจิกชิปในรูปแบบอื่นๆ ย่อมาจาก “Processing” ซึ่งก็คือ Central Processing Unit แต่ละตัวเป็นโปรเซสเซอร์ประเภทเฉพาะซึ่งปรับให้เหมาะกับฟังก์ชันเฉพาะ อย่างไรก็ตาม ตัวประมวลผลล่วงหน้าไม่มีส่วนเกี่ยวข้องกับตัวประมวลผลทางกายภาพ เช่น CPU หรือ GPU แต่เป็นคำศัพท์เกี่ยวกับการเขียนโปรแกรมโดยเฉพาะที่เกี่ยวข้องกับภาษาที่คอมไพล์

คอมไพเลอร์คืออะไร?

คอมไพเลอร์คือชิ้นส่วนของซอฟต์แวร์ที่รวบรวมภาษาโปรแกรมเฉพาะลงในรหัสเครื่อง ภาษาโปรแกรมทั้งหมดจำเป็นต้องแปลงเป็นรหัสเครื่อง เนื่องจากคำสั่งที่มนุษย์อ่านได้ซึ่งประกอบกันเป็นภาษาโปรแกรมที่ใช้งานได้นั้นไม่สามารถเรียกใช้งานได้โดยตรงจากคอมพิวเตอร์ บางส่วนได้รับการออกแบบให้ตีความได้ทันทีเมื่อรหัสถูกเรียกใช้ วิธีการนี้มีความยืดหยุ่นมากทำให้ง่ายต่อการเปลี่ยนแปลงเล็กน้อย อย่างไรก็ตาม ภาษาโปรแกรมอื่นๆ จำนวนมากต้องมีการคอมไพล์เพื่อให้สามารถดำเนินการได้ ในโปรแกรมขนาดเล็ก ไม่จำเป็นต้องใช้เวลานาน ด้วยโปรแกรมขนาดใหญ่ การคอมไพล์อาจใช้เวลาเป็นนาทีหรือเป็นชั่วโมง

เหตุใดคุณจึงต้องการใช้ภาษาที่ต้องรวบรวม การทำวิศวกรรมย้อนกลับนั้นยากกว่า ภาษาการเขียนโปรแกรมแบบตีความมักจะมีการแจกจ่ายโค้ดตามที่เป็นอยู่ ทำให้ง่ายต่อการ "ขโมย" สำหรับบริษัทที่ต้องการปกป้องทรัพย์สินทางปัญญา การคอมไพล์แทรกขั้นตอนที่ซับซ้อนและไม่น่าเชื่อถือของการทำวิศวกรรมย้อนกลับเพื่อดูรหัสจริง ซอฟต์แวร์คอมไพล์ยังมีแนวโน้มที่จะมีขนาดเล็กลง เนื่องจากได้รับการปรับให้เหมาะสมสำหรับการดำเนินการ นี่ไม่ใช่ปัญหาจริงๆ กับสคริปต์ขนาดเล็ก แต่เมื่อต้องจัดการกับซอฟต์แวร์ขนาดใหญ่ ขนาดหลายร้อยเมกะไบต์ หรือแม้แต่กิกะไบต์ อาจมีผลกระทบที่เห็นได้ชัดเจน

แล้วตัวประมวลผลล่วงหน้าทำหน้าที่อะไร?

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

ตัวอย่างเช่น ใน C เป็นแนวปฏิบัติมาตรฐานในการใช้ไลบรารีมาตรฐานจำนวนหนึ่ง ไลบรารีเหล่านี้กำหนดชุดของฟังก์ชันที่มีฟังก์ชันมาตรฐาน ในการนำเข้าไลบรารีเหล่านี้ จะใช้คีย์เวิร์ด “#include” ตามด้วยชื่อไลบรารี ตัวประมวลผลล่วงหน้าจะค้นหาผ่านรหัสสำหรับคำสั่งเช่น “#include” และแทนที่ ในกรณีของ “#include” ตัวประมวลผลล่วงหน้าจะแทรกเนื้อหาทั้งหมดของไลบรารีที่ระบุ

สิ่งนี้ทำให้คุณสามารถเก็บโค้ดที่เขียนจริงให้อ่านได้ง่ายในขณะเดียวกันก็ใช้เครื่องมือที่ทรงพลังและมีอยู่แล้วมากมาย ช่วยให้คุณไม่ต้องคิดค้นวงล้อใหม่สำหรับทุกแอปพลิเคชันหรือต้องวางไลบรารีบางส่วนหรือทั้งหมดลงในโค้ดเบส

การใช้งานตัวประมวลผลล่วงหน้าที่เป็นไปได้อีกประการหนึ่งคือการตัดหรือเพิ่มฟังก์ชันบางอย่างขึ้นอยู่กับเจตนาของบิลด์ ตัวอย่างเช่น หากคุณต้องการทดสอบบิลด์ใหม่ การใส่ขั้นตอนการดีบั๊กหลายขั้นตอนจะมีประโยชน์มาก สิ่งเหล่านี้ไม่เพียงไม่จำเป็นในการสร้างรุ่นเท่านั้น แต่ยังทำให้ซอฟต์แวร์ที่คอมไพล์มีขนาดใหญ่ขึ้น ตัวประมวลผลล่วงหน้าสามารถตรวจสอบอาร์กิวเมนต์ของคอมไพเลอร์และกำหนดว่าจำเป็นต้องรวมหรือละเว้นการทำงานบางอย่างหรือไม่ ในทำนองเดียวกัน ตัวประมวลผลล่วงหน้ามักจะตัดความคิดเห็นออกก่อนคอมไพเลอร์ เนื่องจากสิ่งเหล่านี้ไม่ควรรวมอยู่ในบิลด์

บทสรุป

ตัวประมวลผลล่วงหน้าเป็นเครื่องมือที่เรียกใช้โดยคอมไพเลอร์เพื่อจัดการโค้ดก่อนที่จะถูกคอมไพล์จริง แม้ว่าพรีโปรเซสเซอร์สามารถเรียกแยกกันได้ แต่โดยทั่วไปจะเรียกว่าเป็นส่วนหนึ่งของกระบวนการคอมไพล์ ตัวประมวลผลล่วงหน้าจะค้นหาสตริงที่กำหนดไว้และแทนที่ด้วยเนื้อหามาตรฐาน สำหรับความคิดเห็น ไม่มีการแทนที่ แต่สำหรับคำสั่งที่มีไลบรารีภายนอก ตัวประมวลผลล่วงหน้าจะแทนที่คำสั่งด้วยเนื้อหาของไลบรารีจริง ตัวประมวลผลล่วงหน้ายังสามารถใช้อาร์กิวเมนต์เวลาคอมไพล์เพื่อเกตการทำงานบางอย่าง มักใช้เพื่อรวมหรือไม่รวมฟังก์ชันการแก้ไขจุดบกพร่องจากรุ่นทดสอบหรือรุ่นที่วางจำหน่าย



Leave a Comment

วิธีการโคลนฮาร์ดไดรฟ์

วิธีการโคลนฮาร์ดไดรฟ์

ในยุคดิจิทัลสมัยใหม่ ที่ข้อมูลเป็นทรัพย์สินที่มีค่า การโคลนฮาร์ดไดรฟ์บน Windows อาจเป็นกระบวนการที่สำคัญสำหรับหลายๆ คน คู่มือที่ครอบคลุมนี้

วิธีแก้ไขไดรเวอร์ WUDFRd ไม่สามารถโหลดบน Windows 10 ได้

วิธีแก้ไขไดรเวอร์ WUDFRd ไม่สามารถโหลดบน Windows 10 ได้

คุณกำลังเผชิญกับข้อความแสดงข้อผิดพลาดขณะบูตเครื่องคอมพิวเตอร์ซึ่งระบุว่าไดรเวอร์ WUDFRd ไม่สามารถโหลดบนคอมพิวเตอร์ของคุณได้ใช่หรือไม่?

วิธีแก้ไขรหัสข้อผิดพลาด NVIDIA GeForce Experience 0x0003

วิธีแก้ไขรหัสข้อผิดพลาด NVIDIA GeForce Experience 0x0003

คุณพบประสบการณ์รหัสข้อผิดพลาด NVIDIA GeForce 0x0003 บนเดสก์ท็อปของคุณหรือไม่? หากใช่ โปรดอ่านบล็อกเพื่อดูวิธีแก้ไขข้อผิดพลาดนี้อย่างรวดเร็วและง่ายดาย

Roomba Stops, Sticks and Turns Around – Fix

Roomba Stops, Sticks and Turns Around – Fix

Fix a problem where your Roomba robot vacuum stops, sticks, and keeps turning around.

วิธีลบ GPU ออกจากพีซีที่ใช้ Windows ในปี 2023

วิธีลบ GPU ออกจากพีซีที่ใช้ Windows ในปี 2023

คุณจำเป็นต้องลบ GPU ออกจากพีซีของคุณหรือไม่? เข้าร่วมกับฉันในขณะที่ฉันอธิบายวิธีลบ GPU ออกจากพีซีของคุณในคำแนะนำทีละขั้นตอนนี้

วิธีการติดตั้ง NVMe SSD ในเดสก์ท็อปและแล็ปท็อป

วิธีการติดตั้ง NVMe SSD ในเดสก์ท็อปและแล็ปท็อป

ซื้อ NVMe M.2 SSD ใหม่ แต่ไม่รู้ว่าจะติดตั้งอย่างไร? อ่านเพื่อเรียนรู้วิธีติดตั้ง NVMe SSD บนแล็ปท็อปหรือเดสก์ท็อป

Logic Bomb คืออะไร?

Logic Bomb คืออะไร?

ลอจิกบอมบ์คือเหตุการณ์ด้านความปลอดภัยที่ผู้โจมตีดำเนินการล่าช้า อ่านต่อเพื่อหาข้อมูลเพิ่มเติม

SoC คืออะไร?

SoC คืออะไร?

หากคุณเคยดูภายในพีซีทาวเวอร์ คุณจะเห็นว่ามีส่วนประกอบต่างๆ มากมาย แล็ปท็อปทั่วไปของคุณมีส่วนประกอบที่เหมือนกันเป็นส่วนใหญ่

การเข้ารหัสแบบอสมมาตรคืออะไร?

การเข้ารหัสแบบอสมมาตรคืออะไร?

อัลกอริธึมการเข้ารหัสแบบอสมมาตรใช้สองคีย์ที่แตกต่างกัน คีย์หนึ่งใช้สำหรับเข้ารหัสและอีกคีย์หนึ่งสำหรับถอดรหัส

Steam Deck: วิธีฟอร์แมตการ์ด SD

Steam Deck: วิธีฟอร์แมตการ์ด SD

Steam Deck มีตัวเลือกพื้นที่เก็บข้อมูลสามแบบ: 64GB eMMC, 256GB NVMe SSD และ 512GB NVMe SSD ขึ้นอยู่กับคลังเกมของคุณและขนาดของเกม