LINUX.ORG.RU

История изменений

Исправление liksys, (текущая версия) :

И? Где эти идеальные программы, в которых не течёт память, не вылазят странные или тривиальные баги?

Ровно там же, где ты обитаешь - в розовом манямирке. Реальность же такова, что идеально работающий код невозможно написать ни на одном языке, а лишь уменьшить вероятность появления ошибки, используя разнообразные методики.

Так повторяющееся имя идентификатора не обязано быть однобуквенной или не соответствующим принятым правилам. «У дураков мысли сходятся».

Отлично. Если ты назвал переменную осмысленно и не пишешь функцию на тысячу строк, вероятность подобной ошибки стремится к нулю.

Я лишь указал, что объявление переменной по месту, где впервые потребовалась, вовсе не «удобство», а вседозволенность, которую следует ограничивать самодисциплиной программиста, иначе можно нарваться на. И вроде все уже с этим согласились. Оп чём спорим?

Я не вижу, чтобы все с этим согласились. И спорим мы как раз о том, что ты несешь теоретический бред. Объявление переменной по месту как раз уменьшает вероятность ошибок:

  • Ты видишь ее тип близко к месту, где она используется.
  • Можешь использовать такую прекрасную вещь, как const, чтобы исключить вероятность случайного изменения вычисленной посреди функции переменной.
  • Используя пачку const, ты можешь побить сложное выражение на отдельные значимые части.
    const uint htot = V4L2_DV_BT_FRAME_WIDTH(&dv.bt);
    const uint vtot = V4L2_DV_BT_FRAME_HEIGHT(&dv.bt) / (dv.bt.interlaced ? 2 : 1);
    const uint fps = ((htot * vtot) > 0 ? ((100 * (u64)dv.bt.pixelclock)) / (htot * vtot) : 0);
    const float hz = (fps / 100) + (fps % 100) / 100.0;
    
  • Не будет ситуации,когда полкода у тебя переменная остается неинициализированной и ты случайно заиспользуешь ее раньше инициализации при каком-нибудь очередном патче.

Всё это - реальность, а не твои пустые теоретизирования. Ты буквально не знаешь, но мнение имеешь. Думаешь, это не заметно по твоим рассуждениям, что ты в жизни не написал ни строчки продуктового кода и только сидишь и фантазируешь о том, как его следует писать? Иначе бы мы уже давно обсуждали две другие, более серьезные проблемы - выход за границы массива и освобождение ресурсов, а не вот этот бред про переменные.

Я лишь про то, что Си не подходящий инструмент для непрофессионалов. И не подходящий инструмент для обучению программированию «с нуля» массового студента

Господи, опять эти сказки про сложность си.

Исправление liksys, :

И? Где эти идеальные программы, в которых не течёт память, не вылазят странные или тривиальные баги?

Ровно там же, где ты обитаешь - в розовом манямирке. Реальность же такова, что идеально работающий код невозможно написать ни на одном языке, а лишь уменьшить вероятность появления ошибки, используя разнообразные методики.

Так повторяющееся имя идентификатора не обязано быть однобуквенной или не соответствующим принятым правилам. «У дураков мысли сходятся».

Отлично. Если ты назвал переменную осмысленно и не пишешь функцию на тысячу строк, вероятность подобной ошибки стремится к нулю.

Я лишь указал, что объявление переменной по месту, где впервые потребовалась, вовсе не «удобство», а вседозволенность, которую следует ограничивать самодисциплиной программиста, иначе можно нарваться на. И вроде все уже с этим согласились. Оп чём спорим?

