- 
	- Ассерт очень тонкая вещь. Ты, представь, ракету в космос запускаешь. И у тебя сработал ассерт в какой-то малозначительной функции, в малозначительном модуле. А упадёт из-за этого вся ракета. Иногда ошибки в программе лучше обрабатывать каким-то  fk0(124 знак., 03.11.2017 11:00)
			- Поэтому ассерт устроен вот так: #ifdef NDEBUG #define assert(x) // nothing - SciFi(03.11.2017 11:06)
- статик ассерт? - VLLV(03.11.2017 11:04)
					- а static_assert работает только на constexpr-выражениях, что несколько проблематично в реальном коде - lloyd(03.11.2017 11:10)
 
 
- вот, уже здравое зерно есть в обсуждении! Вполне применимо.  michas(104 знак., 03.11.2017 08:52 - 09:19)
			- добавь в структуру пользовательского типа "поле типа" через enum - будет что-то вида строгой типизации - Любитель_Радио(03.11.2017 09:46,  ) )- Не плоди сущности сверх необходимых. Такая конструкция вызовет 10-кратное усложнение кода и внесение своих ошибок. Которых может быть куда больше, чем перепутанные типы данных. - fk0(03.11.2017 11:01)
							- ну уж прям 10-кратное)) а так - всё зависит от постановки задачи. ТС в общем виде описал проблему - в общем виде и решение - Любитель_Радио(03.11.2017 11:43,  ) )
 
- ну уж прям 10-кратное)) а так - всё зависит от постановки задачи. ТС в общем виде описал проблему - в общем виде и решение - Любитель_Радио(03.11.2017 11:43, 
 
- Не плоди сущности сверх необходимых. Такая конструкция вызовет 10-кратное усложнение кода и внесение своих ошибок. Которых может быть куда больше, чем перепутанные типы данных. - fk0(03.11.2017 11:01)
							
- Не "может", "должен". - Скрипач(03.11.2017 09:22)
- ...периода выполнения? И ждать пока соответствующая ветвь кода выполниться? Может проще на Паскаль перейти? Там строгая типизация - свойство языка. - Скрипач(03.11.2017 09:00)
					- Ну хоть какая проверка. Иногда напрягает что не помнишь в вольтах или миливольтах, градусах или дециградусах. С плавучкой в этой части проще конечно.   michas(104 знак., 03.11.2017 09:04 - 09:10)
							- Я тебе предлагал к имени переменной добавлять суффикс. Не дебильную венгерскую нотацию, где префикс (и поэтому нет автодополнения, и ты всегда должен заранее знать префикс), и где в префиксе закодирован машинный тип данных (его компилятор и без  fk0(315 знак., 03.11.2017 11:03)
									- Понятно. - michas(03.11.2017 11:33)
 
- А не слишком ли преувеличена проблема? Вольты и миливольты? Два масштаба несложно отследить, больше... на практике, не встречал. - Скрипач(03.11.2017 09:21)
									- проблема... В целочисленной арифметике приходится и три-четыре единицы одной и той же величины использовать, чтобы в диапазон вогнать и время вычислений оптимизировать. - VLLV(03.11.2017 11:07)
											- Человек в милли- и кило- запутался, а вы ещё предлагаете всё это считать в целых числах и подгонять диапазоны. У поциента мозг взорвётся! - SciFi(03.11.2017 11:09)
													- т.е. мы про абстрактное, а не реальное программирование мусолим? - VLLV(03.11.2017 11:12)
															- float - тоже реальное программирование. Сейчас копеечные МК умеют делать его аппаратно. Да и на тихоходных МК использовать софтовый float оч. часто полезно. Далеко не всегда нужно выжимать из проца последний такт и байт. - SciFi(03.11.2017 11:23)
																	- Ну не работает мой алгоритм на float, я от сохи, я к своим проектам все примеряю. - VLLV(03.11.2017 16:25)
- Имел случай, когда на pic18 с hitech-c компилятором (не PRO-версии, в PRO нет той библиотеки, оптимизированной руками на ассемблере) вычисления написанные на float оказались быстрей целочисленного варианта. Объяснение простое: целочисленный был  fk0(337 знак., 03.11.2017 11:29)
																			- так они не на float написаны. float в IEEE754 подразумевается 24-х битный. те вычисления были написаны на скажем pic-float. стоит таки различать такие сущности. - Mahagam(03.11.2017 15:35)
																					- Не надо занудничать. Точка плавает? Плавает. Значит float. - SciFi(03.11.2017 15:36)
																							- маркетологи покусали? да? ))) - Mahagam(03.11.2017 15:39)
 
 
- Не надо занудничать. Точка плавает? Плавает. Значит float. - SciFi(03.11.2017 15:36)
																							
 
- так они не на float написаны. float в IEEE754 подразумевается 24-х битный. те вычисления были написаны на скажем pic-float. стоит таки различать такие сущности. - Mahagam(03.11.2017 15:35)
																					
 
 
