Цитата(Alex11 @ Dec 31 2015, 21:41)

if(acp_MSB < 0) cod_acp.b3 = 0xff;
else cod_acp.b3 = 0;
Здесь acp_MSB - байт, он беззнаковый и компилятор об этом предупредит.
Надо примерно так:
Код
</p><p>union long2uch
{
struct
{
struct { unsigned char l,ml,mh,h; } byte;
signed long sl;
}
} acp;
acp.byte.l = 0;
acp.byte.ml = acp_LSB;
acp.byte.mh = acp_Mid_Byte;
acp.byte.h = acp_MSB;
double znachenie_acp = acp.sl*(5.0/(2147483648*64));</p><p>