- 1
- 2
- 3
- 4
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−47
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
в догонку к http://govnokod.ru/19968
http://www.tutorialspoint.com/c_standard_library/c_function_qsort.htm
Переполнение знаковых целых чисел - не, не слышал
j123123 14.05.2016 12:11 # 0
inkanus-gray 14.05.2016 13:42 # +2
j123123 14.05.2016 13:48 # 0
guest 14.05.2016 13:52 # +2
А то иш, если с колокольни поп сказал, значит надо в это верить.
3_dar 14.05.2016 19:39 # +1
inkanus-gray 14.05.2016 21:30 # +1
j123123 14.05.2016 21:37 # +1
http://melpon.org/wandbox/permlink/O2t478eLe4szylSV - НЕВЫРОВНЕННОСТЬ УКАЗАТЕЛЕЙ вполне возможна, если например сортируем какой-нибудь массив из структур, которые плотно упакованы. Таким образом, указатель на int может быть не кратен 4 (если у нас 4-байтный инт) и на некоторых архитектурах будет жопа. Так что эту поебень надо заменить на memcpy, вот так:
При вычитании там может переполнится в минусах, это будет во-первых UB, а во-вторых даже если бы это было не UB (т.е. если б отняв единицу от INT_MIN мы б по стандарту получили бы значение INT_MAX и чтобы стандартом было закреплено что тут точно two's complement используется) то получилась бы все равно хуита, например такое сравнение INT_MIN с единицей показало бы, что единица МЕНЬШЕ чем INT_MIN, что естественно является полнейшей хуитой. Таким образом, надо сделать:
или
bormand 14.05.2016 21:56 # +1
Не надо так делать, пожалей читателей...
j123123 14.05.2016 22:04 # +2
Это ж мое фирменное изобретение, придуманное в http://govnokod.ru/19968
kegdan 14.05.2016 22:04 # 0
inkanus-gray 14.05.2016 22:19 # 0
j123123 14.05.2016 22:23 # +1
http://dump.bitcheese.net/files/pulikej/Яша_учится_программировать1.6.jpg
http://www.programmingforkids.ru/2013/09/o-knige-dlya-detei.html
inkanus-gray 14.05.2016 22:33 # +1
j123123 14.05.2016 22:36 # +1
страница 173
inkanus-gray 14.05.2016 22:55 # 0
А также учат экмаблядству вроде сложения строк с числами:
То ли дело "PHP":
вместо более явных функций floor и ceil.
j123123 14.05.2016 23:07 # +6
inkanus-gray 14.05.2016 23:36 # 0
3_dar 14.05.2016 23:53 # +3
inkanus-gray 15.05.2016 00:04 # 0
3_14dar 15.05.2016 17:14 # +2
- Саша, ты что делаешь?
- Дерево выкапываю, математичка домашку дала - корень найти.
- Ни фига, тебе ещё повезло: Федьке она ваще сказала член на многочлен разделить. Сидит, нож точит, плачет.
kegdan 15.05.2016 18:00 # +3
3_14dar 15.05.2016 19:03 # −2
kegdan 15.05.2016 19:36 # +2
bormand 15.05.2016 20:10 # +1
Емнип, болезнь такая есть, когда анус извлекается.
kegdan 15.05.2016 20:15 # +2
3_14dar 15.05.2016 21:29 # 0
kurwa 15.05.2016 22:14 # +2
j123123 15.05.2016 11:18 # +1
или
?
1024-- 15.05.2016 11:40 # 0
Предлагаю для s, n: typeof s === 'string', typeof n === number, n >= 0, (n | 0) === n следующее определение: div = (s, n) => s.substring(0, s.length / n);
bormand 15.05.2016 11:49 # +1
1024-- 15.05.2016 11:52 # +2
P.S. Таблицы с равной шириной/длиной
bormand 15.05.2016 11:41 # 0
Блин, 1024-- опередил
> s.substring(0, s.length / n);
Да, я так и считал.
guesto 14.05.2016 23:35 # 0
bormand 15.05.2016 11:42 # +1
1024-- 15.05.2016 11:51 # 0
guesto 15.05.2016 02:18 # 0
>>петухов
на зоне чалился?
kurwa 15.05.2016 01:29 # 0
j123123 15.05.2016 10:12 # 0
1024-- 15.05.2016 10:19 # 0
Кстати, как вообще работают с такими структурами на таких нехороших архитектурах? Чтобы достать поле, его (неявно) побайтово копируют куда-то?
j123123 15.05.2016 11:03 # 0
Если же передавать адреса структур и потом из них извлекать через -> то вроде как никаких проблем быть не должно
bormand 15.05.2016 10:41 # 0
j123123 15.05.2016 10:46 # 0
bormand 15.05.2016 10:47 # +2
j123123 15.05.2016 11:04 # +2
bormand 15.05.2016 11:42 # +1
Если из-за нехватки ОЗУ приходится ломать alignment полей в структурах... То это уже embedded какой-то.
kurwa 15.05.2016 10:52 # 0