Θέλατε ποτέ να κάνετε ένα πρόγραμμα C να περιμένει για συγκεκριμένο χρόνο;
Μπορείτε να ορίσετε μια τεχνική που θα επιτρέπει να περνάει ο χρόνος, για παράδειγμα: όταν εμφανίζετε μια σελίδα παφλασμών (ειδοποίηση ή υπόδειξη) για ένα παιχνίδι.
Εντάξει, εδώ είναι μερικοί τρόποι για να κάνετε το πρόγραμμα να "σταματήσει", διαβάστε παρακάτω…
Βήματα
Βήμα 1. Βάλτε τη CPU να λειτουργήσει για κάποιο χρονικό διάστημα χωρίς να δημιουργήσετε κάποιο αξιοσημείωτο συμβάν
Βήμα 2. Μην κάνετε καμία άλλη λειτουργία κατά τη διάρκεια αυτής της καθυστέρησης, προκειμένου να δημιουργήσετε μια απλή χρονική καθυστέρηση
Μέθοδος 1 από 2: Η τεχνική "for-loop"
Βήμα 1. Χρησιμοποιήστε έναν τυπικό βρόχο "for" ακολουθούμενο από μια μηδενική πρόταση για την υλοποίηση χρονικής καθυστέρησης
Βήμα 2. Γράψτε ως εξής, για παράδειγμα:
- για (i = 1; i <100; i ++);
- Η δήλωση ακολουθείται από το ";" κάνει τον υπολογιστή να εκτελέσει το βρόχο 100 φορές χωρίς κανένα αξιοσημείωτο συμβάν. Δημιουργεί απλώς μια χρονική καθυστέρηση.
Μέθοδος 2 από 2: Η τεχνική "ύπνου ()"
Βήμα 1. Χρήση ύπνου () Η συνάρτηση που ονομάζεται sleep (int ms) που δηλώνεται στην οποία κάνει το πρόγραμμα να περιμένει το χρόνο σε καθορισμένα χιλιοστά του δευτερολέπτου
Βήμα 2. Συμπεριλάβετε την ακόλουθη γραμμή στο πρόγραμμά σας πριν από το "int main ()":
#περιλαμβάνω
Βήμα 3. Εισαγάγετε, όπου χρειάζεστε το πρόγραμμά σας για καθυστέρηση:
- ύπνος (1000)?
- Αλλάξτε το "1000" στον αριθμό των χιλιοστών του δευτερολέπτου που θέλετε να περιμένετε (για παράδειγμα, εάν θέλετε να κάνετε καθυστέρηση 2 δευτερολέπτων, αντικαταστήστε το με "2000".
- Συμβουλή: Σε ορισμένα συστήματα η τιμή μπορεί να αναφέρεται σε δευτερόλεπτα, αντί για χιλιοστά του δευτερολέπτου. Έτσι μερικές φορές το 1000 δεν είναι ένα δευτερόλεπτο, αλλά, στην πραγματικότητα, 1000 δευτερόλεπτα.
Συμβουλές
- Η παραπάνω λογική μπορεί να εφαρμοστεί χρησιμοποιώντας οποιαδήποτε δομή βρόχου ακολουθούμενη από μια μηδενική πρόταση- ";", όπως χρησιμοποιώντας βρόχους while ή do-while.
- Ένα χιλιοστό του δευτερολέπτου είναι 1/1000 του δευτερολέπτου.
Προειδοποιήσεις
- Αυτή η τεχνική είναι γενικά άχρηστη σε οτιδήποτε εκτός από ένα ασήμαντο πρόγραμμα. Σε γενικές γραμμές, χρησιμοποιήστε χρονοδιακόπτες ή μια προσέγγιση βάσει γεγονότων για να το εφαρμόσετε. Διαφορετικά, το πρόγραμμα δεν θα ανταποκρίνεται κατά τη διάρκεια του χρόνου καθυστέρησης και αυτό δεν είναι πάντα καλό. Εκτός αυτού, η επιλογή N στο βρόχο σας, εάν εξαρτάται από την εκτέλεση της εντολής, μπορεί να έχει εκπληκτικά αποτελέσματα. Προφανώς ο αρχικός συγγραφέας δεν έχει ακούσει ποτέ για έναν βελτιστοποιητή μεταγλωττιστή… μπορεί να βελτιστοποιήσει ολόκληρο τον βρόχο εάν δεν κάνει τίποτα!
- Εάν χρησιμοποιείτε τον βρόχο for, ο μεταγλωττιστής μπορεί να βελτιστοποιήσει τον κώδικα και, επειδή ο βρόχος δεν κάνει τίποτα, αφαιρέστε τον. Αυτό δεν συμβαίνει όταν χρησιμοποιείτε καθυστέρηση ().
- Σημειώστε ότι όταν χρησιμοποιείτε την τεχνική for-loop, μπορεί να χρειαστείτε ένα πολύ μεγάλο εύρος για i, επειδή μια κενή πρόταση εκτελείται πολύ γρήγορα. Τέτοιοι μεγάλοι αριθμοί μπορεί να μην χωρούν σε έναν ακέραιο τύπο.