Cara menunda eksekusi program di C

Pengarang: Joan Hall
Tanggal Pembuatan: 28 Februari 2021
Tanggal Pembaruan: 1 Juli 2024
Anonim
How To Delay Function Execution In GoDot Using C# - GoDot Tips And Tricks
Video: How To Delay Function Execution In GoDot Using C# - GoDot Tips And Tricks

Isi

Pernahkah Anda ingin membuat program C yang menunggu selama waktu tertentu? Anda dapat menyesuaikan cara untuk memberikan waktu "terbang", misalnya: saat menampilkan halaman pop-up (pemberitahuan atau petunjuk) untuk permainan. ... Oke, berikut ini beberapa cara membuat program "stand still", baca terus...

Langkah

  1. 1 Biarkan prosesor Anda berjalan untuk sementara waktu tanpa menyebabkan peristiwa yang dapat diamati.
  2. 2 Jangan melakukan operasi lain selama penundaan ini untuk membuat penundaan waktu yang sederhana.

Metode 1 dari 2: Teknik for-loop

  1. 1 Gunakan loop "untuk" yang khas diikuti dengan pernyataan kosong untuk mengimplementasikan penundaan.
  2. 2 Tulis sebagai berikut, misalnya:
    • untuk (i = 1; i100; i ++);
    • Operator mengikuti ";" memaksa komputer untuk mengulang 100 kali tanpa kejadian yang nyata. Itu hanya menciptakan penundaan waktu.

Metode 2 dari 2: Teknik "tidur ()"

  1. 1 Gunakan tidur (). Fungsi ini disebut sleep (int ms), dideklarasikan dalam TIME.H>, yang membuat program menunggu selama beberapa waktu tertentu dalam milidetik.
  2. 2 Sertakan baris berikut dalam program Anda sebelum int main():
    • #sertakan WAKTU.H>
  3. 3 Tempel jika perlu untuk membuat program Anda tertunda:
    • tidur (1000);
    • Ubah "1000" ke jumlah milidetik yang ingin Anda tunggu (misalnya, jika Anda ingin membuat penundaan 2 detik, ganti dengan "2000".
    • Tip: Pada beberapa sistem, nilai mungkin ditentukan dalam detik, bukan milidetik. Oleh karena itu, terkadang 1000 bukanlah 1 detik, tetapi sebenarnya 1000 detik.

Kode sampel

Program yang menunggu selama beberapa detik:



#include stdio.h> #include dos.h> int main() {int del; // Waktu tunda printf("Masukkan waktu tunda (dalam detik):"); scanf("% i",?del); del * = 1000; // Kalikan dengan 1000 untuk mengkonversi ke milidetik Delay (del); // Menunda. printf("Selesai."); kembali 0; }


Program yang menghitung mundur dari 10 ke 0:


#include STDIO.H> #include TIME.H> int main() {int i; for (i = 10; i> = 0; i--) {printf("% i n", i); // Tulis nomor 'hitung mundur' saat ini Delay (1000); // Tunggu sebentar} kembalikan 0; }

Tips

  • Satu milidetik adalah 1/1000 detik.
  • Algoritme di atas dapat diimplementasikan menggunakan struktur perulangan apa pun yang diikuti oleh operator null - "; seperti menggunakan perulangan while atau do-while.

Peringatan

  • Metode ini umumnya tidak berguna untuk apa pun selain program sepele. Secara umum, gunakan penghitung waktu atau pendekatan yang digerakkan oleh peristiwa untuk mencapai hal ini. Jika tidak, program akan menjadi tidak responsif selama waktu tunda dan ini tidak selalu merupakan hal yang baik. Juga, memilih N dalam satu lingkaran, jika itu tergantung pada eksekusi perintah, dapat memiliki hasil yang tidak terduga. Rupanya penulis asli belum pernah mendengar tentang kompiler yang mengoptimalkan ... itu dapat mengoptimalkan seluruh loop jika tidak benar-benar melakukan apa pun!
  • Perhatikan bahwa ketika menggunakan metode "for-loop", mungkin diperlukan interval yang sangat besar untuk i, karena pernyataan kosong sangat cepat. Angka besar seperti itu mungkin tidak cocok dengan tipe integer.
  • Jika Anda menggunakan for-loop, kompiler dapat mengoptimalkan kode, dan karena loop tidak melakukan apa-apa, hapus kode tersebut. Ini tidak terjadi saat menggunakan Delay().