LINUX.ORG.RU
ФорумTalks

Сравнение надежности WinXP и Slackware 13


0

0

user@serenity:~$ cat tmp/venda.iso | grep -i --binary-files=text жопа | wc -l

1

user@serenity:~$ du -sh tmp/venda.iso

589M tmp/venda.iso

-------------------------------------------------

[user@centos ~]$ grep -i --binary-files=text жопа slackware64-13.0-install-dvd.iso | wc -l

0

[user@centos ~]$ du -sh slackware64-13.0-install-dvd.iso

3.7G slackware64-13.0-install-dvd.iso



Последнее исправление: cascade (всего исправлений: 1)

А давайте проведём день отказа от jmp. Тихо, молча, на счётах.

vtp
()
Ответ на: комментарий от linux4ever

А вы не учитываете, что в каждом цикле if goto у вас будет жрать такты процессора?

1 раз на проход цикла. Рассмотрим пример

for (i = 0; i < iMax; ++i)
    for (j = 0; j < jMax; ++j)
        for (k = 0; k < kMax; ++k)
        {
            if (array[i][j][k] == 0)
                goto endloop;
        }
endloop:
doSomethingHere()

А теперь вариант с флагом:

flag = 0;
for (i = 0; i < iMax; ++i)
{
    for (j = 0; j < jMax; ++j)
    {
        for (k = 0; k < kMax; ++k)
        {
            if (array[i][j][k] == 0)
            {
                flag = 1;
                break;
            }
        }
        if (flag)
            break;
    }
    if (flag)
        break;
}
endloop:
doSomethingHere()

Разница видна?

blaster999 ★★
()
Ответ на: комментарий от bibi

Ну сложение двух 5-мерных массивов все-таки нагляднее будет в виде 5 вложенных for =)

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

> Исключения по сути это тот же goto

Ну да, конечно

namezys ★★★★
()
Ответ на: комментарий от blaster999

Классический пример когда не нужен goto

[code] bool smth(int ***array) { for (i = 0; i < iMax; ++i) for (j = 0; j < jMax; ++j) for (k = 0; k < kMax; ++k) { if (array[i][j][k] == 0) return true; } return false; } [/code]

Еще с большой долей веросятности именно этот код компилятор посчитает inline

namezys ★★★★
()
Ответ на: комментарий от namezys

>Классический пример когда не нужен goto

Между прочим, при сипользовании гото в памяти остаются i, j и k — координаты нужного элемента массива.

А в твоем примере пришлось бы извращаться с возвратом struct либо с передачей указателей на i, j, k в функцию. IMHO, читаемость от этого только страдает

blaster999 ★★
()
$ LC_CTYPE=ru_RU.CP1251 grep -aci `iconv -t cp1251 <<<жопа` Windows.xp.sp3.5512.CDR.august.2008.with.\(sata+raid\).iso
4

$ du -h Windows.xp.sp3.5512.CDR.august.2008.with.\(sata+raid\).iso
664M    Windows.xp.sp3.5512.CDR.august.2008.with.(sata+raid).iso

$ LC_CTYPE=ru_RU.CP1251 grep -aci `iconv -t cp1251 <<<жопа` slackware64-2010-03-16-06\:59\:28-dvd.iso
15

$ du -h slackware64-2010-03-16-06:59:28-dvd.iso
3.8G    slackware64-2010-03-16-06:59:28-dvd.iso
arsi ★★★★★
()
Ответ на: комментарий от aleax

видаль пофиксили. В той исошке было сп2

cascade
() автор топика
Ответ на: комментарий от blaster999

> Между прочим, при сипользовании гото в памяти остаются i, j и k — координаты нужного элемента массива.

хитер парень :)

