corrected
union long_to_float simar,simar_read; //unsigned long simar = 234;unsigned char return_val; unsigned long* read_data; //unsigned long p;simar.float_val = 2.34; read_data = &simar_read.long_val;
Actually all variable declarations has to be done before variable initialisation..