Я не вижу, чтобы все с этим согласились. И спорим мы как раз о том, что ты несешь теоретический бред. Объявление переменной по месту как раз уменьшает вероятность ошибок:

  • Ты видишь ее тип близко к месту, где она используется.
  • Можешь использовать такую прекрасную вещь, как const, чтобы исключить вероятность случайного изменения вычисленной посреди функции переменной.
  • Используя пачку const, ты можешь побить сложное выражение на отдельные значимые части.
    const uint htot = V4L2_DV_BT_FRAME_WIDTH(&dv.bt);
    const uint vtot = V4L2_DV_BT_FRAME_HEIGHT(&dv.bt) / (dv.bt.interlaced ? 2 : 1);
    const uint fps = ((htot * vtot) > 0 ? ((100 * (u64)dv.bt.pixelclock)) / (htot * vtot) : 0);
    const float hz = (fps / 100) + (fps % 100) / 100.0;
    
  • Не будет ситуации,когда полкода у тебя переменная остается неинициализированной и ты случайно заиспользуешь ее раньше инициализации при каком-нибудь очередном патче.

Всё это - реальность, а не твои пустые теоретизирования. Ты буквально не знаешь, но мнение имеешь. Думаешь, это не заметно по твоим рассуждениям, что ты в жизни не написал ни строчки продуктового кода и только сидишь и фантазируешь о том, как его следует писать? Иначе бы мы уже давно обсуждали две другие, более серьезные проблемы - выход за границы массива и освобождение ресурсов, а не вот этот бред про переменные.

Я лишь про то, что Си не подходящий инструмент для непрофессионалов. И не подходящий инструмент для обучению программированию «с нуля» массового студента

Господи, опять эти сказки про сложность си. Пойми, если клоуны с регалиями не в состоянии объяснить такую простую вещь, как указатель - это не язык плохой, это клоуна профнепригодны.

Исходная версия liksys, :

И? Где эти идеальные программы, в которых не течёт память, не вылазят странные или тривиальные баги?

Ровно там же, где ты обитаешь - в розовом манямирке. Реальность же такова, что идеально работающий код невозможно написать ни на одном языке, а лишь уменьшить вероятность появления ошибки, используя разнообразные методики.

Так повторяющееся имя идентификатора не обязано быть однобуквенной или не соответствующим принятым правилам. «У дураков мысли сходятся».

Отлично. Если ты назвал переменную осмысленно и не пишешь функцию на тысячу строк, вероятность подобной ошибки стремится к нулю.

Я лишь указал, что объявление переменной по месту, где впервые потребовалась, вовсе не «удобство», а вседозволенность, которую следует ограничивать самодисциплиной программиста, иначе можно нарваться на. И вроде все уже с этим согласились. Оп чём спорим?

Я не вижу, чтобы все с этим согласились. И спорим мы как раз о том, что ты несешь теоретический бред. Объявление переменной по месту как раз уменьшает вероятность ошибок:

  • Ты видишь ее тип близко к месту, где она используется.
  • Можешь использовать такую прекрасную вещь, как const, чтобы исключить вероятность случайного изменения вычисленной посреди функции переменной.
  • Используя пачку const, ты можешь побить сложное выражение на отдельные значимые части.
    const uint htot = V4L2_DV_BT_FRAME_WIDTH(&dv.bt);
    const uint vtot = V4L2_DV_BT_FRAME_HEIGHT(&dv.bt) / (dv.bt.interlaced ? 2 : 1);
    const uint fps = ((htot * vtot) > 0 ? ((100 * (u64)dv.bt.pixelclock)) / (htot * vtot) : 0);
    const float hz = (fps / 100) + (fps % 100) / 100.0;
    
  • Не будет ситуации,когда полкода у тебя переменная остается неинициализированной и ты случайно заиспользуешь ее раньше инициализации при каком-нибудь очередном патче.

Всё это - реальность, а не твои пустые теоретизирования. Ты буквально не знаешь, но мнение имеешь. Думаешь, это не заметно по твоим рассуждениям, что ты в жизни не написал ни строчки продуктового кода и только сидишь и фантазируешь о том, как его следует писать? Иначе бы мы уже давно обсуждали две другие, более серьезные проблемы - выход за границы массива и освобождение ресурсов, а не вот этот бред про переменные.