Ir ao conteúdo
  • Cadastre-se

Função Em C Ou C++


Lord of Terror

Posts recomendados

tipo, deu um monte de erros :o

vou colar eles aí:

C:\Windows\Desktop\Testes\teste.cpp(7) : error C2079: 't' uses undefined struct 'time'

C:\Windows\Desktop\Testes\teste.cpp(8) : error C2065: 'gettime' : undeclared identifier

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hour' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_min' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_sec' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hund' must have class/struct/union type

Error executing cl.exe.

teste.obj - 6 error(s), 0 warning(s)

eu apenas colei o codigo font e compilei, nem vi direito o q ta escrito, vou tenta da umas mexidas pra ver no q da ;)

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por Lord of Terror@14 mar 2004, 20:16

tipo, deu um monte de erros  :o

vou colar eles aí:

C:\Windows\Desktop\Testes\teste.cpp(7) : error C2079: 't' uses undefined struct 'time'

C:\Windows\Desktop\Testes\teste.cpp(8) : error C2065: 'gettime' : undeclared identifier

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hour' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_min' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_sec' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hund' must have class/struct/union type

Error executing cl.exe.

teste.obj - 6 error(s), 0 warning(s)

eu apenas colei o codigo font e compilei, nem vi direito o q ta escrito, vou tenta da umas mexidas pra ver no q da  ;)

qual o compilador que você tá usando?...e o SO?

Link para o comentário
Compartilhar em outros sites

to usando Visual C++ Win98/SE

vou explicar melhor como vai ser aplicado a função:

Preciso calcular quanto tempo leva um processamento de alguma coisa, então fiz assim:

antes=time(0);

@@@o que seria processado viria aqui.@@@

depois=time(0);

tempo=depois-antes;

isso funciona bem, o único problema é que como o processamento é muito rápido, não chega a levar 1 segundo, então: 0 segundos - 0 segundos = 0 segundos.

Preciso de algo mais preciso que Segundos.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Use as funções QueryPerformanceFrequency e QueryPerformanceCounter.

Com a primeira você irá obter a frequência do timer (algo como 1.1MHz, o que dá menos de 1 microsegundo) e com a segunda você irá obter o número de "ticks".

Ficaria algo assim:

{

__int64 freq,start,stop;

double tempo;

QueryPerformanceFrequency((LARGE_INTEGER *)&freq);

QueryPerformanceCounter((LARGE_INTEGER *)&start);

Código a ser medido

QueryPerformanceCounter((LARGE_INTEGER *)&stop);

tempo = ((double)stop-(double)start) / (double)freq;

}

Deveria funcionar direto no você++

Edit: Ah, você disse que vai usar no DOS. O que você chama de "DOS"? Se for uma janela do prompt de comando do Windows pode usar a função que falei, mas se for bootando com um disquete do velho DOS, não vai funcionar. Neste caso procure usar a função clock().

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por Lord of Terror@15 mar 2004, 14:29

O sledgehammer valeu aí pela dica.. bom.. eu testei la mas ta falando que não ta identificando "QueryPerformanceFrequency" , "QueryPerformanceCounter"

tem alguma biblioteca q preciso usar?

Se você tem disponível a ajuda do Visual C, entrar no índice lá e procurar por QueryPerformanceCounter, vai ver que ele indica o .h que deve ser incluído. (não lembro de cor)

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por Lord of Terror@15 mar 2004, 18:04

po! funcionou sledge!!  :D

so que o valor q ele me retorna é em q? milisegundos mesmo? clocks por segundo?

Acho que é em milisegundos mesmo.

Pra testar faça a medição de um comando Sleep(1000). Se retornar 1000 é porque é em ms. Se retornar 1 é porque é em segundos.

Ele retorna em ticks. Quando você divide pela frequência em ticks por ms ou segundo (não sei), ele te retorna o tempo.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...