1. Си / Говнокод #12952

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    void lcd_goto(unsigned char line, unsigned char pos)
    {
    	...
    	lcd_str_remains = LCD_STR_LEN - pos;
    }
    
    void lcd_putch(char c)
    {
    	lcd_str_remains--;
    	...
    }
    
    void lcd_fill_str(void)
    {
    	char i;
    	for(i=0; i<lcd_str_remains; i++)
    		lcd_putch(' ');
    }

    Паскаль головного мозга. Эх, сколько я этот баг искал.

    Запостил: kipar, 29 Апреля 2013

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

    • Глобальные переменные? Да это не Паскаль... Это Фортран или Бейсик головного мозга.
      Ответить
      • Да даже если бы это было членом класса, суть бы от этого не изменилась ;)
        Ответить
        • Чуть позже заметил, что дизайн кода избавляет от необходимости создавать новые переменные. Программирование без переменных... да это же функциональщина!
          Ответить
      • Я АНДРЕЙ-ГЕЙ, ИЩУ НЕМАНЕРНОГО ПАРНЯ ИЗ ПИТЕРА ДЛЯ СЕКСА БЕЗ ОБЯЗАТЕЛЬСТВ НА ОДИН-ДВА РАЗА. ЛЮБЛЮ НОСИТЬ ЖЕНСКОЕ БЕЛЬЕ.
        [COLOR=BLUE]СОСУ ХУИ[/color][COLOR=BLACK]ДАЮ В ЖОПУ[/color][COLOR=GREEN]ДЕЛАЮ МИНЕТЫ[/color][COLOR=RED]
        ПИШИТЕ, ЗВОНИТЕ: 79046468333. СТРАНИЦА В ВК: vk.com/id41556
        [/color]
        Ответить
    • Ну я могу ошибаться, но это похоже на прогу под микроконтроллер, а там ничего преступного в глобальных переменных нет. В конце концов стэк не резиновый, да и лишний раз зачем все копировать...
      Единственное, что здесь вызывает батхерт, так что lcd_str_remains и в цикле как условие, и еще в ф-ции уменьшается. Цикл в 2 раза быстрее пойдет.
      Ответить
      • > Цикл в 2 раза быстрее пойдет.
        Турбо-режим.
        Ответить
        • Помню такую кнопочку на 486: lo hi
          Ответить
          • И почему-то многие вспоминают именно в таком порядке: lohi, а не hilo.
            Ответить
        • Я АНДРЕЙ-ГЕЙ, ИЩУ НЕМАНЕРНОГО ПАРНЯ ИЗ ПИТЕРА ДЛЯ СЕКСА БЕЗ ОБЯЗАТЕЛЬСТВ НА ОДИН-ДВА РАЗА. ЛЮБЛЮ НОСИТЬ ЖЕНСКОЕ БЕЛЬЕ.
          [COLOR=BLUE]СОСУ ХУИ[/color][COLOR=BLACK]ДАЮ В ЖОПУ[/color][COLOR=GREEN]ДЕЛАЮ МИНЕТЫ[/color][COLOR=RED]
          ПИШИТЕ, ЗВОНИТЕ: 79046468333. СТРАНИЦА В ВК: vk.com/id41556
          [/color]
          Ответить
      • Я бы сказал не "быстрее пойдет", а "только половину" пройдет.

        P.S. for(; lcd_str_remains > 0;) пусть догадываются.
        Ответить
        • А вдруг здесь выравнивание текста по центру, тогда как раз перед текстом нужно вставить только половину пробелов? Ну а вдруг?
          Ответить
      • Ну да, в этом и баг был.
        А стек там (это PIC16) настолько ограничен, что приходится функции заменять на макросы (убогий компилятор еще и не умеет инлайнить).
        Ответить
        • Ты крут, братиш.
          Ответить
          • Я АНДРЕЙ-ГЕЙ, ИЩУ НЕМАНЕРНОГО ПАРНЯ ИЗ ПИТЕРА ДЛЯ СЕКСА БЕЗ ОБЯЗАТЕЛЬСТВ НА ОДИН-ДВА РАЗА. ЛЮБЛЮ НОСИТЬ ЖЕНСКОЕ БЕЛЬЕ.
            [COLOR=BLUE]СОСУ ХУИ[/color][COLOR=BLACK]ДАЮ В ЖОПУ[/color][COLOR=GREEN]ДЕЛАЮ МИНЕТЫ[/color][COLOR=RED]
            ПИШИТЕ, ЗВОНИТЕ: 79046468333. СТРАНИЦА В ВК: vk.com/id41556
            [/color]
            Ответить
        • Круто, вы по коду определяете микроконтроллер, научите, как?
          Ответить
          • Это элементарно, Ватсон. Он сам и запостил этот гк.
            Ответить
    • эл эс де
      Ответить
      • Я АНДРЕЙ-ГЕЙ, ИЩУ НЕМАНЕРНОГО ПАРНЯ ИЗ ПИТЕРА ДЛЯ СЕКСА БЕЗ ОБЯЗАТЕЛЬСТВ НА ОДИН-ДВА РАЗА. ЛЮБЛЮ НОСИТЬ ЖЕНСКОЕ БЕЛЬЕ.
        [COLOR=BLUE]СОСУ ХУИ[/color][COLOR=BLACK]ДАЮ В ЖОПУ[/color][COLOR=GREEN]ДЕЛАЮ МИНЕТЫ[/color][COLOR=RED]
        ПИШИТЕ, ЗВОНИТЕ: 79046468333. СТРАНИЦА В ВК: vk.com/id41556
        [/color]
        Ответить

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