Кресты / Говнокод #1768 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
PChar GetFileContent(PChar FileName)
{
...
};

static inline signed int GetFileSize(PChar FileName)
{
  return(((signed int)(strlen(GetFileContent(FileName)))));
};

Всё гениальное - просто...

Запостил: Говногость Говногость, (Updated )

Комментарии (26) RSS

  • Возможно и повторение, но здесь всё лучше заоптимизированно inline-ом.
    А вот зачем же типизировать signed? Мы же теряем тогда целый бит!
    Ответить
      • и сигнед инт - мы не сможем узнать "длину" более чем двух гиговых файлов?(%
        Ответить
        • Видимо это защита, что-бы слишком большие файлы в память программер не пытался считывать, тк это всё-равно бесполезно... 😀
          Ответить
  • Я, может быть, не понимаю в чём состоит задача. Однако, различную служебную информацию можно узнавать посредством С-функций, которые к ОС обращаются. С++ хорошо С воспринимает и ничего страшного при использовании этих самых вызовов не произойдёт. Главное знать, что именно в различных полях структуры ваша ОС размещает. В любом случае это представляется более эффективным, чем "изобретение велосипеда". По-моему...
    Ответить
  • Считывать ВЕСЬ файл в ОЗУ только для того, чтобы определить его размер... Facepalm.jpg
    Ответить
    • Причём определить неправильно, если файл двоичный и содержит нулевые байты.
      Ответить
      • Может человек только для текстовых файлов функцию использовал?
        Ответить
  • Может это мультиплатформенная реализация?
    Ответить
  • А когда понадобится узнать дату создания файла, автор будет дежурить с лопатой за углом директории и ждать, пока файл кто-нибудь создаст?
    Ответить
    • Неа!!! Программа попросит посмотреть пользователя и ввести дату запрашиваемого файла.
      Ответить
  • А зачем сдесь преобразование типа к (signed int)?
    Ответить
    • Чтобы компилятор предупреждение о преобразовании типов не выдавал, вестимо. Ведь size_t обычно "больше" signed int.
      Ответить
      • Странно, что человек озабочен предупреждениями компилятора, а пишет такой код...
        Ответить
  • Заметьте! В GetFileContent(...) наверяка выделяется память. Но она,то не где не освобождается, после измерения длины файла.
    Ответить
    • а вдруг PChar - это мощная обертка над си-стринг, которая много чего умеет и даже контролирует время жизни этого си-стринга? 🙂
      хотя врядли, конечно...
      Ответить
  • не, здесь забавное то, что функция strlen остановится ну нулевом байте 🙂
    Ответить
    • т.е. если у файла размер два гигабайта, но третий байт у него нулевой, то функция выдаст, что размер файла два байта

      тем более что эти два гигабайта это ж сколько же по времени будет парсить... а что если удалённый? не буду больше предполагать
      Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8