имеется буфер char buf[20] ; он заполняется разными типами переменных (но одной с первого адреса), например unsigned long, float, signed long и др
как правильно извлекать данные вместо этогог выражения? unsigned long dat =(unsigned long) &buf[0] + (buf[1]<<8) + (buf[2]*0xFFFF) + (buf[3]*0xFFFFFF);