Nothing wrong with it except what is the point? A dword (unsigned long) is the same size as a float - on both 16 and 32 bit machines, they are both 4 bytes in size. You are not really saving anything in size.