- 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 побайтово в бинарном виде :)
guest 24.12.2008 02:46 # 0
guest 26.12.2008 14:56 # +2
Однозначно не говнокод. Пусть автор поста #245 покажет, как правильно, и что-б не в 10 строк кода, а мы посмеемся
guest 26.12.2008 14:57 # +1
guest 10.01.2009 01:24 # 0
Говно заключается в том, что это и не должно работать. в этом месте
&a+1
к адресу a (если оно long int) прибавляется не 1, а sizeof(long int), то есть 4.
В результате на экран выводится мусор. Так-то!
guest 16.06.2009 21:01 # −3
Если выставить выравнивание по 1 байту, а не по 4, тогда будет работать.
guest 14.10.2009 15:54 # +2