- 1
printf("%c%c%c%c",a,*(&a+1),*(&a+2),*(&a+3));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+14.2
printf("%c%c%c%c",a,*(&a+1),*(&a+2),*(&a+3));
выводим long int побайтово в бинарном виде :)
Однозначно не говнокод. Пусть автор поста #245 покажет, как правильно, и что-б не в 10 строк кода, а мы посмеемся
Говно заключается в том, что это и не должно работать. в этом месте
&a+1
к адресу a (если оно long int) прибавляется не 1, а sizeof(long int), то есть 4.
В результате на экран выводится мусор. Так-то!
Если выставить выравнивание по 1 байту, а не по 4, тогда будет работать.