booktools.h
#ifndef __BOOKTOOLS_H
#define __BOOKTOOLS_H
#if __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <ctype.h>
unsigned long time_fn(long (*fn)(void), int nrSamples = 1);
//void time_on();
//unsigned long time_off();
void print_time(long msec);
void system_info();
//void alignment_info();
void DisplayASCIITable();
#if __cplusplus
}
#endif
#endif
booktools.cpp
#if __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include "BookTools.h"
#ifdef _MSC_VER
#include<ctime>
unsigned long time_fn(long (*fn)(void), int nrSamples)
{
unsigned long average = 0;
clock_t tBegin, tEnd;
for (int i = 0; i < nrSamples; i++)
{
tBegin = clock();
fn();
tEnd = clock();
average += tEnd - tBegin;
}
return ((unsigned long)average / nrSamples);
}
#else
#include<time.h>
unsigned long time_fn(long (*fn)(void), int nrSamples)
{
unsigned long average = 0;
clock_t tBegin, tEnd;
for (int i = 0; i < nrSamples; i++)
{
tBegin = clock();
fn();
tEnd = clock();
average += tEnd - tBegin;
}
return ((unsigned long)average / (nrSamples*1000));
}
#endif
void print_time(long msec)
{
int hour, min, sec;
hour = (int)(msec / (60*60*1000));
msec = msec % (60*60*1000);
min = (int)(msec / (60*1000));
msec = msec % (60*1000);
sec = (int)(msec / (1000));
msec = msec % (1000);
printf("%02dh %02dm %02ds %03dms/n", hour, min, sec, msec);
}
struct smallstr {char q;};
struct bit {unsigned q: 1;};
union un {char a;};
void system_info()
{
printf("Sizeof char : %d/n", sizeof(char));
printf("Sizeof short : %d/n", sizeof(short));
printf("Sizeof short int : %d/n", sizeof(short int));
printf("Sizeof long : %d/n", sizeof(long));
printf("Sizeof int : %d/n", sizeof(int));
printf("Sizeof float : %d/n", sizeof(float));
printf("Sizeof double : %d/n", sizeof(double));
printf("Sizeof long double : %d/n", sizeof(long double));
#ifdef _MSC_VER
printf("Sizeof int64 : %d/n", sizeof(__int64));
#else
printf("Sizeof long long : %d/n", sizeof(long long));
#endif
printf("Min sizeof struct : %d/n", sizeof(struct smallstr));
printf("Min sizeof bitfield: %d/n", sizeof(struct bit));
printf("Min sizeof union : %d/n", sizeof(un));
}