- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 
                        PureBasic
================================================================================
Define size, *mem, str$
If ReadFile(1,"file.exe")
  size = Lof(1)
  If size = 0
    Debug "Файл пустой"
  Else
    *mem = AllocateMemory(size)
    If *mem
      ReadData(1, *mem, size)
      ;Делаем то, что нужно с памятью. Например, выведем первые 30 байтов файла
      For i = 0 To 29
        str$ + RSet(Hex(PeekB(*mem + i), #PB_Byte), 2, "0") + " "
      Next
      Debug "Первые 30 байтов"
      Debug str$
      FreeMemory(*mem) ;Не забываем очищать память!!!
    EndIf
  EndIf
EndIf
                                 
        
EndIf
EndIf
ненавижу бейсик
fi
fi
Ненавижу баш.
да и ада (да, Тарас?)
таких уёбищ много
}
}
например
тут вообще питон, но сайт зохавал пробелы
А что плохого-то, это же шаг вперёд по сравнению с.
(там вообще крайне много говна, так что это просто одна из каках в общей куче)
это никакой не шаг вперед, наоборот, это атавизм
Разве что со злым умыслом.
Когда любой блок (даже из одного оператора) надо явно оборачивать в скобки - тогда эти проблемы исчезают.
> эти проблемы исчезают.
Этих надуманных проблем и так нет. Если код без скобок будет непонятным - я тупо поставлю скобки. Без скобок я пишу только такие штуки:И после таких блоков обычно ставлю пустую строку (ее все равно почти всегда там приходится ставить, чтобы разделить смысловые блоки).
Поправочка: вменяемый компилятор.
Кстати нормальный компилятор отшибает и почти все выдуманные паскалистами проблемы с = и ==.
Если у человека нет самоконтроля и чувства меры - он и на паскале напишет нечитаемую и вылетающую хуиту. Там ведь тоже, внезапно, есть работа с сырой памятью и указателями. Ну разве что адресной арифметики нет.
Ведь блин, можно было же сделать так, чтобы на самом низком уровне были лишь
dangerous_pure_array<T, N>
и
dangerous_pure_pointer<T>, и не было бы никакого способа написать их короче.
Но к сожалению, в реальной жизни есть выбор межу int[5] и std::array<int,5>, это очень плохо, соблазн вызвать короткую форму очень велик.
Правильная парадигма: легче всего написать самый безопасный вариант (а скорость - вопрос оптимизации и отключаемых в релизе проверок).
Детектор упоротого крестушка: он считает, что правильная парадигма - это в которой легче всего написать самый быстрый вариант в ущерб безопасности.
И называется эта парадигма... java. Правда проверки никак не убираются, если JIT не уверен в результате.
> не было бы никакого способа написать их короче
Ну reinterpret_cast неспроста же так назван... Хотя всемогущий сишный каст все равно оставили ;(
Ну а самый главный фейл крестов в том, что их пытались сделать совместимыми с сишкой (когда-то они были банальным фронтендом для оной). Тут я с тобой согласен. И этот фейл усиливается тем, что большинство преподов, книжек и сайтов начинают учить крестам именно с их сишного наследия.
Поэтому называется сия парадигма не Java, а Ada. Там по умолчанию даже указатели на переменную брать нельзя.
> Ну а самый главный фейл крестов в том, что их пытались сделать совместимыми с сишкой
Это эволюция-с...
А управление памятью в аде какое?
гц по желанию, но в бесплатной версии гната гц нету
Ты попадаешь в RAII
Сделай мне continue я eval-ю
Ты мне не мешай
Под "индусами" следует понимать не национальность, а людей с нарушениями логической системы, подавшихся в кодеры.
хотя как раз об этом часто упоминают в разных гайдлайнах
а вот постоянные end if для однострочных действий выбешивают капитально
Как и постоянные } для однострочных действий.
Ты так говоришь, как-будто тебя кто-то заставляет писать } для однострочных действий ;)
Читаемость, расширяемость.
Разве со скобками будет читаться лучше?
> расширяемость
О да, при добавлении еще одной строчки скобки будет дописывать так сложно, так долго, да еще и забаговать можно... Расширяемость она все-таки таится не в скобках, а в интерфейсах, которые функции/классы/модули/что-там-у-тебя представляют своим коллегам.
?
А промазать между не тех скобок - сложнее.
ide сдвинет эту строку на таб левее и ты заподозришь, что что-то тут не так...