PDA

Visualizza la versione completa : [C++] Liberia time.h - Funzione clock()


Pacio88
10-02-2009, 12:52
In una applicazione che sto sviluppando devo tenere di conto del tempo che questa resta attiva pertanto mi sono andato a guardare la funzione clock() della libreria time.h
Tuttavia devo ammettere che non ho per niente capito come funziona visti sopratutto i risultati che ho avuto. Quello che ho capito è riassunto in questa semplice applicazione:

//main.cpp
#include <iostream>
#include <ctime>
using namespace std;

int main(){
clock_t time;
char stop;
cin >> stop;
time = clock(); //ritorna il numero di clock da quando è stata lanciata l'applicazione
cout << time/CLOCKS_PER_SEC << endl;
return 0;
}

Mi aspetto che la funzione clock() ritorni il numero di clock trascorsi dal lancio dell'applicazione e successivamente ne stampo il corrispettivo tempo in secondi.
La seguente applicazione tuttavia ha come output sempre il valore 0. Sicuramente però sto facendo un cattivo uso della funzione clock().

Grazie per le risposte.

KrOW
10-02-2009, 13:52
Ciao ... Strano perchè a me funge .... Sei sicuro che il codice compilato è quello scritto nel post ??? :master:

oregon
10-02-2009, 14:20
Anche per me funziona ... (naturalmente devi aspettare qualche secondo prima di fornire un input) ...


P.S. time.h NON e' una libreria ma un semplice include ...

XWolverineX
10-02-2009, 16:59
Originariamente inviato da oregon
P.S. time.h NON e' una libreria ma un semplice include ...

All'università ogni file .h è una libreria.
stdio.h ->libreria
stdlib.h -> libreria
mioincludeconunsolotypedef.h ->libreria

oregon
10-02-2009, 17:43
Originariamente inviato da XWolverineX
All'università ogni file .h è una libreria.

Povera università ...

KrOW
10-02-2009, 17:56
In quale università vai ???? :D
I file con estensione .h sono detti file header che in genere contengono dichiarazioni di costanti, di funzioni, di classi, di simboli ecc ..... Una libreria e' un file in formato .lib (ce ne sono anche altri) che contiene le implementazioni delle suddette funzioni, classi ecc e viene linkata al programma attraverso un altro programma chiamato linker ... Includendo un file header si dice al compilatore "guarda esiste tale funzione/classe/costante ecc" (le dichiarazioni) mentre linkando una libreria si rendono disponobili le definizioni (nota che il compilatore vuole solo l' header mentre il linker solo le librerie)... Se non ti è chiaro qualcosa fammi sapere ... Ciao

Pacio88
10-02-2009, 18:15
Grazie per le segnalazioni, aimè questa è l'ennesima discussione che apro per risolvere un problema scoprendo poi che il mio codice compilato su altre macchine fa alla perfezione il suo dovere..

La prossima volta che risuccede siete liberi di OFFENDERMI!! :D

Mi permetto di andare un po' OT..

Ammetto che sono all'università ma voglio precisare che la mia superficialità nel definire i file header librerie non è colpa dei miei studi... infatti il C++ l'ho imparato "ovunque" tranne che all'università (infatti ho sempre disertato il corso ed ho acquistato libri che non erano tra quelli consigliati).

Sul fatto che all'uni si insegni veramente poco a programmare lo ho sempre sostenuto, sopratutto dopo aver testato sulla mia pelle. L'esame di programmazione consiste nel realizzare programmi demenziali che un autodidatta è in grado di sviluppare in 3 settimane di studi. Pensate che sui 4 mesi a disposizione il primo è speso a insegnare le conversione da base 10 a 2 e a programmare in pseodo-linguaggio. Se poi ci tenete a vedere con i vostri occhi come sono fatti gli esami contattatemi per MP!!

Tuttavia in questa povera Italia senza il pezzo di carta si va poco lontani e così si va all'università a far finta di imparare.. :D

P.S. La cosa divertente che per far finta di imparare si devono passare ore ed ore davanti libri per sapere spesso cose che nella vita professionale mai ti saranno utili..

EDIT: Ti ringrazio KrOW per la spiegazione, ma nonostante abbia dimostrato l'opposto so che cos'è una libreria... oltretutto se proprio volessi avere delucidazioni in merito è sufficiente aprire anche il più ridicolo libro sul C++..

KrOW
10-02-2009, 20:28
Non credo proprio che non ti saranno utili nella vita professionale e scusa tanto se volevo farti capire cos'è una libreria (visto che dal post non sembrava che tu avessi le idee chiare)

MItaly
10-02-2009, 21:51
Originariamente inviato da XWolverineX
All'università ogni file .h è una libreria.

E i register regnano sovrani. :D

XWolverineX
10-02-2009, 23:12
Originariamente inviato da KrOW
In quale università vai ???? :D
I file con estensione .h sono detti file header che in genere contengono dichiarazioni di costanti, di funzioni, di classi, di simboli ecc ..... Una libreria e' un file in formato .lib (ce ne sono anche altri) che contiene le implementazioni delle suddette funzioni, classi ecc e viene linkata al programma attraverso un altro programma chiamato linker ... Includendo un file header si dice al compilatore "guarda esiste tale funzione/classe/costante ecc" (le dichiarazioni) mentre linkando una libreria si rendono disponobili le definizioni (nota che il compilatore vuole solo l' header mentre il linker solo le librerie)... Se non ti è chiaro qualcosa fammi sapere ... Ciao

Grazie, ma lo so già. Ho detto che VADO all'università, non che credo a quello che dicono.

Loading