Цитата(-=Женек=- @ Jan 10 2011, 12:43)

Косяк был в том, что я подставлял туда переменную типа unsigned char, умноженную на некое число. КОгда произведение unsigned char на это число не превышало 256, все было нормально, когда превышало - начинались косяки.
Послушайте, ну я же написал - "нашлось 2 решения", значит помогло, значит с этой галочкой работает.
Или же я вас неправильно понял...
Странно это..В случае умножения или сложения одинаковых типов следить за переполнением должен программист и опция "promote char to int" влиять вроде-бы не должна.
из хэлпа CV:
Checking the Promote char to int check box enables the ANSI promotion of char operands to int.
To prevent overflow on 8 bit addition or multiplication, casting may be required.
The compiler issues warnings in these situations.
Example:
void main(void) {
unsigned char a=30;
unsigned char b=128;
unsigned int c;
/* This will generate an incorrect result, because the multiplication
is done on 8 bits producing an 8 bit result, which overflows.
Only after the multiplication, the 8 bit result is promoted to
unsigned int */
c=a*b;
/* Here casting forces the multiplication to be done on 16 bits,
producing an 16 bit result, without overflow */
c=(unsigned int) a*b;
}
практически ваш случай,если я правильно вас понимаю.