ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1457511 Топик полностью
Cкpипaч, пророк (20.08.2024 23:17, просмотров: 130) ответил VladislavS. на Ну это же классика. Вызов типа min(x++, ++y) что сделает? На С нужно сильно извращаться чтобы правильно работало, причём это на грани фола (стандарта языка). На нормальном языке всё просто и понятно.
На самом деле, я не вижу практической ценности отказа от "строгой"(кхе-кхе) типизации. В первом вашем варианте хотя бы проверяется что а и b одного типа. Но и тут можно дохрена к чему придраться (а это точно числовые типы?!) 

Но, повторюсь, Для числовых, в языке Си определен подход сведения к заведомо самому большому.

Т.е.:

double min(double a, double b){
if(a > b){
return b;
}else{
return a;
} }

Если типы заведомо int (а это обычно так), можно написать это все для long.

И т.п.


Повторяю, это освященный решениями комитета по языку подход.

Он работает достаточно надёжно и компилятор практически всегда генерит корректный и эффективный код.

... но не любой ценой.