#include <stdio.h>
#include <time.h>

struct pixel { 
	char r; 
	char g; 
	char b; 
	char a;     
};    

struct pixel buffer[480][640];     


void first() {
	register int i, j; 
	for (i=0; i < 480; i++){ 
		for (j=0; j < 640; j++) { 
			buffer[i][j].r = 0; 
			buffer[i][j].g = 0; 
			buffer[i][j].b = 0; 
			buffer[i][j].a = 0; 
		}

	}  
}

void second() {
	register char *cptr;
	cptr = (char *) buffer; 
	
	for (; cptr < (((char *) buffer) + 640 * 480 * 4); cptr++) 
		*cptr = 0; 
	}
	
void third() {
	register int *iptr;
	iptr = (int *) buffer; 
	
	for (; iptr < (((int *) buffer) + 640 * 480); iptr++) 
		*iptr = 0; 
	
}


int main() {

	int t;
	clock_t c0 = clock();
	
	printf("Mesure 1\n");
	
	for (t = 0; t < 10000; t++)
		first();
	
	clock_t c1 = clock();
	printf("Temps total: %f\n",(c1 - c0) * 1000. / CLOCKS_PER_SEC);

	c0 = clock();
	printf("Mesure 2\n");
	
	for (t = 0; t < 10000; t++)
		second();
		
	c1 = clock();
	printf("Temps total: %f\n",(c1 - c0) * 1000. / CLOCKS_PER_SEC);
	c0 = clock();
	
	printf("Mesure 3\n");
	for (t = 0; t < 10000; t++)
		third();

	c1 = clock();
	printf("Temps total: %f\n",(c1 - c0) * 1000. / CLOCKS_PER_SEC);
	
	return 0;
	
}
