Como atrasar em C: 7 etapas (com fotos)

Índice:

Como atrasar em C: 7 etapas (com fotos)
Como atrasar em C: 7 etapas (com fotos)

Vídeo: Como atrasar em C: 7 etapas (com fotos)

Vídeo: Como atrasar em C: 7 etapas (com fotos)
Vídeo: Chromebook - Tutorial 1 - selecionar, colar, copiar, desfazer 2024, Maio
Anonim

Você já quis fazer um programa C esperar um certo tempo?

Você pode configurar uma técnica para permitir que o tempo passe, por exemplo: ao mostrar uma página inicial (um aviso ou dica) para um jogo.

Ok, aqui estão algumas maneiras de fazer o programa "ficar parado", continue lendo …

Passos

Atraso em C Etapa 1
Atraso em C Etapa 1

Etapa 1. Faça sua CPU funcionar por algum tempo sem produzir nenhum evento perceptível

Atraso em C Etapa 2
Atraso em C Etapa 2

Etapa 2. Não faça nenhuma outra operação durante esse atraso, a fim de criar um atraso de tempo simples

Método 1 de 2: a técnica "for-loop"

Atraso em C Etapa 3
Atraso em C Etapa 3

Etapa 1. Use um típico loop "for" seguido por uma instrução nula para implementar o atraso de tempo

Atraso em C Etapa 4
Atraso em C Etapa 4

Etapa 2. Escreva o seguinte, para obter um exemplo:

  • para (i = 1; i <100; i ++);
  • A declaração seguida de ";" faz com que o computador execute o loop 100 vezes sem nenhum evento perceptível. Isso apenas cria um atraso de tempo.

Método 2 de 2: a técnica de "dormir ()"

Atraso em C Etapa 5
Atraso em C Etapa 5

Passo 1. Use sleep () A função chamada sleep (int ms) declarada na qual faz o programa esperar o tempo em milissegundos especificado

Atraso em C Etapa 6
Atraso em C Etapa 6

Etapa 2. Inclua a seguinte linha em seu programa antes de "int main ()":

#incluir

Atraso em C Etapa 7
Atraso em C Etapa 7

Etapa 3. Insira, onde quer que você precise que seu programa faça um atraso:

  • sono (1000);
  • Altere "1000" para o número de milissegundos que deseja esperar (por exemplo, se quiser fazer um atraso de 2 segundos, substitua-o por "2000".
  • Dica: Em alguns sistemas, o valor pode se referir a segundos, em vez de milissegundos. Portanto, às vezes 1000 não é um segundo, mas, na verdade, 1000 segundos.

Pontas

  • A lógica acima pode ser implementada usando qualquer estrutura de loop seguida por uma instrução nula- ";", como usando os loops while ou do-while.
  • Um milissegundo é 1/1000 de um segundo.

Avisos

  • Essa técnica geralmente é inútil em qualquer coisa além de um programa trivial. Em geral, use cronômetros ou uma abordagem orientada a eventos para implementar isso. Caso contrário, o programa deixará de responder durante o tempo de atraso, o que nem sempre é bom. Além disso, escolher N em seu loop, se depender da execução da instrução, pode ter resultados surpreendentes. Aparentemente, o autor original nunca ouviu falar de um compilador de otimização … ele pode otimizar todo o loop se realmente não fizer nada!
  • Se você estiver usando o loop for, o compilador pode otimizar o código e, como o loop não faz nada, removê-lo. Isso não acontece ao usar delay ().
  • Observe que, ao usar a técnica for-loop, pode ser necessário um intervalo muito grande para i, porque uma instrução vazia é executada muito rápido. Esses números grandes podem não caber em um tipo inteiro.

Recomendado: