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

    +14.2

    1. 1
    printf("%c%c%c%c",a,*(&a+1),*(&a+2),*(&a+3));

    выводим long int побайтово в бинарном виде :)

    Запостил: guest, 22 Декабря 2008

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

    • а говно где?
      Ответить
    • Говногость2:
      Однозначно не говнокод. Пусть автор поста #245 покажет, как правильно, и что-б не в 10 строк кода, а мы посмеемся
      Ответить
    • P.S. пля... говнокапча -- только с 4-ой попытки ввел корректно
      Ответить
    • Капитан Очеви:
      Говно заключается в том, что это и не должно работать. в этом месте
      &a+1
      к адресу a (если оно long int) прибавляется не 1, а sizeof(long int), то есть 4.
      В результате на экран выводится мусор. Так-то!
      Ответить
    • Max-xaM:
      Если выставить выравнивание по 1 байту, а не по 4, тогда будет работать.
      Ответить
      • Выравнивание, выставляемой опцией компилятора, влияет только на расположение полей в структурах. Хоть какое выравнивание ставь, оно не повлияет на правила адресной арифметики. Так что не надо входить в заблуждение и вводить за собой туда людей.
        Ответить

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