- 
	- Приведение плавучего выражения к типу int не делает его целочисленной константой (патамучта компилятор не обязан уметь плавучку). - LightElf(11.07.2017 11:15 - 11:20)
			- о господи... Пардон, вроде бы да, таки не обязан. Но вот приводить плавучую константу к целому точно обязан уметь. - SciFi(11.07.2017 11:23 - 11:26)
					- Эээ. Выражусь точнее: компилятор не обязан уметь выполнять плавучие операции в compile time. Потому int array[((int)1.0f)+((int)1.0f)] правильно, а int array[(int)(1.0f+1.0f)] - неправильно, хотя кое-где порой работает. - LightElf(11.07.2017 11:35)
							- Когда мне нужно посчитать плавающую точку во время компиляции, я просто включаю заголовочный файл float.h. И компилятор вычисляет простые выражения с плавающей точкой на месте точно так же, как если бы работал код плавающей точки, но не включая  Nikolay_Po(144 знак., 11.07.2017 13:16)
									- Watcom C и исходный вопрос компилирует без проблем. Что никак не означает, что это корректный код. - LightElf(11.07.2017 13:33)
											- XC32 выдаёт предупреждение, TI C2000 - ошибку. - mr-x(11.07.2017 14:26)
													- А gcc вообще умеет считать синусы и всё такое на этапе компиляции! - SciFi(11.07.2017 14:29)
															- Шарман! - mr-x(12.07.2017 08:48)
 
 
- А gcc вообще умеет считать синусы и всё такое на этапе компиляции! - SciFi(11.07.2017 14:29)
															
 
- XC32 выдаёт предупреждение, TI C2000 - ошибку. - mr-x(11.07.2017 14:26)
													
- Пардон, float.h тут замешан чуть менее, чем никак. Ну а вообще всё так :-) - SciFi(11.07.2017 13:20)
											- Нифига. В случае с MCP XC16 не компилируется, так как не знает, как выполнять вычисления с плавающей точкой без заголовков. - Nikolay_Po(11.07.2017 15:13)
													- Фигасе. Ну, я про пики слышал всякое. Не удивлюсь, если Си у них не совсем Си. Или совсем не Си :-) - SciFi(11.07.2017 15:14)
															- вот так и родятся мифы о пиках.  abivan(123 знак., 11.07.2017 16:19 - 16:24)
																	- Примеры на твоих скриншотах не о том. Вставь выражение с плавучкой в объявление массива. - mr-x(12.07.2017 08:44)
																			- gcc дает warning. компилятор от MS 96 года без предупреждений. abivan(12.07.2017 11:50 - 12:17)
 
- OK, проверил - XC16 v1.31 не ругается. Помню, заводил трабл тикет по XC16 - отказывался инициализировать константы при помощи функций типа pow(x,y).  Nikolay_Po(609 знак., 11.07.2017 16:49)
																			- Семён Семёныч! Я бы за такие тикеты счёт выставлял :-) - SciFi(11.07.2017 16:51)
																					- Причем за украденный компилятор! ;) Мол, пропала вера в человечество. - vllv(11.07.2017 16:58)
 
 
- Семён Семёныч! Я бы за такие тикеты счёт выставлял :-) - SciFi(11.07.2017 16:51)
																					
- Никак не пойму, что это доказывает и как противоречит чему-либо вышесказанному. - SciFi(11.07.2017 16:28)
																			- как и ожидалось float.h не нужен и майкрочиповским компиляторам. А си у пиков вполне си :). - abivan(11.07.2017 16:45 - 16:47)
 
 
- Примеры на твоих скриншотах не о том. Вставь выражение с плавучкой в объявление массива. - mr-x(12.07.2017 08:44)
																			
 
- вот так и родятся мифы о пиках.  abivan(123 знак., 11.07.2017 16:19 - 16:24)
																	
 
- Фигасе. Ну, я про пики слышал всякое. Не удивлюсь, если Си у них не совсем Си. Или совсем не Си :-) - SciFi(11.07.2017 15:14)
															
 
- Нифига. В случае с MCP XC16 не компилируется, так как не знает, как выполнять вычисления с плавающей точкой без заголовков. - Nikolay_Po(11.07.2017 15:13)
													
 
- Watcom C и исходный вопрос компилирует без проблем. Что никак не означает, что это корректный код. - LightElf(11.07.2017 13:33)
											
- Ага, спасибо! Но инициализирует переменную без вопросов хоть тем, хоть этим выражением. - mr-x(11.07.2017 11:50)
 
- Когда мне нужно посчитать плавающую точку во время компиляции, я просто включаю заголовочный файл float.h. И компилятор вычисляет простые выражения с плавающей точкой на месте точно так же, как если бы работал код плавающей точки, но не включая  Nikolay_Po(144 знак., 11.07.2017 13:16)
									
 
- Эээ. Выражусь точнее: компилятор не обязан уметь выполнять плавучие операции в compile time. Потому int array[((int)1.0f)+((int)1.0f)] правильно, а int array[(int)(1.0f+1.0f)] - неправильно, хотя кое-где порой работает. - LightElf(11.07.2017 11:35)
							
 
- о господи... Пардон, вроде бы да, таки не обязан. Но вот приводить плавучую константу к целому точно обязан уметь. - SciFi(11.07.2017 11:23 - 11:26)
					
- Вот:  SciFi(471 знак., 11.07.2017 11:16)
			- Спасибо! - mr-x(11.07.2017 11:27)
 
 
- Приведение плавучего выражения к типу int не делает его целочисленной константой (патамучта компилятор не обязан уметь плавучку). - LightElf(11.07.2017 11:15 - 11:20)