но имхо уж кооридаты заранее передаються в структуре. Можно бы в С++ вызывать конструтор. А вот с С.. да :(

namezys ★★★★
()
Ответ на: комментарий от arsi

> $ LC_CTYPE=ru_RU.CP1251 grep -aci `iconv -t cp1251 <<<жопа` slackware64-2010-03-16-06\:59\:28-dvd.iso 15

Это тебе откровение Патрика: если юзать слаку в 1251 - будет жопа.

cascade
() автор топика
Ответ на: комментарий от cascade

> Это тебе откровение Патрика: если юзать слаку в 1251 - будет жопа.

$ LC_CTYPE=ru_RU.KOI8-R grep -aci `iconv -t koi8-r <<<жопа` slackware64-2010-03-16-06\:59\:28-dvd.iso
29
arsi ★★★★★
()
Ответ на: комментарий от namezys

>но такое ой как редко надо

Согласен. Я вообще не люблю голый C, а в ООП Goto почти никогда не нужен. С другой стороны, ядро уже написано на C, и там много мест, где лишний такт или килобайт критичен, и там можно невозбранно использовать Goto.

blaster999 ★★
()
Ответ на: комментарий от pevzi

>кои8р ничуть не лучше.

Неправда. Если у кириллического текста на koi8-r отрезать старший бит, то он останется koi-как читаемым. В 21 веке очень нужное свойство.

blaster999 ★★
()
Ответ на: комментарий от blaster999

Не ну может и лучше, но утф же наше все.

pevzi ★★★★★
()
Ответ на: комментарий от blaster999

> Гото существовал еще тогда, когда паскаля и барсика в поминках не было.

С момента сотворения мира?

Rubystar ★★
()
Ответ на: комментарий от pevzi

> кои8р ничуть не лучше.

$ LC_CTYPE=ru_RU.IBM866 grep -aci `iconv -t cp866 <<<жопа` slackware64-2010-03-16-06\:59\:28-dvd.iso 
9

$ LC_CTYPE=ru_RU.ISO-8859-5 grep -aci `iconv -t iso-8859-5 <<<жопа` slackware64-2010-03-16-06\:59\:28-dvd.iso
20
больше не могу вспомнить ни одной кодировки с 4-байтной жопой… %)

arsi ★★★★★
()
Ответ на: комментарий от Reset

Отчечать на цитаты из «умных» книжек - моветон =)

frame ★★★
()
Ответ на: комментарий от pevzi

> archlinux-2009.08-netinstall-i686.img

archlinux-2009.08-netinstall-i686.img   2009-Aug-08 17:15:50   176.8M

176.8M

нутыпонел ;)

arsi ★★★★★
()
Ответ на: комментарий от blaster999

Кстати, давно интересует, если сделать goto из блока, память под локальные переменные освобождается или программа течет?

keyran ★★
()
Ответ на: комментарий от keyran

Кстати, давно интересует, если сделать goto из блока, память под локальные переменные освобождается или программа течет?

Не то что течет - просто стекает бурными потоками!

bibi
()
Ответ на: комментарий от keyran

Так я и думал. О чем тогда вообще вопрос? Писать надо корректные программы, а не лишь бы побыстрее.

Ну а ты думал? Вон, посмотри сколько один горячий финский паренек в своём небезызвестном творении готу понаставил - это ж мама не горюй! А все почему? А потому что лекции профессора прогуливал. Вот и результат.

bibi
()
Ответ на: комментарий от bibi

Было бы с чем сравнивать :) Индусские программисты небезызвестной компании не то, что лекции прогуливали, они и к учебному заведению-то близко не подходили :) Насчет паренька интересно, кстати - сколько гото было в ядре первой версии? :)

keyran ★★
()
Ответ на: комментарий от blaster999

Цитируем blaster999

Если у тебя 5 вложенных циклов,

Жепь. Кастую в тред эрлангеровцев, которые объяснят, что циклы не нужны, а тем более вложеные :)

shahid ★★★★★
()
Ответ на: комментарий от keyran

Насчет паренька интересно, кстати - сколько гото было в ядре первой версии? :)

Думаю, что предостаточно. Качать/смотреть лень. Но такое с годами не лечится.

bibi
()
Ответ на: комментарий от linux4ever

> Учитывая что обычно goto используют в плохо спроектированном коде.

Обычно это утверждает школота. Дойтя до подписи (linux4ever) понял, что оно и есть.

Led ★★★☆☆
()
Ответ на: комментарий от blaster999

goto - эта музыка будет вечной (с) :)

А теперь вариант с флагом:


1. вынести в функцию
2. использовать return
3. ??????
4. PROFIT!

lester ★★★★
()
Ответ на: комментарий от shahid

> Кастую в тред эрлангеровцев, которые объяснят, что циклы не нужны, а тем более вложеные :)

Они в C далеко не всегда нужны. При том, что gcc даже при -O1 оптимизирует хвостовую рекурсию.

Led ★★★☆☆
()
Ответ на: Рапторы откакуе! от Camel

Эту книгу вместо Голуба писал Копетан Очевиднев. Он же ещё «Совершенный код» Макконелу подсунул.

Примеры хорошего гото были выше по треду

yoghurt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.