- 1
while((*dst++ = *src++));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−47
while((*dst++ = *src++));
двойные скобки, чтоб заткнуть ворнинг
warning: suggest parentheses around assignment used as truth value [-Wparentheses]
govnokod3r 08.07.2016 02:19 # 0
j123123 08.07.2016 02:26 # 0
bormand 08.07.2016 02:32 # +1
j123123 08.07.2016 02:38 # 0
inkanus-gray 08.07.2016 12:26 # 0
В Паскале, например, это важно, потому что в нём byte и char — это принципиально разные типы и для преобразования из одного в другой нужен явный каст.
Antervis 08.07.2016 13:03 # 0
defecate-plusplus 08.07.2016 13:10 # 0
inkanus-gray 08.07.2016 13:17 # 0
guesto 08.07.2016 03:59 # +16
--заткнись, ворнинг!
Psionic 14.07.2016 20:50 # 0
CHayT 14.07.2016 21:19 # +1
Если царь превратится в опасного кусачего зомби, я, кажется, знаю, как спастись. Надо пропатчить линух, чтобы он мапил страницу с нулевым адресом в RAM, а не сегфолтил. На таком линуксе не будет работать сишкин стандарт -- получится ОС, куда он забраться не сможет никогда!
bormand 14.07.2016 21:23 # +3
Или трансляция число <-> указатель не implementation-defined? Лень открывать стандарт...
CHayT 14.07.2016 21:26 # +2
bormand 14.07.2016 21:27 # +4
CHayT 14.07.2016 21:32 # +3
bormand 14.07.2016 21:30 # +1
Класс! Т.е. можно сделать реализацию сишечки, в которой числа бесполезно кастовать в указатели, т.к. всегда получается какой-нибудь NULL, который крашится при разадресации. Ну и при обратном касте всегда возвращать 0.
Ибо нехуй.
Soul_re@ver 14.07.2016 21:38 # 0
dxd 15.07.2016 07:08 # 0
Bobik 15.07.2016 00:52 # 0
Но null pointer dereference -- это UB. Почему это B не может быть возвратом числа 0x6c6f6c7069647229?
dxd 15.07.2016 07:07 # 0
bormand 15.07.2016 07:08 # 0
guest 15.07.2016 07:51 # +1
Soul_re@ver 15.07.2016 10:23 # +2