Компилю в Visual C++8Не могу понять почему переставлены байты. Суть явления есть структура с элементами типа char и unsigned short. Она заполняется при чтении файла.TError вызов функции GetNextLogData(&Head, hSize) //где head указатель на стурктуру ;unsigned long hSize=sizeof(Head) GetNextLogData(void *buf, word32 &len){ word32 tmp, rdPortion; char* bf=(char*)buf; int16 tmp2=1; for(tmp=len; !Error() && tmp2 && tmp>0 && lenCurrentRecord>0
{ rdPortion=(tmp>lenLogPart)?lenLogPart:tm p; if((tmp2=read(handle, bf, rdPortion))==-1) Error(emReadError);и тд. Суть проблемы в том что после заполнения структуры поле с unsigned short значением имеет переставноленные байты (должно быть 17222 ('C''F') реальное значение получается 17987 ('F''C')).Код портируется из DOS компилировался в BorlandC 3.1 там было все нормально (те последовательность байт после преобразования была верной)