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

int main(void) { 
    unsigned int a1 = 0xf3040506;
    unsigned int *a = ( unsigned int *)&a1;
    unsigned char *m  = (unsigned char* )&a1;
    unsigned long forcount = 5000000000  ,i;
    unsigned char r , g , b , al;
    
    
	printf("%x\n", *a);

	
	printf("r i %x\n", m[0]);
	printf("g i %x\n", m[1]);
	printf("b i %x\n", m[2]);
	printf("a i %x\n", m[3]);
	
	
	
	printf("r p %x\n", (unsigned char) *a );
	printf("g p %x\n", (unsigned char) (*a >> 8));
	printf("b p %x\n", (unsigned char) (*a >> 16) );
	printf("a p %x\n", (unsigned char) (*a >> 24) );
  
	
    clock_t t;
	
    t = clock();

    for(i = 0;i < forcount ;i++)   
    {   
	  r =  m[0];
	  g =  m[1];
	  b =  m[2];
	  al = m[3];
    }   
    t = clock() - t ;
  
    printf ("pointer take (%f seconds).\n",((float)t)/CLOCKS_PER_SEC);
    
    
    t = clock();

    for(i = 0;i < forcount ;i++)   
    {   
	  r = (unsigned char) *a;
	  g = (unsigned char) (*a >> 8);
	  b = (unsigned char) (*a >> 16);
	  al = (unsigned char) (*a >> 24);
    }   
    t = clock() - t ;
  
    printf ("shift take (%f seconds).\n",((float)t)/CLOCKS_PER_SEC);

    return 0;
}