- 
	
- Не верю. - SciFi(22.02.2013 10:11)
 - Сразу опишите buff как unsigned char. И в каком положении у вас стоит галочка "Enable ANSI integer promotion rules" во вкладке C51 опций проекта? - vmp(22.02.2013 10:09)
			
- Enable ANSI integer promotion rules - галочка установлена - RedFroggy(22.02.2013 10:12)
					
- Тогда попробуйте Var1 = (unsigned int)buff[2] + 4; - vmp(22.02.2013 10:13)
							
- Это тоже не помогает - RedFroggy(22.02.2013 10:21)
									
- Ну а принудительно на ноль помножить? 0x00ff & (int)buf[] - Vladimir Ljaschko(22.02.2013 10:47)
											
- Самое плохое - что ошибка неявная. Т.е. все способы, которые сразу приходят в голову, по приведению типов и т.п.  - НЕ работают. Так как конструкцию 0xC0 + 4 работает, то всё что приходит в голову - какая-то проблема с передачей указателя на  RedFroggy(157 знак., 22.02.2013 10:56)
													
- пробуем так abivan(522 знак., 22.02.2013 11:12 - 11:26)
 
 - Паяльником старший адрес закоротить на землю :-) - SciFi(22.02.2013 10:51)
													
- Криптометод? RedFroggy(132 знак., 22.02.2013 11:07)
 
 - Вы не поверите - это было первое, что я сделал. Но увы... - RedFroggy(22.02.2013 10:50)
													
- Попробуйте no int promotion. Тогда компилятор будет использовать байтовую арифметику, вместо полагаюшегося по стандарту предварительного перевода из char в int. - vmp(22.02.2013 10:54)
 - "Фу, кейл" подумали те, кто использует ИАР. Загадка. - Vladimir Ljaschko(22.02.2013 10:54)
															
- Пользуюсь и тем, и другим. Надо только привыкнуть, что Keil C51 - это не язык Си, а некий специфический язык программирования, заточенный под архитектуру 8051. - vmp(22.02.2013 11:09)
																	
- Так и я тоже и тем и другим. Но сейчас Keil. Так получилось. - RedFroggy(22.02.2013 11:13)
 
 - Подумали и хорошо. Можно и в ИАРе на ровном месте яму с гов...м найти и в ней утонуть. - RedFroggy(22.02.2013 10:59)
 
 - Пользуюсь и тем, и другим. Надо только привыкнуть, что Keil C51 - это не язык Си, а некий специфический язык программирования, заточенный под архитектуру 8051. - vmp(22.02.2013 11:09)
																	
 
 
 - Самое плохое - что ошибка неявная. Т.е. все способы, которые сразу приходят в голову, по приведению типов и т.п.  - НЕ работают. Так как конструкцию 0xC0 + 4 работает, то всё что приходит в голову - какая-то проблема с передачей указателя на  RedFroggy(157 знак., 22.02.2013 10:56)
													
 
 - Ну а принудительно на ноль помножить? 0x00ff & (int)buf[] - Vladimir Ljaschko(22.02.2013 10:47)
											
 - Это вредный совет, так как (unsigned int)(signed char)'\xC0' == 0xFFC0u. - SciFi(22.02.2013 10:18)
 
 - Это тоже не помогает - RedFroggy(22.02.2013 10:21)
									
 
 - Тогда попробуйте Var1 = (unsigned int)buff[2] + 4; - vmp(22.02.2013 10:13)
							
 
 - Enable ANSI integer promotion rules - галочка установлена - RedFroggy(22.02.2013 10:12)