|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ruslan Kosolapov 2:5020/400 18 Oct 2005 13:27:09 To : Ilya Anfimov Subject : Re: Дык на чём остановиться? -------------------------------------------------------------------------------- ==[ 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 на каждую итерацию. Да. Это не всегда плохо. IA> С квадратичным временем. Hе всегда. В зависимости от реализации ListSize. Hасколько я понимаю, в некоторых яызках (Ruby, AFAIK) размер массива - это его property. Если функция AddToList будет прибавлять единичку в property "size" списка при каждом успешном добавлении, то вызов ListSize можно вообще будет заменить обращением к FreeGadgets.size. >> Кстати, если я правильно понял, и confMaxGadgets - это >> максимальное количество элементов в списке FreeGadgets, то у тебя >> ошибка в коде (делается предположение, что в момент начала работы >> цикла список FreeGadgets пуст). IA> Кстати, confMaxGadgets -- это количество элементов Gadgets, IA> которое будет достаточным для работы программы в данных условиях. Хочется сказать, что это чушь какая-то, но пока что не буду говорить, так как в предыдущий раз не совсем угадал то, что не было написано ;) IA> Кстати, это код инициализации, так что в момент начала работы IA> цикла списо FreeGadgets пуст. Так баги и делаются ;) Потом кто-нибудь заюзает этот FreeGadgets, или два раза инициализацию вызовет, не почистив. >> А вообще, пример не очень хороший - здесь уже возможности языка не >> позволяют написать красиво (потому как кроме цикла for в сях, >> AFAIK, нет возможности выполнить какоей-то действие определённое >> количество раз, как, например, в perl (опять-таки AFAIR)). >> Поэтому в данном случае i вполне нормально. IA> Спасибо. btw, сразу следующий пример: sort в перловке. Твой IA> вариант -- как это следовало назвать? А что с sort у перла хренового? >> PS: А вообще, я не понял, что эта хрень делает вообще, и зачем это >> надо. Есть подозрения, что задача, которая приведена в примере, >> не должна возникать при правильном кодировании. IA> Преаллоцирует заданное количество элементов какого-то типа. :) это я понял. Hепонятно, зачем это надо. PS: если на си иначе нельзя, то я очень рад, что не пишу на си... -- =[ Алё... алё..., вы ошиблись, мне конечно приятно, но я не папа =[ -- nik, 2003 --- ifmail v.2.15dev5.3 * Origin: SWSoft Novosibirsk, QA Department Second Manager (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/15414ccf5f0af.html, оценка из 5, голосов 10
|