Няшная / Говнокод #245 Ссылка на оригинал

0

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

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

Запостил: guest guest, (Updated )

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

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

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

Где здесь C++, guest?!

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


    8