- float - тоже реальное программирование. Сейчас копеечные МК умеют делать его аппаратно. Да и на тихоходных МК использовать софтовый float оч. часто полезно. Далеко не всегда нужно выжимать из проца последний такт и байт. - SciFi(03.11.2017 11:23)
																	
 
- т.е. мы про абстрактное, а не реальное программирование мусолим? - VLLV(03.11.2017 11:12)
															
 
- Человек в милли- и кило- запутался, а вы ещё предлагаете всё это считать в целых числах и подгонять диапазоны. У поциента мозг взорвётся! - SciFi(03.11.2017 11:09)
													
- Да не проблема. Это у США с госдолгом проблема, а я про средства и методы разработки спрашиваю :). C масштабами справляюсь. Вот ассертами раньше не пользовался, теперь иногда пользуюсь где удобно. Может и из typedef что нибудь полезное можно  michas(9 знак., 03.11.2017 09:25)
											- Лемма: там где можно поставить assert, можно поставить внятную обработку ошибки. Assert хорош когда работаешь с двумя сборками: отладочной и "боевой". Но сама по себе "двойная работа" таит в себе кучу разных засад. - Скрипач(03.11.2017 09:45)
													- Про ассерт вообще не нужно думать есть он или нет. Он может быть, а может не быть. В любой сборке. Глупо в боевой отказаваться от обработки ошибой, равно как глупо полагаться на то, что записанное внутри ассерта выполняется. Вообще нормальные люди  fk0(70 знак., 03.11.2017 11:05)
															- Еще раз повторяю - вместо вывешивания или перезагрузки системы при помощи ассерта можно вырулить прибор в нормальное состояние с учетом контекста. Скрипач(120 знак., 03.11.2017 21:45)
 
 
- Про ассерт вообще не нужно думать есть он или нет. Он может быть, а может не быть. В любой сборке. Глупо в боевой отказаваться от обработки ошибой, равно как глупо полагаться на то, что записанное внутри ассерта выполняется. Вообще нормальные люди  fk0(70 знак., 03.11.2017 11:05)
															
 
- Лемма: там где можно поставить assert, можно поставить внятную обработку ошибки. Assert хорош когда работаешь с двумя сборками: отладочной и "боевой". Но сама по себе "двойная работа" таит в себе кучу разных засад. - Скрипач(03.11.2017 09:45)
													
 
- проблема... В целочисленной арифметике приходится и три-четыре единицы одной и той же величины использовать, чтобы в диапазон вогнать и время вычислений оптимизировать. - VLLV(03.11.2017 11:07)
											
- Посмотри Паскаль. Ада - слишком "академична", нужны аргументы чтобы на ней писать. - Скрипач(03.11.2017 09:11)
									- Смысла нет, лекарство хуже болезни. Си пока абсолютно устраивает. Ума вот нет, паскаль не поправит. - michas(03.11.2017 09:26)
											- Если "многообразие типов" действительно велико, то не грех и сменить язык. Но раз это "академический интерес" то понятно. - Скрипач(03.11.2017 09:51)
- не совсем так. всё, что требует решения в терминах целевой задачи, может быть вынесено в отдельный слой. и в последующем оттранслировано в плейнси для компиляции. Царская Морда(136 знак., 03.11.2017 09:33, ссылка)
 
 
- Смысла нет, лекарство хуже болезни. Си пока абсолютно устраивает. Ума вот нет, паскаль не поправит. - michas(03.11.2017 09:26)
											
- Бывалые предлагали приписывать к имени переменной единицы измерения. Ну и добудьте наконец нормальный текстовый редактор, который умеет парсить сишный код и делать удобную навигацию по переменным, функциям, типам. - SciFi(03.11.2017 09:08)
									- Кейл-лайт не такой? - michas(03.11.2017 09:09)
											- Есть два редактора -- Vim и Emacs. Если не осилил ни один, то пользуйся NetBeans или Eclipse (для очень больших проектов только второй). На совсем худой конец -- Visual Studio. - fk0(03.11.2017 11:07)
- Понятия не имею. Давным-давно пользовался редактором кейла. Вроде бы там какая-то навигация была, но не помню, насколько вменяемая. Пользую Source Insight. Понравился редактор в Eclipse, но я так и не врубился, как в этой эклипсе настройки SciFi(34 знак., 03.11.2017 09:11)
 
 
- Кейл-лайт не такой? - michas(03.11.2017 09:09)
											
 
- Я тебе предлагал к имени переменной добавлять суффикс. Не дебильную венгерскую нотацию, где префикс (и поэтому нет автодополнения, и ты всегда должен заранее знать префикс), и где в префиксе закодирован машинный тип данных (его компилятор и без  fk0(315 знак., 03.11.2017 11:03)
									
 
- Ну хоть какая проверка. Иногда напрягает что не помнишь в вольтах или миливольтах, градусах или дециградусах. С плавучкой в этой части проще конечно.   michas(104 знак., 03.11.2017 09:04 - 09:10)
							
 
- добавь в структуру пользовательского типа "поле типа" через enum - будет что-то вида строгой типизации - Любитель_Радио(03.11.2017 09:46, 
 
- Ассерт очень тонкая вещь. Ты, представь, ракету в космос запускаешь. И у тебя сработал ассерт в какой-то малозначительной функции, в малозначительном модуле. А упадёт из-за этого вся ракета. Иногда ошибки в программе лучше обрабатывать каким-то  fk0(124 знак., 03.11.2017 11:00)