ผู้เขียน:
Joan Hall
วันที่สร้าง:
28 กุมภาพันธ์ 2021
วันที่อัปเดต:
28 มิถุนายน 2024
![เนื้อหาการเรียน ระบบควบคุมอิเล็กทรอนิกส์ Electronic Control System ตอนที่ 3](https://i.ytimg.com/vi/HOgd3F3Z9ro/hqdefault.jpg)
เนื้อหา
- ขั้นตอน
- วิธีที่ 1 จาก 2: เทคนิค For-loop
- วิธีที่ 2 จาก 2: เทคนิค "sleep ()"
- โค้ดตัวอย่าง
- เคล็ดลับ
- คำเตือน
คุณเคยต้องการสร้างโปรแกรม C ที่รอเป็นระยะเวลาหนึ่งหรือไม่? คุณสามารถปรับแต่งวิธีการให้เวลา "ผ่านไป" ได้ ตัวอย่างเช่น เมื่อแสดงหน้าป๊อปอัป (การแจ้งเตือนหรือคำใบ้) สำหรับเกม ... ตกลง ต่อไปนี้เป็นวิธีสร้างโปรแกรม "หยุดนิ่ง" อ่านต่อ ...
ขั้นตอน
1 ปล่อยให้โปรเซสเซอร์ของคุณทำงานชั่วขณะหนึ่งโดยไม่ทำให้เกิดเหตุการณ์ที่สังเกตได้
2 อย่าดำเนินการอื่นใดในระหว่างการหน่วงเวลานี้เพื่อสร้างการหน่วงเวลาอย่างง่าย
วิธีที่ 1 จาก 2: เทคนิค For-loop
1 ใช้ลูป "for" ทั่วไปตามด้วยคำสั่งว่างเพื่อใช้การหน่วงเวลา
2 เขียนดังนี้ เช่น
- สำหรับ (i = 1; i100; i ++);
- โอเปอเรเตอร์ที่ตามหลัง ";" บังคับให้คอมพิวเตอร์วนซ้ำ 100 ครั้งโดยไม่มีเหตุการณ์ที่สังเกตได้ มันสร้างการหน่วงเวลาเท่านั้น
วิธีที่ 2 จาก 2: เทคนิค "sleep ()"
1 ใช้โหมดสลีป () ฟังก์ชันนี้เรียกว่า sleep (int ms) ซึ่งประกาศใน TIME.H> ซึ่งทำให้โปรแกรมรอตามระยะเวลาที่กำหนดในหน่วยมิลลิวินาที
2 รวมบรรทัดต่อไปนี้ในโปรแกรมของคุณก่อน int main ():
- #รวม TIME.H>
3 วางที่จำเป็นเพื่อให้โปรแกรมของคุณล่าช้า:
- นอนหลับ (1,000);
- เปลี่ยน "1000" เป็นจำนวนมิลลิวินาทีที่คุณต้องการรอ (เช่น หากคุณต้องการหน่วงเวลา 2 วินาที ให้แทนที่ด้วย "2000"
- เคล็ดลับ: ในบางระบบ ค่าอาจระบุเป็นวินาทีแทนที่จะเป็นมิลลิวินาที ดังนั้น บางครั้ง 1,000 ไม่ใช่ 1 วินาที แต่จริงๆ แล้ว 1,000 วินาที
โค้ดตัวอย่าง
โปรแกรมที่รอเป็นจำนวนวินาทีที่กำหนด:
#include stdio.h> #include dos.h> int main () {int del; // ช่วงเวลาหน่วง printf ("ป้อนเวลาหน่วง (เป็นวินาที):"); scanf ("% ฉัน",? del); เดล * = 1,000; // คูณด้วย 1,000 เพื่อแปลงเป็นมิลลิวินาที Delay (del); // ล่าช้า. printf ("เสร็จสิ้น"); กลับ 0; }
โปรแกรมที่นับถอยหลังจาก 10 ถึง 0:
#include STDIO.H> #include TIME.H> int main () {int i; สำหรับ (i = 10; i> = 0; i--) {printf ("% i n", i); // เขียนหมายเลข 'นับถอยหลัง' ปัจจุบันล่าช้า (1,000); // รอสักครู่} คืนค่า 0; }
เคล็ดลับ
- มิลลิวินาทีคือ 1/1000 วินาที
- อัลกอริธึมข้างต้นสามารถนำไปใช้ได้โดยใช้โครงสร้างการวนซ้ำใดๆ ตามด้วยตัวดำเนินการ null - "; เช่น การใช้ลูป while หรือ do-while
คำเตือน
- วิธีนี้โดยทั่วไปไม่มีประโยชน์สำหรับสิ่งอื่นนอกเหนือจากโปรแกรมเล็กน้อย โดยทั่วไป ให้ใช้ตัวจับเวลาหรือวิธีการที่ขับเคลื่อนด้วยเหตุการณ์เพื่อทำสิ่งนี้ให้สำเร็จ มิฉะนั้น โปรแกรมจะไม่ตอบสนองในช่วงเวลาที่ล่าช้า และนี่ไม่ใช่สิ่งที่ดีเสมอไป นอกจากนี้ การเลือก N ในลูป หากขึ้นอยู่กับการดำเนินการของคำสั่ง อาจมีผลลัพธ์ที่ไม่คาดคิด เห็นได้ชัดว่าผู้เขียนดั้งเดิมไม่เคยได้ยินเกี่ยวกับคอมไพเลอร์ที่เพิ่มประสิทธิภาพ ... มันสามารถเพิ่มประสิทธิภาพลูปทั้งหมดได้หากไม่ได้ทำอะไรเลย!
- โปรดทราบว่าเมื่อใช้เมธอด "for-loop" อาจใช้เวลามากสำหรับ i เนื่องจากคำสั่งว่างจะเร็วมาก ตัวเลขจำนวนมากดังกล่าวอาจไม่เหมาะกับประเภทจำนวนเต็ม
- หากคุณใช้ for-loop คอมไพเลอร์สามารถเพิ่มประสิทธิภาพโค้ดได้ และเนื่องจากลูปไม่ทำอะไรเลย ให้ลบออก สิ่งนี้จะไม่เกิดขึ้นเมื่อใช้การหน่วงเวลา ()