คุณเคยต้องการให้โปรแกรม C รอสักครู่หรือไม่?
คุณสามารถตั้งค่าเทคนิคเพื่อให้เวลาผ่านไปได้ ตัวอย่างเช่น เมื่อแสดงหน้าสแปลช (คำบอกกล่าวหรือคำใบ้) สำหรับเกม
โอเค ต่อไปนี้เป็นวิธีทำให้โปรแกรม "หยุดนิ่ง" อ่านต่อ…
ขั้นตอน
ขั้นตอนที่ 1 ทำให้ CPU ของคุณทำงานได้ในบางครั้งโดยไม่ทำให้เกิดเหตุการณ์ที่สังเกตได้
ขั้นตอนที่ 2 อย่าดำเนินการอื่นใดในระหว่างการหน่วงเวลานั้น เพื่อสร้างการหน่วงเวลาอย่างง่าย
วิธีที่ 1 จาก 2: เทคนิค "for-loop"
ขั้นตอนที่ 1 ใช้ลูป "for" ทั่วไป ตามด้วยคำสั่ง null เพื่อใช้การหน่วงเวลา
ขั้นตอนที่ 2 เขียนดังนี้ ตัวอย่าง:
- สำหรับ (i=1; i<100; i++);
- คำสั่งตามด้วย ";" ทำให้คอมพิวเตอร์รันลูป 100 ครั้งโดยไม่มีเหตุการณ์ที่สังเกตได้ มันแค่สร้างการหน่วงเวลา
วิธีที่ 2 จาก 2: เทคนิค "sleep()"
ขั้นตอนที่ 1 ใช้ sleep() ฟังก์ชั่นที่เรียกว่า sleep(int ms) ถูกประกาศซึ่งทำให้โปรแกรมรอเวลาเป็นมิลลิวินาทีที่ระบุ
ขั้นตอนที่ 2 รวมบรรทัดต่อไปนี้ในโปรแกรมของคุณก่อน "int main()":
#รวม
ขั้นตอนที่ 3 แทรกทุกที่ที่คุณต้องการให้โปรแกรมของคุณล่าช้า:
- นอนหลับ(1000);
- เปลี่ยน "1000" เป็นจำนวนมิลลิวินาทีที่คุณต้องการรอ (เช่น หากคุณต้องการหน่วงเวลา 2 วินาที ให้แทนที่ด้วย "2000"
- เคล็ดลับ: ในบางระบบ ค่าอาจอ้างอิงเป็นวินาที แทนที่จะเป็นมิลลิวินาที ดังนั้นบางครั้ง 1,000 ก็ไม่ใช่หนึ่งวินาที แต่ที่จริงแล้ว 1,000 วินาที
เคล็ดลับ
- ตรรกะข้างต้นสามารถนำไปใช้ได้โดยใช้โครงสร้างการวนซ้ำใดๆ ตามด้วยคำสั่ง null-";" เช่น โดยใช้ลูป while หรือ do-while
- มิลลิวินาทีคือ 1/1000 วินาที
คำเตือน
- เทคนิคนี้โดยทั่วไปไม่มีประโยชน์ในสิ่งใดนอกจากโปรแกรมเล็กน้อย โดยทั่วไป ให้ใช้ตัวจับเวลาหรือวิธีการที่ขับเคลื่อนด้วยเหตุการณ์เพื่อดำเนินการนี้ มิฉะนั้น โปรแกรมจะไม่ตอบสนองในช่วงเวลาที่ล่าช้า และนั่นไม่ใช่สิ่งที่ดีเสมอไป นอกจากนี้ การเลือก N ในลูปของคุณ หากขึ้นอยู่กับการดำเนินการตามคำสั่ง อาจมีผลลัพธ์ที่น่าประหลาดใจ เห็นได้ชัดว่าผู้เขียนดั้งเดิมไม่เคยได้ยินเกี่ยวกับคอมไพเลอร์ที่ปรับให้เหมาะสม … มันอาจปรับให้ดีที่สุดออกไปทั้งวงถ้ามันไม่ทำอะไรเลยจริงๆ !
- หากคุณกำลังใช้ for-loop คอมไพเลอร์อาจปรับโค้ดให้เหมาะสม และเนื่องจากลูปไม่ทำอะไรเลย ให้ลบออก สิ่งนี้จะไม่เกิดขึ้นเมื่อใช้การหน่วงเวลา ()
- โปรดทราบว่าเมื่อใช้เทคนิค for-loop คุณอาจต้องการสแปนที่ใหญ่มากสำหรับ i เนื่องจากคำสั่งว่างจะถูกดำเนินการอย่างรวดเร็ว ตัวเลขขนาดใหญ่ดังกล่าวอาจไม่เหมาะกับประเภทจำนวนเต็ม