ok,

e questa parte:

#else
#include <sys/time.h>

static struct timeval _tstart, _tend;
static struct timezone tz;

void tstart(void)
{
gettimeofday(&_tstart, &tz);
}

void tend(void)
{
gettimeofday(&_tend,&tz);
}

double tval()
{
typedef signed long s;
s t1, t2;
t1 = (s)_tstart.tv_sec + (s)_tstart.tv_usec/(1000*1000);
t2 = (s)_tend.tv_sec + (s)_tend.tv_usec/(1000*1000);
return t2-t1;
}
#endif


è la parte opzionale che viene implementata se il sistema operativo non è windows vero?
e quindi sys/time.h dovrebbe essere una libreria di linux, giusto?
ma se fosse così perchè per windows, tstart e tend sono
LARGE_INTEGER cioè longlong (64 bit) mentre per linux sono unsigned long 32 bit?