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

    +70.8

    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
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    lseek( h, headerSize+0x500, SEEK_SET );
    	if( _read( h, &buf, sizeof buf ) != sizeof buf )
    		goto __read_error;
    
    	for( int i = 0; i < NUM_EL(sig); ++i ) {
    		if( *(long*)&buf[sig->offs] != *(long*)sig->str ) {
    __wrong_format:
    			message( .... );
    			_close( h );
    			return FALSE;
    		}
    	}
    	if( *(long*)&buf[0x2C] != *(long*)"_TAG" ) {
    		message( .... );
    		_close( h );
    		return FALSE;
    	}
    	if( *(long*)&buf[0x32] != *(long*)"_VER" )
    		goto __wrong_format;
    
    	*platform = *(ushort*)&buf[0x30];
    	if( ver ) {
    		long verOffs = headerSize + ((ulong)(*(ushort*)&buf[0x38]) << 4) + *(ushort*)&buf[0x36];
    		lseek( h, verOffs, SEEK_SET );
    		if( _read( h, ver, sizeof(float) ) != sizeof(float) )
    			goto __read_error;
    	}
    	_close( h );

    Нужно было посмотреть, как делается одна вещь, залез в исходники некоторого старого __С++__(!!!!!!!!!!!!!!)(так что не надо "где здесь с++"=) ) проекта, там классы и все, как положено =)
    Причем писал не школьник, а взрослый дядька, у которого опыта больше, чем у меня сознательной жизни(ну это я образно=) ) Я до сих пор пребываю в состоянии культурно-эстетического шока =)

    Запостил: ISith, 21 Января 2010

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

    • очень нравится расположение метки __wrong_format:
      Ответить
    • готы тоже супер
      Ответить
    • *(long*)&buf[0x2C] != *(long*)"_TAG"

      なに ???
      Ответить
      • 分からない、でもちょっと怖いんです
        Ответить
      • Ха. Ха.
        Ответить
      • зачетку в студию.
        Ответить
      • Ничего сложного. Берём 4 байта из буфера, кастуем к лонгу Справа так же. Сравниваем.
        Ответить
        • А у меня sizeof(long)==8. А в коде даже ассертов нет. Говнюк автор-то.
          Ответить
          • Да не, код чисто под винду и только в vs, тут никаких траблов, но с последним предложением на 100% согласен =)
            Да и вообще, я когда просмотрел весь его проект мельком (а там не один десяток тысяч строк, а навскидку гораздо больше сотни), у меня в голове вертелось до конца дня "ебаный стыд, еебаный стыыд.."
            Ответить
    • Мама! Я в панике! Сначала поржал, потом стал ужасаться...
      Ответить
    • Где здесь С++?
      Ответить
      • ++i
        Ответить
        • В Си этого нет? O_o
          Ответить
          • Опять сарказм не прошел. Ок, буду Шелдоном.
            Сарказм!
            Ответить
            • Аааа... В С++ можно только char C; С++;
              Ответить
              • где скачасть чистый си чтоб без наворотов и расширений, я хочу всё проверить
                Ответить
                • В vs создай проект пустой, добавь туда main.c и в настройках файла принудительно укажи компилировать как чистый си
                  Ответить
                • пошарь на торрентс скорее пока не закрыли!!11
                  Ответить
        • Точно!
          Настоящие апологеты C++ знаки + расставляют везде, от души!
          И если надо одной переменной присвоить значение другой, то делают так:
          i=-_++; _=-i++; i=-i; i++;
          Ответить

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