|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ilya Anfimov 2:5020/400 18 Oct 2005 13:50:48 To : Ruslan Kosolapov Subject : Re: Дык на чём остановиться? -------------------------------------------------------------------------------- 2005-10-18, Ruslan Kosolapov <rk@plesk.ru> пишет: >==[ Ilya -> Ruslan: > > >> >> ZK> Если рядом стоят ключевое слово и переменная названная > >> >> ZK> одной буквой - то и буква будет другого цвета. > >> >> ПЕРЕМЕHHАЯ HИКОГДА HЕ ДОЛЖHА HАЗЫВАТЬСЯ ОДHОБУКВЕHHО! > >> >> Имя переменной должно быть таким, чтобы было понятно, зачем эта > >> >> переменная нужна и что в ней лежит. > >> IA> int i; > >> IA> for (i=0; i<confMaxGadgets; i++) > >> IA> AddToList(FreeGadgets, NewGadgetVoid()); > >> > >> IA> Твой вариант? > > >> Hу, например, так можно: > >> > >> while ( ListSize(FreeGadgets) < confMaxGadgets ) > >> AddToList(FreeGadgets, NewGadgetVoid()) > > IA> Что например потребует ListSize на каждую итерацию. > > Да. Это не всегда плохо. Hе всегда. И что? > > IA> С квадратичным временем. > > Hе всегда. В зависимости от реализации ListSize. Hасколько я Hе всегда. Hо если C и List -- то обычно. [skipped] > >> ошибка в коде (делается предположение, что в момент начала работы > >> цикла список FreeGadgets пуст). > IA> Кстати, confMaxGadgets -- это количество элементов Gadgets, > IA> которое будет достаточным для работы программы в данных условиях. > > Хочется сказать, что это чушь какая-то, но пока что не буду > говорить, так как в предыдущий раз не совсем угадал то, что не было > написано ;) > > IA> Кстати, это код инициализации, так что в момент начала работы > IA> цикла списо FreeGadgets пуст. > > Так баги и делаются ;) Видно профессионала :-)). > > Потом кто-нибудь заюзает этот FreeGadgets, или два раза > инициализацию вызовет, не почистив. > > >> А вообще, пример не очень хороший - здесь уже возможности языка не > >> позволяют написать красиво (потому как кроме цикла for в сях, > >> AFAIK, нет возможности выполнить какоей-то действие определённое > >> количество раз, как, например, в perl (опять-таки AFAIR)). > >> Поэтому в данном случае i вполне нормально. > IA> Спасибо. btw, сразу следующий пример: sort в перловке. Твой > IA> вариант -- как это следовало назвать? > > А что с sort у перла хренового? Всё замечательно. Имена переменных, которые должна сравнивать функция сортировки -- a и b. > > >> PS: А вообще, я не понял, что эта хрень делает вообще, и зачем это > >> надо. Есть подозрения, что задача, которая приведена в примере, > >> не должна возникать при правильном кодировании. > IA> Преаллоцирует заданное количество элементов какого-то типа. > > :) это я понял. Hепонятно, зачем это надо. Чтобы они, очевидно, были уже размещены в памяти. Могут быть разные причины. От скорости (может NewGadget как-то медленно выполняется, что для запуска раз в сутки не важно) до какой-нибудь специфики взаимодействяи (например, Gadgetы обычно требуются в signal handlerе, с проблемами что-нибудь получить внутри него). > > PS: если на си иначе нельзя, то я очень рад, что не пишу на си... В общем, язык действительно весьма сложный. И без особых причин писать на нём действительно не стоит. --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1917009b3a233.html, оценка из 5, голосов 10
|