1. C++ / Говнокод #11921

    +32

    1. 1
    Sleep("pause");

    Написал как-то ночью. Без комментариев.

    Запостил: qwertyuio, 13 Октября 2012

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

    • Долго будет спать... хотя, конечно, зависит от адреса, который будет дан сегменту кода.
      Ответить
      • сегмент кода тут не причем. в зависимости от платформы его может и не быть. зависит от указателя, который указывает на строку
        Ответить
      • Дык оно же вообще не скомпилится. Или вижуал студия уже научилась приводить const char* к unsigned int?
        Ответить
        • Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Я буду всегда читать комментарии до конца
          Ответить
    • показать все, что скрытокрестоблядство...
      Ответить
      • Виндоапиблядство, или где-то еще есть Sleep() с заглавной буквы?
        Ответить
        • Этот код написан на С++, это кривые костыли С++ виноваты в том, что этот код такой.
          Ответить
          • Этот код запостили как код на С++, остальное недоказуемо.
            Ответить
            • это код на C
              импортировали windows.lib и не подключали windows.h
              и импортировали функцию Sleep:
              extern Sleep();
              В результате Sleep принимает произвольные параметры и типы.
              В крестах это не скомпилируется и не выполнится успешно.
              Ответить
          • На самом деле С++ это не скомпилит. А вот сишка - с ворнингом, но соберет. Поэтому данная претензия к крестоблядскому крестокомпилятору не принимается.

            @LispGovno
            > импортировали windows.lib и не подключали windows.h
            > и импортировали функцию Sleep:
            > extern Sleep();
            Да сишка и так соберет. Можно даже не париться с забыванием прототипа.

            P.S. Где здесь с++, qwertyuio?
            Ответить
            • Почему не соберет? Вы сигнатуру функции видели? Может это и не WinAPI вовсе :)
              Ответить
              • > Вы сигнатуру функции видели?
                Ну разве что там int Sleep(const char*)... Но это еще большее извращение чем приведенный код ;)
                void Sleep(const char *time) {
                    if (strcmp(time, "pause") == 0) {
                        printf("Press any key to continue...\n");
                        getchar();
                    } else {
                         sleep(atoi(time));
                    }
                }
                Ответить
                • Не поддерживает локализацию и не кросплатформенно.
                  Ответить
                  • С этими пунктами согласен (плюсанул), но не суть. Локализацию добавить не так уж сложно (да хоть тот же gettext), а sleep можно выбрать ифдефами в зависимости от платформы, или воспользоваться sleep'ом из более-менее высокоуровневых либ.

                    Еще недостаток - надо бы приводить time к нижнему регистру.
                    Ответить
                    • Со всеми пунктами согласен. Но с моей стороны было глупо придираться к говнокоду. Себя минусанул.

                      >gettext
                      Вот это круто... Я не в теме. POSIX? В винде нет?

                      >а sleep можно выбрать ифдефами
                      C++11: std::this_thread::sleep_for
                      Ответить
                      • >> gettext
                        > Вот это круто... Я не в теме. POSIX? В винде нет?

                        К POSIX это не относится. Под винду тоже вроде вариант есть. Правда, схема локализации выглядит довольно сложно по сравнению, скажем, с java api.
                        Ответить
    • Вообще, речь наверное должна идти о вызове system( "pause" );
      Ответить

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