М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 16 апреля 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

78 Кб, 792x1023
C Programming Language #40 /clang/ # OP 20 фев, 05:19 1351181 В конец треда | Веб

Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/ или https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит [​i​] или ∗.

Что читать:

- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (он же C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)
- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- man/Dash/zealdocs

Чем компилировать:

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 2017 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.
- TCC: очень маленький компилятор с багами и поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.

Что еще почитать:

http://c-faq.com/
FAQ из comp.lang.c. Древний, но все еще актуален.

Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)
Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.

Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)
"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.

Ben Klemens "21st Century C: C Tips from the New School" (2012)

Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)

Stephen G. Koch@n "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)
Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

Прошлые треды:

- №37: https://arhivach.ng/thread/414099/
- №38: https://arhivach.ng/thread/419611/
- №39: https://arhivach.ng/thread/423396/

Ответы5421157893586445864862058

2 20 фев, 05:31 2 1351183

Буду первым, как в школе 21.

Ответы5118457605

3 20 фев, 05:54 3 1351184

>>1351183
>первым
А теперь глянь на номер поста

Ответы51186

4 20 фев, 07:18 4 1351186

>>1351184
Учи мемы, чтобы не быть баттхертом.

74 Кб, 600x600
5 20 фев, 15:45 5 1351358

Пацаны, есть адекватный алгоритм по созданию пятнашек на сишечке? Вообще с чего начать, хочу сделать сам для курсача, в гугле нашел уже готовый код, но я хочу понять и сделать сам.
В принципе, что гуглить? Мб в каких-то книжках алгоритмы есть?

Ответы5139651419

6 20 фев, 17:04 6 1351396

>>1351358
Что конкретно вызывает вопросы?

Ответы514195143151437

8 Кб, 668x331
7 20 фев, 17:36 7 1351419

>>1351396
>>1351358
В общем, ожидая твоего ответа, успел сам уже склепать.
https://pastebin.com/7uYq3NqH
Никаких сторонних либ. (А код впрочем все равно говно)

Ответы51432

8 20 фев, 17:55 8 1351431

>>1351396
Сам алгоритм создания программы, с чего начать, как действовать, то что создать массив 4x4 и заполнить его 15 случайными числами я понимаю, а на счет реализации хз.

Ответы5143751473

9 20 фев, 17:55 9 1351432

>>1351419
Можешь описать свои действия, алгоритм там, вся хуйня, хочу сам попробовать со своим кодом

10 20 фев, 18:02 10 1351437

>>1351431
>>1351396
плюс еще вызывает вопросы одна вещь, расставлены числа в рандомном порядке и одна свободна, то есть перемещать число можно только на свободную позицию.

Ответы51443

9 Кб, 668x331
11 20 фев, 18:16 11 1351443

>>1351437
Ля, совсем правила забыл. Перепилил. Только тут ты указываешь, куда смещается ноль (свободная позиция), но это не критично.
https://pastebin.com/9uhB2wiF

Как делал.
Вспомнил правила (плохо вспомнил).
Создал игровое поле. Подумал, как его заполнить. Решил не заморачиваться, а тупо по порядку поставить числа и затем случайные пары поменять местами 8 раз. Реализовал.
Далее написал отладочный вывод поля. Проверил.
Решил не заморачиваться с пользовательским вводом, и сделал быстро и на отъебись. Потом прикрутил сдвиг в зависимости от команды. Упихал все это в цикл. Написал проверку на конец игры. Если конец - цикл завершается.

Ответы5145051496

12 20 фев, 18:25 12 1351450

>>1351443
Спасибо, бро. Попробую. Если что-то непонятно будет еще поспрашиваю , ты не против?

13 20 фев, 18:58 13 1351473

>>1351431
Создаешь массив и делаешь функции для перемещения чисел в этом массиве.
Понятное дело что сначала надо разобраться с алгоритмом, т.е прикинуть куда что и как можно двигать. В каких случаях можно двигать, а в каких нельзя. Т.е сделать логику алгоритма пятнашек в максимально простом и упрощённом виде.
А дальше уже думать над его интеграцией в язык и принять соответствующие поправки в алгоритм и провести оптимизацию с учётом возможностей языка. Может быть какие-то моменты будут труднореализуемые, а какие-то наоборот реализовать будет очень просто.

При составлении любого алгоритма сначала его надо продумать на бумаге, без языка. Не надо зацикливаться на том что умеет язык, а что не умеет. Придумай законченный алгоритм и логику управления. Если ты изучал дискретные автоматы в универе, то примерно с таким же ходом рассуждений и строй алгоритмы. Чтобы они были максимально простые. А уже потом думай над реализацией. Если логика алгоритма сделана правильно, то и реализация будет несложной.

Ответы51481

14 20 фев, 19:12 14 1351481

>>1351473
>Если ты изучал дискретные автоматы
Если не изучал, с чего начать? Можно ли вкатиться в алгоритмы сразу по Седжвику или нужно начинать с автоматов?
Заканчиваю Прату читать, хочу ещё глубже.
я другой анон

Ответы51517

15 20 фев, 19:34 15 1351496

>>1351443
Имей в виду, что ты не можешь просто заполнить поле рандомными числами.
У поля есть алгебраическая чётность, и если ты поменяешь две позиции местами, то их невозможно будет собрать, т.к. чётность поменяется.

16 20 фев, 19:59 16 1351517

>>1351481
Автоматы не надо. Это мне проще так просто. Если не изучал, то и не надо.
Тебе с обычной дискретной математики лучше

Ответы51620

17 20 фев, 22:33 17 1351603

Если рекурсия занимает больше места в памяти, то почему бы не отказаться от них и использовать цикл?

Ответы5160651607

18 20 фев, 22:45 18 1351606

>>1351603
Некоторые алгоритмы значительно проще и понятней в рекурсивной записи. Если есть увереность что ресурсов хватит что можно спокойно рекурсии навернуть и не ебаться пытаясь придумать итеративный алгоритм (не всегда просто). Можешь, к примеру, попробывать quick sort реализовать итеративно. Сложного, конечно, ничего нет, но суть проблем можно уловить.

Ответы51615

19 20 фев, 22:47 19 1351607

>>1351603
Проблема не только в памяти, интерактивные алгоритмы работают, как минимум не медленнее, а чаще всего и быстрее.

Ответы51608

20 20 фев, 22:47 20 1351608

>>1351607
Итеративные*
блядский т9
селф-фикс

Ответы51621

21 20 фев, 22:54 21 1351612

Тут что-то про рекурсию должны кодеры в функциональщине раскидать. Ведь у них нет циклов как таковых. Алсо вопрос. Любой ли рекурсивный алгоритм можно переписать итеративно? И наоборот соотвественно.

Ответы51616

22 20 фев, 22:56 22 1351615

>>1351606
Понятное дело, что итеративный будет выглядеть более громоздким. Но он же будет и более эффективным. Рекурсивный выглядит красuво, но программирование ведь идёт ради результата, а не процесса.

Ответы516225162351634

23 20 фев, 22:58 23 1351616

>>1351612
1. Нет.
2. Да.

24 20 фев, 23:02 24 1351620

>>1351517
Спасибо.
>обычной дискретной математики
Не, ну так-то у меня техвышка есть, просто хочу исполнить мечту детства и вкатиться в си.

136 Кб, 1120x977
25 20 фев, 23:03 25 1351621

>>1351608
>2019
>блядский т9

Ответы51624

26 20 фев, 23:03 26 1351622

>>1351615
> Но он же будет и более эффективным
Нет. Пруф: алгоритмы умножения Карацубы и Штрассена.
К тому же, с оптимизацией хвостовой рекурсии рекурсивный алгоритм эквивалентен итеративному.

Ответы51626

27 20 фев, 23:04 27 1351623

>>1351615
>ради результата, а не процесса
Ты не лишпер. И даже не линуксоед.

28 20 фев, 23:05 28 1351624

>>1351621
На ведре куча клав, в том числе с коррекцией ввода.

29 20 фев, 23:05 29 1351625

Как число(например 120) из массива int перенести в массив char?
И вообще как записать число 120 в строку?

Ответы516285166051665517725188553586

30 20 фев, 23:06 30 1351626

>>1351622
>с оптимизацией хвостовой рекурсии рекурсивный алгоритм эквивалентен итеративному
Осталось только объяснить зачем в 99.9% задач использовать хвостовую рекурсию, если итеративный эквивалент уже есть.

Ответы51689

31 20 фев, 23:08 31 1351628

>>1351625
ВНЕЗАПНО рекурсивно, запись начинай с последней цифры.

Ответы5162951885

32 20 фев, 23:10 32 1351629

>>1351628
Блядь, не то имел ввиду.
Начинай обрабатывать число с конца, и тогда:
>запись начинай с последней цифры.

33 20 фев, 23:15 33 1351634

>>1351615
В большинстве случаев результат это красивый и быстрый в написании и понимании код, а не ебля с бессмусленной эффективностью. Это если профилирование покажет что код сликом медленный (ну или ты точно знаешь что пришешь критический к времени выпонения код) тогда уже расчехляешь эффективность. Проблема скорее в том чтобы понимать когда рекурсия наглядней - рекурсивные алгоритмы не всегда проще итеративных. Плюс идиоматика - если в конретном языке/проекте все привыкли ебашить циклами, то совать рекурсию стоит очень осторожно.

Ответы51664

34 20 фев, 23:59 34 1351660

>>1351625
Дать чару указатель туда же куда и инт? Если не получится, прибавь sizeof(int)-1.
Не получится ну и хер с ним.

Ответы51885

35 21 фев, 00:05 35 1351664

>>1351634
Просто к тому что вот если писать какие-то функции для небольших программ и говорить, мол, сделаю рекурсию, ведь памяти дохуя это одно. Но когда ты используешь это же самую функцию в большом проекте где эта рекурсия часто всплывает, да ещё есть и куча других рекурсивных алгоритмов, то это в конечном итоге экспоненциально увеличивает потребление памяти.
Вон, многие жалуются на то что их баузер жрёт много памяти, может проблема растёт отсюда? Или другие программы.

Я могу конечно хуйню нести, так как вещаю со своей колокольни, но мне это видится именно так

36 21 фев, 00:07 36 1351665

>>1351625
Вообще есть int2char или что-то в этом роде.

Ответы5169251885

37 21 фев, 00:42 37 1351689

>>1351626
Потому что его может и не быть. Например цепочка функций, каждая из которых вызывает следующую. Переписать итеративно может быть сложно, а тут компилятор всё сам заинлайнит, увидит хвостовую рекурсию и оптимизирует её. Или нет.

38 21 фев, 00:49 38 1351692

>>1351665
int2char в Си называется snprintf.

Ответы51750

39 21 фев, 05:04 39 1351750

>>1351692
Наркоман?
int i = 5;
char c = i; // int2char лол

Ответы51765

40 21 фев, 08:09 40 1351765

>>1351750
Ты, конечно, хитрожоп, но он не получит от такого ожидаемого. Поскольку 5 символ в таблице символов != '5'. Тогда уж i+'0' писал бы.

Ответы51773

41 21 фев, 08:28 41 1351772

>>1351625
>Как число(например 120) из массива int перенести в массив char?
>И вообще как записать число 120 в строку?

Если с насыщением - то chararray = (char)(intarray>SCHAR_MAX?SCHAR_MAX: (intarray<SCHAR_MIN?SCHAR_MIN: intarray));

Ответы5178851885

42 21 фев, 08:42 42 1351773

>>1351765
>ожидаемого
>char
Неужели? А если подумать?

43 21 фев, 10:16 43 1351788

>>1351772
Никогда не понимал, зачем так использовать тернарныйоэ оператор, получается же громоздкая ебота, легче на ифах написать и будет намного более понятно и красиво.
если у тебя это один тернарный оператор — Окей, но когда у тебя один вложен в другой это ужас.

Ответы5184751871

44 21 фев, 12:51 44 1351847

>>1351788
> но когда у тебя один вложен в другой это ужас
На самом деле, тернарный оператор из-за его приоритета красиво чейнится, и все отлично читается. А вот так как у анона ставят скобки от незнания приоритетов, и такое действительно читать сложно.
x = (expr1) ? res1 : (expr2) ? res2 : (expr3) ? res3 : res4;

45 21 фев, 13:29 45 1351871

>>1351788
Не обращай внимания. Это называется ребенок-сосунок нашел новую игрушку, а возюкает её весь день подряд, всю обслюнявив от радости. Перебесится и пройдет или нет. но это уже терминал

46 21 фев, 13:38 46 1351875

Прочитал чутка про графы и решил сделать свой.
https://pastebin.com/tRAaADPb
Насколько всё плохо?

3 Кб, 321x196
47 21 фев, 13:56 47 1351885

>>1351628
>>1351660
>>1351665
>>1351772
1)Делал через itoa, в итоге получилось только с цифрами(1-9), а, например, вместо числа 10...19 выдает 1, вместо 20...25 - 2.
2)Делал через функцию, возвращающую указатель делением на 10, выдает тоже самое(пикрелейтед)
1) https://pastebin.com/6eB2U82V
2) https://pastebin.com/nD0SwttJ
В чем проблема?
анон >>1351625

Ответы519015190452108

48 21 фев, 14:06 48 1351901

>>1351885
Куда ты лезешь? Си это не скрипт, а низкоуровневый язык для обращения (фактически) напрямую к железу. Сначала разберись что такое простые числовые переменные и указатели, как работает память, как они в ней представлены. В строки лезь только потом, потому что строки это навороченное предыдущее, вдобавок с магией. Ты же лезешь в алгебру не понимая арифметику.

Ответы51905

49 21 фев, 14:10 49 1351904

>>1351885
>массив указателей вместо многомерки
откуда к нам пожаловал?

50 21 фев, 14:11 50 1351905

>>1351901
А что не так?

Ответы51913

51 21 фев, 14:19 51 1351913

>>1351905
Можно вообще написать так
int a;
char b;
b = a;
Компилятор будет ругаться, но операцию сделает. А ругается потому что в инт это 4 байти, а чар 1 байт и часть числа ты потеряешь, если в инте число больше 1 байта.

Ответы52158

52 21 фев, 18:38 52 1352108

>>1351885
char b[4] = "";
itoa(120, b, 10);
printf("%s\n", b);

В чем проблема JS мастер или питон гуру?

53 21 фев, 19:38 53 1352158

>>1351913
А почему этот вариант не проходит? Зачем лишние телодвижения с битами делать? Вы ж всё равно не ужмёте 4 байта в 1.

54 21 фев, 19:59 54 1352173

Пытаюсь реализовать графы через структуру.
Есть две структуры типа вершина и ребро. Правильно ли будет, если в структуре вершины сделать указатель на ребро с которым он соединён? А в структуре ребра сделать указатель на вершину, к которому он идёт?
Или это пустая трата времени и надо сделать проще?

Ответы52203

55 21 фев, 21:25 55 1352203

>>1352173
Пустая трата времени, кроме случаев когда у тебя с ребром связана куча информации и тебе необходимы манипуляции над ними по типу взять конкретное ребро в одной части графа и переместить в другую. Но мне сложно представить где это может понадобиться. Алсо при таком подходе твое ребро получается просто специфическим классом вершины - такое ребро это вершина которая может быть связана только с двумя "настоящми" вершинами (олин радитель и один потомок).

Ответы52281

56 21 фев, 23:07 56 1352281

>>1352203
Я делаю так.
В вершине указатель показывает на адрес исходящих ребер. В ребрах - адреса куда они ведут. Т.е в принципе списочная структура получается.
Можно ребра не делать вообще, а показывать связи только между нодами. И веса там же делать, но это то же самое получается почти как по мне.
В общем не знаю. Таким способом просто хочу закрепить навыки применения разных фич языка. Но как дело доходит до реализации различных алгоритмов для модели, то тут пока ещё всё не очень.

Ответы52298

57 21 фев, 23:39 57 1352298

>>1352281
> но это то же самое получается
Тоже самое, только без лишней сущности (ребра). Делая ребро отдельным ты ничего не выиграваешь, только лишнийуказатель заводишь.
>И веса там же делать
Вес ребра это по факту свойство ноды. Это не ребро такое охуенное что у него такой вес. Это нода такая что у нее есть ребро с таким-то весом.
Выделять ребра в отдельную сущность может быть смысл если у тебя с ребром связано много дополнительной информации, и количество ребер у каждой ноды может самое разное. Тогда ты заводишь в ноде массив и туда складываешь нужное количество ребер (ссылок на них). Что-то типа префиксного дерева.

8 Кб, 871x187
58 22 фев, 02:53 58 1352368

Придумал для себя шпаргалку, лол.

Ответы52420

59 22 фев, 09:45 59 1352420

>>1352368
Да это и так легко запомнить.
Ещё вот
int m = malloc(5 sizeof m);
int n[5];
Эти строчки эквивалентны.
И вот ещё
(m+3) или m[3]
n[3] или *(n+3)
тоже эквивалентны

Ответы52421524475255752682

75 Кб, 1080x2160
60 22 фев, 09:49 60 1352421

>>1352420
Звёздочки потерялись.

Ответы5248152557

61 22 фев, 10:57 61 1352447

>>1352420
Неэквивалентны, выделять память на стеке и на куче это не одно и тоже.
Алсо:
Можно и так, но не нужно, хы.
n[3]=★(n+3)=★(3+n)=3[n]

Ответы52677

62 22 фев, 12:04 62 1352481

>>1352421
Разве не так?
int m = (int)malloc(5 * sizeof(int));

Ответы5248452675

63 22 фев, 12:07 63 1352484

>>1352481
Каст в си необязателен, в этом случае вообще не нужен.
В плюсах обязателен.

Ответы52559

64 22 фев, 14:54 64 1352557

>>1352420
>>1352421
Этот sizeof явно из какого-то другого языка, далекого от Си.

Ответы5266152830

65 22 фев, 14:58 65 1352559

>>1352484
Какой смысл в 2019 использовать си? Разве что под микроконтроллеры пишешь, но там нет выбора, а где он есть, нет смысла себя ограничивать.

Ответы525715261052678527235275153741

818 Кб, 1280x720
66 22 фев, 15:06 66 1352562

Си без знания плюсов, сейчас актуален? И будет ли дальше таковым?

Выкатываюсь из бэка на питоне в низкоуровневое и пытаюсь понять куда грести

Ответы52865

67 22 фев, 15:11 67 1352565

В ассемблере не разбираюсь. if(x) func(); и x && func(); --тождественно?

Ответы5260552661

68 22 фев, 15:28 68 1352571

>>1352559
>под микроконтроллеры пишешь, но там нет выбора
Жава.

Ответы52572

69 22 фев, 15:29 69 1352572

>>1352571
>Жава
Rust

70 22 фев, 16:27 70 1352605

>>1352565
Net.

Ответы52611

71 22 фев, 16:37 71 1352610

>>1352559
Собственно, почему бы и нет?

72 22 фев, 16:38 72 1352611

>>1352605
А подробнее, интересно просто.

73 22 фев, 17:53 73 1352661

>>1352557
А что не так с ним? Скобки не обязательны же, просто желательны для читаемости.

>>1352565
> тождественно?
Нет. Второе - выражение, и у него есть значение. Если возьмешь tcc или gcc с -O0, то они будут считать && (в том числе конвертить результат вызова функции в int), чтобы сразу после этого его тупо выбросить. Хотя нормальные компиляторы соптимизируют, конечно. Ну и, естественно, если функция возвращает void, то второй варинт вообще не скомпилируется.

74 22 фев, 18:10 74 1352675

>>1352481
Это устаревший вариант. Необязательно так делать.

75 22 фев, 18:12 75 1352677

>>1352447
Но ведь на cs50 сказали что одно и то же. Да и массивы в си это указатель ведь с выделенным диапазоном памяти.

Ответы52682

76 22 фев, 18:13 76 1352678

>>1352559
Обучение.
Микроконтроллеры.
Да и вообще полезно знать.

77 22 фев, 18:21 77 1352682

>>1352420
Вообще неэквивалентны. Садись, два.

>>1352677
Не сказали, говорили о другом, просто ты неправильно понял.

Ответы52686

78 22 фев, 18:29 78 1352686

>>1352682
Но ведь если я выделю таким образом память, то смогу обращаться к нему через m[0] или m[2], т.е обращаться к любому его члену. И проводить те же самые операции как если бы я объявил его в виде массива.
Так почему не эквивалентны? Где можно увидеть разницу?

Ответы526885269453303

79 22 фев, 18:32 79 1352688

>>1352686
Пока что единственное отличие то что дебагер показывает массив как массив, а указатель только первый элемент.

80 22 фев, 18:37 80 1352694

>>1352686
Ладно, понял что в первом случае делается куча, а во втором стек. Их расположение разное, но в целом работают почти одинаково.

Ответы5283953110

81 22 фев, 19:34 81 1352723

>>1352559
Сынок, будущее за робототехникой, так что затолкай свой скриптовой язык глубоко себе в анал и пиздуй на хуй отсюда-->

Ответы52734

82 22 фев, 19:56 82 1352734

>>1352723
Но ведь роботов программируют на питоне и джаве...

Ответы5274352825

83 22 фев, 20:16 83 1352743

>>1352734
Один робот на джаве уже уебался в стену.

Ответы52770

84 22 фев, 20:31 84 1352751

>>1352559
В хард рил тайме (авто, авиация, медицина и тп) запрет на динамическое выделение памяти.

Ответы52772

85 22 фев, 21:04 85 1352770

>>1352743
Ну и что, зато джава не тормозит.

Ответы52774

86 22 фев, 21:05 86 1352772

>>1352751
В авто все пишут на джаве. В авиации и критических областях используют всякие Ады, на дырявой сишке никто в здравом уме руками такое писать не будет.

Ответы52776

87 22 фев, 21:13 87 1352774

>>1352770
При 16 гб памяти подтормаживает меньше, согласен.

Ответы52840

88 22 фев, 21:14 88 1352776

>>1352772
>пук

89 22 фев, 22:43 89 1352809

А как хранить данные, что бы данные в программе после обработки моих функций оставались в физическом состоянии навсегда?
То есть не в ОЗУ на 1 процесс, а как база данных. Только через File?
Но как тогда хранить разные типы данных?

Ответы52811

90 22 фев, 22:48 90 1352811

>>1352809
> Но как тогда хранить разные типы данных?
типданных данные;
fwrite(&данные, sizeof(данные), 1, fp);

Ответы52815

91 22 фев, 23:00 91 1352815

>>1352811
это будет как база данных?

Ответы53740

92 22 фев, 23:43 92 1352825

>>1352734
2жды иди на хуй Маня!

93 22 фев, 23:45 93 1352826

Опытные товарищи, утешьте советом. У меня дипломная работа по булевым сетям (нахождения аттрактора). Стоит ли катать такое дело на любимой Сишечке, или себе дешевле вспомнить кресты?

Ответы5282752828

94 22 фев, 23:46 94 1352827

>>1352826
Я бы выбрал си. А ты как хочешь.

95 22 фев, 23:46 95 1352828

>>1352826
нахождениеЕ аттракторОВ

sage 96 22 фев, 23:49 96 1352830

>>1352557
Что с ним не так?

97 23 фев, 00:10 97 1352839

>>1352694
Ага, почти одинаково (за исключением того, что между ними нет ничего общего). Читай дальше, k&r скачай.

Ответы52928

98 23 фев, 00:13 98 1352840

>>1352774
Сколько раз объяснять, что джава и джаваскрипт - это РАЗНЫЕ ЯЗЫКИ.

Ответы52841

99 23 фев, 00:14 99 1352841

>>1352840
Тогда почему у них так много ощих буковок в названии?

Ответы52849

100 23 фев, 00:59 100 1352849

>>1352841
Язык программирования, как и любую другую технологию, можно рассматривать минимум с двух сторон: "сверху-вниз" (лингвистика, т.е. собсно язык, синтаксис, вот это все) и "снизу-вверх" (реализация). Виртуальная машина, на которой запускается байт-код, и браузерный интпретатор, который парсит скрипт, это принципиально разные вещи, и буковки в названии тут ни к чему. Но для серьезной робототехники шо то хуйня, шо это хуйня. Виртуальная прослойка между софтом и реальной архитектурой со всякими сборщиками мусора и прочим гавном - это ни разу не про системы реального времени.

Ответы52852

101 23 фев, 01:03 101 1352852

>>1352849
Я вообще-то того джависта хотел жирно потроллить, а ты взял и всю малину испортил. Но не суть. Если ты робототехник, то поясни за аппаратную часть роботов. Какие двиганы обычно используются? Как запитываются, какие аккумы? Какая трансмиссия для двиганов используется, если используется вообще?

Ответы5285452929

102 23 фев, 01:07 102 1352854

>>1352852
далек от робототехники. Только читал Таненбаума про операционки)

103 23 фев, 02:22 103 1352865

>>1352562
Зачем тебе знание расширенного си чтобы писать на си? Да и вообще современный крест уже мало общего имеет с 89-99 стандартами сиши, вот до-диез — это да — тупо сишка расширенная

Ответы52880

104 23 фев, 04:39 104 1352880

>>1352865
>современный крест уже мало общего имеет с 89-99 стандартами сиши
Чурбан у тебя на плечах имеет мало общего с интеллектом.

11 Кб, 619x600
105 23 фев, 08:39 105 1352909

Что делает данный код? Не могу понять.

Ответы52938529395294053724

106 23 фев, 09:43 106 1352928

>>1352839
Узнал что к стеку обращение идент быстрее чем к куче, плюс не факт что в куче будет ещё нужный участок памяти.
Но пока не заметил разницу когда использовал ту и другую запись. Всё ещё не понимаю в чём они так разительно отличаются, если можно и к тому и другому обращаться через m[n].
Если нужен динамический массив, то использую маллок, плюс ему можно делать реаллок в случае чего и прочее, что нельзя делать с обычным массивом.

Ответы53092

107 23 фев, 09:54 107 1352929

>>1352852
У меня диплом бакалавра и вот в этом году будет диплом магистра по специальности мехатроника и робототехника.
Но всё ещё не знаю про сабж. Единственное что помню из курса связанное с роботами это расчет кинематики через матричные преобразования.
Думаю там используются синхронные движки с постоянным магнитом pmsm или как их там. Ну или другие, с возможностью регулирования положения. Но точно не шаговые, даже в чпу их уже не юзают.
Каждая степень свободы регулируется собственным движком, в старых роботах типа тур-10, который стоит у нас в лаборатории, используется цепной привод, а движки стоят у основания.
На сочленениях стоят силомоментные датчики или что-то вроде этого.
Про аккумуляторы не могу ничего сказать. Судя по всему, если их и используют, то с расчетом на то что он сможет выдержать нагрузку от частотного преобразователя.

108 23 фев, 10:22 108 1352938

>>1352909
>ft
Опять со школы 21 , сукке.

Ответы53092

109 23 фев, 10:22 109 1352939

>>1352909
Очевидно, выводит комбинацию.
Комбинаторика.

110 23 фев, 10:31 110 1352940

>>1352909
до чего же всрат этот код, господа...

111 23 фев, 14:34 111 1353092

>>1352928
> обращение
Это выделение массива на стеке быстрее. А время обращения к стеку и куче одинаковое. Ну максимум первый хит в массив на куче может быть слегка дороже, но потом данные все равно в кэш попадут.

> чём они так разительно отличаются
Выделение массива на стеке - это что-то уровня sub esp,размер (одна инструкция, иногда две). Выделение массива в куче - десятки инструкций в самом лучшем случае (если у аллокатора в пуле блоков есть пустые слоты подходящего размера). Алсо, у массива на стеке и указателя на динамически выделенную область памяти разные типы, банально sizeof вернет разные размеры.

>>1352938
Вы эту школу второй тред упоминаете. Это какой-то локальный CS50 или просто урюпинская СОШ, где начали учить сишку?

Ответы53101

112 23 фев, 14:38 112 1353101

>>1353092
>Вы эту школу второй тред упоминаете
Причем тут это, чувак задания из школы шлет. Значит он там щас учится в бассейне и просит решений

113 23 фев, 14:41 113 1353110

>>1352694
Не понял, как в кучу записывать и как в стек?

Ответы53294

114 23 фев, 17:17 114 1353294

>>1353110
Я так понимаю, стек создаётся при компиляции программы. Т.е при первом запуске программы он выделяет фиксированный участок памяти для явно заданных переменных и программа не будет потреблять меньше этого диапазона. Но может потреблять больше, если мы будем выделять память в куче.

Ответы53349

115 23 фев, 17:25 115 1353303

>>1352686
Для тебя - программиста laba1 с видоса ютуба, эквивалентны. Объяснять таким бесполезно, если начнешь писать настоящие программы, сам сразу поймешь разницу, а раз не видишь, значит и нет её.

Ответы53321

116 23 фев, 17:36 116 1353321

>>1353303
Не можешь объяснить - значит сам не знаешь.

Ответы53326

117 23 фев, 17:47 117 1353326

>>1353321
Тебя еще вчера послали читать к&р, хуль ты тут мозги ебешь? Это самые основы, еще попроси объяснить тебе, что такое функция или указатель, и в ответ на резонное "пошел нахуй" возрази "не можешь объяснить значит сам не знаешь))0)"

другой

118 23 фев, 18:02 118 1353338

Поясните плез нубу, для чего в этих строках эти %c%c%c%c?
fprintf(fp_out, "DATA%c%c%c%c", 4, 0, 0, 0);
fprintf(fp_out, "%c%c%c%c", 9, 0, 0, 0);

Ответы5335053605

119 23 фев, 18:08 119 1353349

>>1353294
>если мы будем выделять память в куче.
В куче выделять это типо маллок?

Ответы53356

120 23 фев, 18:09 120 1353350

>>1353338
Ору.
Че тоже из школы "гениев"?

Ответы53353

121 23 фев, 18:13 121 1353353

>>1353350
Нет. Не надо переходить на личности пожалуйста.

Ответы53358

122 23 фев, 18:15 122 1353356

>>1353349
Да. Куча это свободная на машине оперативная память. А стек физически тоже находится в оперативной памяти, но он считается зарезервированным самой программой. Ну, как я понял.

Ответы53372

123 23 фев, 18:17 123 1353358

>>1353353
Местные "сеньоры" не могут иначе. Ввиду своей ущербности они показывают таким образом своё превосходство над другими дабы потешить чсв.

Ответы5337953401

124 23 фев, 18:38 124 1353372

>>1353356
Так как именно выдедять ту или иную? Я не допер

Ответы53400

sage 125 23 фев, 18:48 125 1353379

>>1353358
Даун, для даунов есть закреплённый тред.

Ответы53414

126 23 фев, 19:09 126 1353400

>>1353372
Когда определяешь обычную переменную например, то она находится в стеке. А когда указатель и ему прописываешь маллок, то в куче.

Ответы53406

127 23 фев, 19:10 127 1353401

>>1353358
Если человек не может нагуглить элементарных вещей, то ему не место в этом треде. Это тред про си, а не про обучение программированию детей с дефектами развития.

Ответы53414

43 Кб, 700x393
128 23 фев, 19:14 128 1353406

>>1353400
Уверен??

Ответы53411

129 23 фев, 19:20 129 1353411

>>1353406
Нет

130 23 фев, 19:22 130 1353414

>>1353379
>>1353401
Собственно, что и требовалось доказать. Оскорбления, посылы нахуй. Вот это вот всё.

Ответы534255349253578

sage 131 23 фев, 19:44 131 1353425

>>1353414
Доказал? Теперь иди на хуй.

Ответы53440

132 23 фев, 20:04 132 1353440

>>1353425
Зачем?

133 23 фев, 20:30 133 1353492

>>1353414
Двачую бля. Какие то токсичные челики тут сидят. В cpp-треде меня никто не оскорблял никогда, а тут сразу после первого же вопроса.

Ответы5350253605

sage 134 23 фев, 20:40 134 1353502

>>1353492
>В cpp-треде меня никто не оскорблял никогда
только руководствуясь принципом "не тронь говно".

Ответы53504

135 23 фев, 20:44 135 1353504

>>1353502
Чувак, извини, но ты какой то поехавший.

Ответы53527

sage 136 23 фев, 21:20 136 1353527

>>1353504
Не гори, довн.

137 23 фев, 22:19 137 1353578

>>1353414
Съеби в /soc обсуждать свои трудные отношения с обществом, тут тред о программировании на си.

138 23 фев, 22:30 138 1353586

>>1351625
int num = 10;
char byte = 0;

byte = (char) num;

139 23 фев, 23:12 139 1353605

>>1353338
> для чего в этих строках эти %c%c%c%c?
Видимо, кто-то собирался параметры для этих %с изменять динамически, чтобы в файле было DATA и 8 каких-то байт (сейчас 04 00 00 00 09 00 00 00). А если константы, как сейчас, можно было прямо в строку за-escape-ить: "DATA\0x04\x00\x00\x00\0x09\0x00\0x00\x00" и писать fwrite-ом.

>>1353492
У нас обычно тоже мирно, но иногда набегают неадекватные дети.

Ответы53676

140 23 фев, 23:55 140 1353639

Правильно реализовал стек? Для калькулятора с польской записью хочу сделать
https://pastebin.com/NS1Hb4xJ

Ответы53654

141 24 фев, 00:33 141 1353654

>>1353639
Норм, но если бы делал empty ascending, не пришлось бы инициализировать sp. И еще в Си в пустых скобках void пишут, это тебе не кресты.

Ответы53659

142 24 фев, 00:39 142 1353659

>>1353654
>Норм, но если бы делал empty ascending
В любом случае пришлось бы иметь указатель на вершину. К слову sp не нужен, если я в нулевом элементе буду хранить его, т.к туда не записывается ничего. Почему бы и нет собственною

143 24 фев, 01:02 143 1353676

>>1353605
Вот да, кстати, замечал, что чем меньше у человека опыта в какой-либо технологии / каком-либо ЯП, тем неадекватнее он себя ведет в соответствующих тредах. Речь, разумеется, идет о тех, кто в принципе позволяет себе подобное поведение.
мимо другой анон
Алсо, подкиньте, пожалуйста, годной литры по Cmake, ну или скажите, хватит ли мне "mastering cmake"? Книжка вроде относительно толстая, а времени на освоение не так много, за вечер до базового уровня подтянуть надо.

Ответы53687

144 24 фев, 01:34 144 1353687

>>1353676
> Cmake
Там недавно на швабре как раз цикл статей постили, глянь их.

Ответы53688

145 24 фев, 01:35 145 1353688

>>1353687
Благодарствую.

21 Кб, 661x80
146 24 фев, 01:46 146 1353690

Сделал последнее задание первой главы K&R; Пришлось немножко попердеть, но я справился (наверное). Делюсь решением:
https://pastebin.com/fzJWvZvM

Ответы53700

147 24 фев, 03:24 147 1353700

>>1353690
Эта задачка легко решается при помощи стека, но ты написал какой-то пиздец.

Ответы5370253835

148 24 фев, 04:45 148 1353702

>>1353700
>напишите программу проверки синтаксиса С
>какой-то пиздец
Какая задача, такое и решение. Пиздец пиздецу идеально подходит.

149 24 фев, 09:38 149 1353724

>>1352909
Выводит цифры до 789? Кому не похуй что он делает, если он выглядит как говно?
Унеси это говно отсюда и съеби в ньюфаг тред со своими задачками

150 24 фев, 10:45 150 1353735

В пизду кресты, буду писать все на Си. Рейт.

Ответы53738

151 24 фев, 10:54 151 1353738

>>1353735
Здравое решение.

152 24 фев, 10:59 152 1353740

>>1352815
Это будет "как база данных".

153 24 фев, 11:02 153 1353741

>>1352559
:)

154 24 фев, 11:48 154 1353784

Каков алгоритм печати десятичного числа из двоичного кода?

Ответы53788

sage 155 24 фев, 11:50 155 1353788

>>1353784
printf "%d" что-то там....

Ответы53795

156 24 фев, 11:56 156 1353795

>>1353788
Не, я имею ввиду как устроен printf...

Ответы53797

157 24 фев, 12:00 157 1353797

>>1353795
Вроде понимаю надо выписывать чаром, остаток от деления числа с конца на 10 и тд., но что не складывается

Ответы53801

158 24 фев, 12:16 158 1353801

>>1353797
Ебанутый? Пойди таблеток выпей.

Ответы53804

159 24 фев, 12:21 159 1353804

>>1353801
Что не так? Хочу напечатать не используя стандартный принтф, а только putchar().

Ответы53811

160 24 фев, 12:40 160 1353811

>>1353804
Тебе нужно узнать какой char соотвествует 0, какой 1 и т.д. и отправлять их, а не просто цифры 0,1 и т.д.

Ответы53819

715 Кб, 2560x1440
161 24 фев, 12:47 161 1353814

Что я делаю не так?

Ответы538325384053867

162 24 фев, 12:52 162 1353819

>>1353811
Хм, то-ли я и в правду ебанутый, то-ли меня не правильно понимают, бряк. Вот есть int= 16; (0x10) представим что нету принтф() но есть putchar(), и как мне напечатать десятичное, используя лишь эту последовательность битов.

Ответы5384053855

163 24 фев, 13:10 163 1353832

>>1353814
Там вроде нужно линковать на уровне сборки, или короче добавь в main.c include`ы getop, getch, stack

Ответы53873

164 24 фев, 13:13 164 1353834

gdfh

165 24 фев, 13:13 165 1353835

>>1353700
Ок, перепишу

Ответы53843

166 24 фев, 13:16 166 1353840

>>1353814
1) Собираешь в IDE, не научившись (видимо) собирать вручную.
2) Не видишь полного лога сборки (видимо, предыдущая вкладка?).
3) Либо не линкуешься к stack.o, либо не собирается stack.c, либо функции в stack.c объявлены как static, либо у них другие имена.

>>1353819
x = 16;
while (x) {
putchar('0' + (x % 10));
x = x / 10;
}
Только это выведет задом наперед. Можешь, например, не выводить числа сразу, а класть их в массив, и потом выводить массив с конца. Или класть в стек. Алсо, при x == 0 ничего не выведет, это тоже нужно обработать.

Ответы5387353910

167 24 фев, 13:18 167 1353843

>>1353835
Тебе прямо в задании намекнули, что полноценное решение может быть очень и очень сложным. Например:
char c[] = "test\
test";
или
#define RBRACE }
while (1) { RBRACE

168 24 фев, 13:46 168 1353855

>>1353819
Бляяя, куда ты лезешь? Это не сценарная хуйня. Вообще не лезь в подобные алгоритмы до того как узнаешь о типах данных, выкинь это нахуй. Вот нахуя тебе принтф если ты не ебешь чем отличается чар от инт? Принтф это путчар с перделками — форматированием аутпута.

Ответы53875

169 24 фев, 13:50 169 1353867

>>1353814
Написано же "неопределенная ссылка на push и pop", компилятор не знает что это такое. Ищи в каком файле эти функции и включай его в свой main.c

29 Кб, 780x498
170 24 фев, 13:53 170 1353873

>>1353832
Добавил, но тогда вообще странная фигня получается, цифры в консоли не вводятся, а стоит ввести букву сразу выдает ошибку, даже без нажатия ввода.
>>1353840
>Собираешь в IDE, не научившись (видимо) собирать вручную.
Ну, в книге эта тема не затрагивалась
> Не видишь полного лога сборки (видимо, предыдущая вкладка?).
Ты про Build log? Там написано тоже самое
>Либо не линкуешься к stack.o, либо не собирается stack.c, либо функции в stack.c объявлены как static, либо у них другие имена.
Так, что такое stack.o? Как statick ничего не объявлено, да и имена те же

Ответы539105395153954

171 24 фев, 13:54 171 1353875

>>1353855
>Принтф это путчар с перделками
Ты кретин, а он всё понимает и правильно задает вопрос, просто ленивое хуйло и не хочет сам думать/делать.

Ответы53889

172 24 фев, 14:04 172 1353889

>>1353875
Бля ты тупой или что? Сходи поскроль хедер принтфа и нахуй тоже. Принтф выводит посимвольно ВСЕ что ты в него задашь, кроме того на что ссылается %. И своего друга с глупыми вопросами тоже забери.

Ответы5391053924

173 24 фев, 14:08 173 1353897

Как скомпелировать lua в tcc? Расскажите полную последовательность действий.

Вот берем мы исходники lua https://www.lua.org/ftp/lua-5.3.5.tar.gz
Потом берем tcc http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win32-bin.zip
Что дальше делаем?

Ответы5391353937

174 24 фев, 14:18 174 1353910

>>1353873
Я не спец, но простым языком; для объединения фйлов в одну программу тебе нужно либо слинковать файлы(все кроме того где main()) при сборке в твоей IDE, либо вставляя include`ами друг в друга

>>1353889
Я и спрашивал как он печатает то что в %, int например. Этот анон >>1353840 уже помог.

Ответы53911

175 24 фев, 14:21 175 1353911

>>1353910
...ну то-есть не нужно инклудить все файлы друг в друга, можешь например в главном файле вставить нужные.

176 24 фев, 14:22 176 1353913

>>1353897
> Что дальше делаем?
дальше делаешь make linux test
Если у тебя какой-то популярный дистрибьютив, и не нужны какие-то необычные флаги (или вообще модифицированый код) то лучше поискать готовые пакеты в репозиториях.

Ответы53931

177 24 фев, 14:29 177 1353924

>>1353889
>кроме того на что ссылается %
Сообразил? Вот и славно. Только в следующий раз СНАЧАЛА думай, а потом хлебало разевай, а не наоборот как тут вышло.

Ответы53930

178 24 фев, 14:33 178 1353930

>>1353924
Ты просто образцовый дегенерат.)

179 24 фев, 14:33 179 1353931

>>1353913
А если надо без всяких make, liux и mingw, чисто чтобы понять как в tcc под win32 компилировать свои будущие охуительные проекты на примере сборки lua?

Ответы53944

180 24 фев, 14:41 180 1353937

>>1353897
>Как скомпелировать lua в tcc
>в tcc
А можно? У меня сложилось впечатление, что tcc это игрушечная хуйнюшка, которой только собственные хелловорлды можно собрать. Твой исходник луа под какой компилер выложен, мм?

Ответы53943

181 24 фев, 14:50 181 1353943

>>1353937
Я попробовал по совету отсюда https://www.lua.org/manual/5.3/readme.html#other

tcc lua.c lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c

Вроде скомпилилось в один файл lua.exe без ошибок. Всё правильно сделал?

Ответы53948

182 24 фев, 14:52 182 1353944

>>1353931
> компилировать свои будущие охуительные проекты на примере сборки
Парень, поверь, если ты не представляешь как скомпилировать свою лабу, то не стоит вскрывать эту тему. Не знаю что там конкретно у луа, но скорее всего сборка там представляет собой тысячи строк отборной скрипто дрисни (учитывая что это кроссплатформа).
Выйди на улицу, прогуляйся, подыши свежим воздухом, обдумай свою жизнь. Потом отрывайй документацию по своему компилятору и разбирайся как откомпилировать один файл. Потом два. Потом как линкануть библиотеку. Там понемногу переползай на make или что-то подобное. А там уже можешь начинать (понемногу) читать сборочные скрипты крупных проектов.
> без всяких make
Никак. Система сборки может быть встроена в ide, можно не использовать конкретно make, но вручную ты усрешся компилировать что-то крупное.

Ответы53954

183 24 фев, 14:55 183 1353948

>>1353943
Ну запусти и посмотри. Может и да.

Ответы53955

184 24 фев, 14:57 184 1353951

>>1353873
Помогите же

185 24 фев, 15:02 185 1353954

>>1353873
> Ну, в книге эта тема не затрагивалась
А что за книга? В целом, ты просто открываешь консоль, идешь в директорию с проектом, и говоришь gcc main.c stack.c calc.c getop.c (если gcc в path нет, указываешь полный путь).

> Так, что такое stack.o?
Программу можно собирать либо по файлу, явно компилируя файл за файлом в объектные файлы (сс stack.c -o stack.o), а потом линкером собирать их в исполняемый, либо можно скормить все файлы компилятору сразу (как я показывал выше), а он сам вызовет линкер. IDE обычно компилируют по отдельности.

Можешь выложить куда-нибудь все файлы проекта?

>>1353944
> но вручную ты усрешся компилировать что-то крупное.
Но с Lua у него внезапно получилось. Как так-то?

Ответы539565395854056

186 24 фев, 15:02 186 1353955

>>1353948
Да, хелловорды на луа отлично работают. Удивительно.

Ответы53966

187 24 фев, 15:02 187 1353956

>>1353954
>сс stack.c -o stack.o
сс -с stack.c -o stack.o (да, мне стыдно)

188 24 фев, 15:03 188 1353958

>>1353954
>А что за книга?
Керниган Ритчи же
https://dropmefiles.com/INW8a
Вот файлы

Ответы5396253965

189 24 фев, 15:08 189 1353962

>>1353958
Что то затесалось 4 файла от визуал студии

190 24 фев, 15:10 190 1353965

>>1353958
> <Unit filename="main.c">
> <Option compilerVar="CC" />
> </Unit>
И это все. Ты файлы в проект не добавил. Поищи там Project->Add files или правой кнопкой в панели проекта. Или я хуй знаю, как в этих ваших кодеблоксах сказать компиляторы, чтобы он компилировал.

> Керниган Ритчи же
Там в Getting started рассказывали про компиляцию из консоли. Не из под винды правда, но подход везде одинаков.

Ответы53974

191 24 фев, 15:11 191 1353966

>>1353955
Ну там проблемы (при компиляции) в основном из-за зависимостей (особенно системных библиотек/вызовов). А луа походу нихуя не левого тянет поэтому и компилировать нет никаких проблем - закинул исходники и все. Плюс размер небольшой - раздельная компиляция не нужна.

Ответы5403554492

192 24 фев, 15:23 192 1353974

>>1353965
Короче странное дело, создал новый проект, добавил туда файлы из прошлого и все заработало

Ответы53998

193 24 фев, 15:36 193 1353998

>>1353974
Если старый проект остался попробуй в нем clean project сделать.

194 24 фев, 15:56 194 1354035

>>1353966
Тоже думал там полно зависимостей как обычно, вот и не соберешь, а оно вот как. Везение новичков, лол?

195 24 фев, 16:08 195 1354056

>>1353954
>Но с Lua у него внезапно получилось. Как так-то?
TCC очень простой, экстремально примитивный, там даже линкера нет. С любым нормальным компилятором вручную обосрешься пердолиться.

Ответы54075

196 24 фев, 16:21 196 1354075

>>1354056
> там даже линкера нет
Как нет? tcc -c foo.c -o foo.o && tcc foo.o bar.c вполне работает. И вообще, это все же компилятор, никто не мешает ld дергать, если нужно что-то более сложное.

> С любым нормальным компилятором вручную обосрешься пердолиться.
Небольшие проекты, если им сделать ./configure или руками config.h сделать вменяемый, достаточно часто успешно собираются cc *.c без всяких мэйкфайлов. Если не собираются, это либо какие-нибудь извращения (например, fossil, там внешний препроцессор дергается), либо просто код сложный, зависящий от ключей компилятора и т. п.

Ответы54088

197 24 фев, 16:32 197 1354088

>>1354075
>Как нет?
В смысле для тебя нет, просто пишешь tcc main.c и он выплевывает экзешник. Ни про какие опции, объектные файлы, линкеры ты и не узнаешь даже что они существуют.

Ответы54113

198 24 фев, 17:29 198 1354113

>>1354088
> просто пишешь tcc main.c и он выплевывает экзешник
Просто пишешь gcc main.c и он выплевывает экзешник.

199 24 фев, 19:19 199 1354211

>>1351181 (OP)
Объясните, зачем нужна лестница из else-if
if ( ) { }
else if ( ) { }
else if ( ) { }
else if ( ) { }
else { };
если можно послать всех нахуй и сделать лестницу из одних if, которая будет делать тоже самое?
if ( ) { };
if ( ) { };
if ( ) { };

Ответы542215433154490

200 24 фев, 19:24 200 1354221

>>1354211
Будет, но не всегда.
if-else подразумевает выполнение только одного из блоков.
Много if могут выполниться все.
В зависимости от того, что ты за условия даёшь, конечно.

201 24 фев, 21:20 201 1354331

>>1354211
Если условия не взаимоисключающие, то нихуя не то же самое. Вот если return в теле, то ок, но все равно желательно не нарушать логическую структуру.

202 24 фев, 22:06 202 1354381

Смотрю, вы всё продолжаете мучить этот недораст

Ответы5439554417

203 24 фев, 22:20 203 1354395

>>1354381
Зачем писать на расте, если есть родная Сишка с привычным синтаксисом и библиотекой?

204 24 фев, 22:40 204 1354417

>>1354381
Связный список уже написал на своем безопасном системном языке?

Ответы5442454473

205 24 фев, 22:50 205 1354424

>>1354417
Во-первых, связные списки не нужны. Просто хуяришь массивы и не паришься. Во-вторых, они небезопасны.

Ответы54566

206 24 фев, 23:19 206 1354449

Блять, частый realloc ломает кучу. Ну ебана!

Ответы5448954566

61 Кб, 720x951
207 24 фев, 23:51 207 1354473

>>1354417
>Связный список
А что, есть несвязные списки? Сколько тебе лет?

Ответы54553

208 25 фев, 00:06 208 1354489

>>1354449
Лолшто? Может ты его используешь через жопу просто?

Ответы54576

209 25 фев, 00:07 209 1354490

>>1354211
Допустим, есть x равное 3;

if (x > 3), то дать тебе пизды
else if (x < 5), то дать пизды твоему соседу
Никто из вас не получит пизды

if (x > 3), то дать тебе пизды
if (x < 5), то дать пизды твоему соседу
Твой сосед получит пизды

В конечном итоге лично ты не получишь пизды, поэтому можешь делать, как тебе нравится

Ответы5449154497

210 25 фев, 00:08 210 1354491

>>1354490
Чо епта, так мы с соседом пацанов с раёна подтянем за такой беспредел. else не нужны

211 25 фев, 00:08 211 1354492

>>1353966
Ещё вот так можно скомпилировать.

tcc -rdynamic -shared -o lua.dll lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c

tcc lua.c lua.def

Получается жирная библиотека lua.dll и крохотный lua.exe

212 25 фев, 00:11 212 1354497

>>1354490
В условиях 3 на 2 поменяй, я тупанул малёхо братишка. Ну и пизды получишь ты оба раза, а сосед один раз

sage 213 25 фев, 01:16 213 1354553

>>1354473
Есть. Вон, в Java ArrayList

214 25 фев, 02:49 214 1354566

>>1354424
> Просто хуяришь массивы и не паришься
И раздвигаешь массив при вставке. Хороший системный язык.

> они небезопасны
Так Java уже есть. И связные списки там реализуются за десять строк.

>>1354449
Собери с -fsanitize=address, и тебе скажут, где именно ты его ломаешь.

215 25 фев, 06:53 215 1354576

>>1354489
Шиндоус 7, MinGW. Примерно на 11-12 реаллоке массива (увеличиваю на два элемента) куча идет по пизде и все падает. Видимо, неправильно использую все же.

Ответы5459654601

216 25 фев, 08:40 216 1354596

>>1354576
Давай код.

Ответы54605

217 25 фев, 08:52 217 1354601

>>1354576
>Видимо, неправильно использую все же
>Видимо
Компьютер не ошибается, он в точности выполняет что ты пишешь. Значит, если что-то падает - 100% ты накосячил. Вбей это сразу в свою тупую кочерыжку, иначе так и останешься необучаемым на всю жизнь.

Ответы54605

9 Кб, 448x387
218 25 фев, 09:06 218 1354605

>>1354596
Уже переписал. Вот, вспомнил и проверил - оно блять работает нормально! Но ей-богу, точно такой же код падал!
>>1354601
Да я понимаю, что я виноват. Но realloc heap corruption таки гуглится, и просто так sigtrap в отладчике внутри реаллока не срабатывает, хотя бряки я не ставил.

Ответы5461454622

219 25 фев, 09:49 219 1354614

>>1354605
arr это глобальный указатель под который ты где-то выделил память, видимо?

Ответы5461954627

220 25 фев, 09:53 220 1354619

>>1354614
Вообще код прям пиздец какой странный, на самом деле.

Ответы54627

30 Кб, 577x572
221 25 фев, 09:56 221 1354622

>>1354605
Фиг знает, всё работает.

Ответы54627

222 25 фев, 10:03 222 1354627

>>1354614
Там выше глобально объявлен он. Ну и под комментом - как именно.
>>1354619
Как сделать лучше?
>>1354622
У меня тоже. Но точно такой-же код в другой программе - нет.

Ответы54739

223 25 фев, 13:28 223 1354739

>>1354627
> Как сделать лучше?
Проверять результат realloc(), например. Выделять в realloc() с запасом побольше (150%, например). Если нет острой необходимости в том, чтобы весь массив описывал один только указатель, лучше явно хранить количество выделенных с запасом и количество использованных элементов. Можно еще отказаться от malloc() тоже, раз размер фиксированный, и хранить не массив указателей, а массив 256-байтовых массиов. Хотя это спорно и зависит от того, как этот arr применяется.

224 25 фев, 14:04 224 1354767

Тут по сути идет дурацкая эмуляция списка массивом.
И передавать в функцию массив по значению - жирно.

Ответы5479154878

225 25 фев, 14:34 225 1354791

>>1354767
> передавать в функцию массив по значению
А он и не передает. Передается указатель.

Ответы55054

sage 226 25 фев, 16:32 226 1354878

>>1354767
>эмуляция списка массивом
Массив это одна из реализаций списка.

Ответы55054

227 25 фев, 18:21 227 1354962

вы пизду-то тетёхали хоть раз

228 25 фев, 19:44 228 1355054

>>1354791
Забавно, спасибо.

>>1354878
Дебилы это одна из разновидностей человека, как и умные, но такое обобщение никому не нужно.

229 25 фев, 21:44 229 1355136

Хай, вкатываюсь в программирование, напишите, где тут у вас найти гайды по плюсам. Тред не нашел. нуфаг, листва.

Ответы55185

230 25 фев, 21:53 230 1355150

Можно ли как-то прочитать прямо из консоли уже напечатанное и копировать в свой буфер. Пробую так: "fscanf(stdout, "%s", e);" , но как понимаю он читает только промежуточный буфер?

Ответы551565515955169

231 25 фев, 21:56 231 1355156

>>1355150
Что сделать хочешь?

Ответы55162

232 25 фев, 22:01 232 1355159

>>1355150
Нельзя. stdout ведет себе как
fopen ("/dev/tty", "w"); // "/dev/tty" заменить на нужное
fscanf на другом уровне абстракции работает и не имеет дела до подкапотной реализации всяких буферов-хуюферов. Для тебя это стрим в одну сторону.

Ответы55165

233 25 фев, 22:02 233 1355162

>>1355156
Обработчик ошибок err(). Что б перед падение отписал что было в консоли.

Ответы5517255181

234 25 фев, 22:04 234 1355165

>>1355159
Ясно.

235 25 фев, 22:08 235 1355169

>>1355150
Может быть такой вариант
memcpy (mybufferblyat, stdout->_base, stdout->_cnt);
Но опираться на местную реализацию FILE - не вполне разумно.

Ответы55173

236 25 фев, 22:11 236 1355172

>>1355162
А почему в сигнал-handler просто не вызвать fflush(stdout)?

Ответы55178

237 25 фев, 22:11 237 1355173

>>1355169
Не, что то он кракозябры пишит.

Ответы55177

238 25 фев, 22:13 238 1355177

>>1355173
ну, может не _base, а _ptr

239 25 фев, 22:14 239 1355178

>>1355172
fflush я пробовал, а до "сигнал-handler" видать пока не дорос. Это что вообще?

Ответы55182

240 25 фев, 22:16 240 1355181

>>1355162
а зачем, собсно, промежуточный буфер?
fwrite (ukazatel, sizeof (bukva), skolkobukov, stdout);

241 25 фев, 22:18 241 1355182

>>1355178
Ну, обработчик ошибок - это ведь функция, которая вызывается, когда прилетает SIGTERM (ctrl+C), SIGSEGV (segment naebnulsa) или что-то в этом роде. Или это не то?

Ответы55184

242 25 фев, 22:21 242 1355184

>>1355182
Я наверно ляпнул что-то не то. У меня просто обёрнутый принтом exit() который я вставляю в забагованом месте и отлаживаюсь принтом в эррор.тхт файл.

Ответы55189

243 25 фев, 22:22 243 1355185

>>1355136
Предлагаю самый лучший баг по ленивому сипп для далбаебов типа тебя — съеби нахуй

244 25 фев, 22:26 244 1355189

>>1355184
Отладочный лог обычно через stderr выводится. Там без задержек все. Чтоб в файл текло, надо запускать ./sverhproga 2>эррор.тхт

245 25 фев, 22:45 245 1355206

Есть последовательность байтов, вытащенная в хекс-редакторе. Например.
27 00 00 13 26 20 3A 3F
Я знаю, что там запакованы данные. Как распаковать? Какие алгоритмы использовать?

Ответы5521255392

246 25 фев, 22:50 246 1355212

>>1355206
Гугли magic numbers алгоритмов.

Ответы55223

247 25 фев, 23:01 247 1355223

11 Кб, 472x22411 Кб, 472x224

>>1355212
У меня 3F 80 повторяется в некоторых последовательностях записей.
На пикче две последовательности. В файле, который я ковыряю, меняется только расположение элемента по координатной оси. Когда растет X, длина последовательности записей увеличивается, то есть первая пикча - это элемент сильнее сдвинут по оси Х.

Ответы552245532655496

27 Кб, 354x604
248 25 фев, 23:02 248 1355224

>>1355223
Фак, проебался, вот более длинный.

249 26 фев, 00:26 249 1355326

>>1355223
И что ты от нас хочешь?

Ответы5546455469

250 26 фев, 03:05 250 1355392

>>1355206
Ищешь код который записывает/считывает эти данные, реверсишь его и выясняешь алгоритм.

251 26 фев, 09:32 251 1355464

>>1355326
Это и есть мэджик намба?

252 26 фев, 09:37 252 1355469

>>1355326
Чтоб мы расшифровали ему архив с цп забесплатно.

Ответы55627

253 26 фев, 10:20 253 1355496

>>1355223
> У меня 3F 80 повторяется в некоторых последовательностях записей.
Ну вот это, например, флоаты, little endian. 0x3f800000 = 1.0f. Возьми себе редактор типа 010, который умеет показывать выделенные байты в различных представлениях.

Ответы5556355630

254 26 фев, 11:24 254 1355532

Зашёл в тред и очутился на форумах девяностых. Вы чё, совсем ебобо? Кто-то реально пишет щас на этом говне?

Ответы5553855547

255 26 фев, 11:36 255 1355538

>>1355532
на говне твои родители расписались

256 26 фев, 12:01 256 1355547

>>1355532
Каком форуме 90-ых, пиздюшня? Ты же 97 года рождения, откуда тебе знать.

Ответы55561

257 26 фев, 12:22 257 1355561

>>1355547
в 90х в россии на bbs сидели, избранные имели доступ к зеркалам nntp
рассвет интернет-форумов в россии - это начало нулевых вообще то
люди сидели в своих домовых локалках, на шарах и ирке, и имели пару гигов интернета на выход в большой мир
но откуда тебе это знать

Ответы555855558955591

258 26 фев, 12:25 258 1355563

>>1355496
а еще внутреннее представление чисел можно узнать через union в самом коде

59 Кб, 467x339
259 26 фев, 13:00 259 1355585

>>1355561
>пару гигов интернета

Ответы55588

260 26 фев, 13:04 260 1355588

>>1355585
Кто это бля?

261 26 фев, 13:05 261 1355589

>>1355561
>bbs
bbsgayru.com?

262 26 фев, 13:05 262 1355591

>>1355561
Да согласен, ещё были ламповые чаты и аська

Ответы55631

263 26 фев, 13:44 263 1355627

>>1355469
С чего ты взял, что это архивы с цп? Каждый думает в меру своей испорченности.

264 26 фев, 13:46 264 1355630

>>1355496
Мой редактор умеет показывать в разных представлениях. Только все равно непонятно, как данные пакуются

Ответы55635

265 26 фев, 13:46 265 1355631

>>1355591
Начнем с того, что рунета просто не было, или читаешь зарубежные сайты на английском или нахуй идешь. Но такой проблемы не стояло, потому что у рюско-быдла не было компьютеров, а интернета и подавно.

Ответы55650

266 26 фев, 13:52 266 1355635

>>1355630
В смысле, почему оно именно этими байтами представлено, или ты хочешь, чтобы мы отреверсили для тебя формат по скриншотам?

Ответы55638

267 26 фев, 13:56 267 1355638

>>1355635
Нет, мне непонятен сам принцип упаковки. Как из какой то длинной последовательности байтов получается более короткая? Причем короткая будет разной длины в зависимости от входных данных.

Ответы5564055646

268 26 фев, 14:01 268 1355640

>>1355638
Да, и еще непонятно, почему после упаковки одно и то же число начинает повторяться

Ответы55647

269 26 фев, 14:07 269 1355646

>>1355638
Ты бы рассказал, что за файл, что за данные. Какие нахуй последовательности? Это кейфреймы анимации что ли? Почему ты решил, что там что-то упаковывается, если флоаты торчат голой жопой? Сдампи в человекочитаемый вид для начала:
fseek(fp, офсет, SEEK_SET);
struct { uint16_t a; uint16_t b; float c; } smth[24];
fread(smth, sizeof(smth), 1, fp);
for (j = 0; j < sizeof(smth) / sizeof(smth[0]); j++) {
printf("%d: %.4x %.4x %g\n", j, smth[j].a, smth[j].b, smth[j].c);
}
И уже ищи закономерности. Никакого магического решения не существует, нужно думать. Алсо, другие части файла тоже могут иметь значение. Можешь взять kaitai struct или темплейты в том же 010 editor и документировать известные поля, например.

Ответы55974

270 26 фев, 14:07 270 1355647

>>1355640
А ты уверен, что это вообще упакованный файл?

271 26 фев, 14:13 271 1355650

>>1355631
У меня был инет с 97 года, чего ты пиздишь то?

Ответы55657

272 26 фев, 14:22 272 1355657

>>1355650
Нахуй ты зелёному отвечаешь, у него гигабайтные сетки на ирке стояли и аплоады по 26кбпс в 95-ом в его воображении

273 26 фев, 22:53 273 1355974

>>1355646
Короче, мне уже кое что известно об устройстве этого файла. Данные есть в интернете. Но пресловутая структура практически не описана. Сказано лишь, что она представляет из себя последовательность записей по 8 байт. Похоже, она отвечает за текстуры поверхности, именно за привязку кусочков текстур к вершинам.
Я получаю структуры, закрашивая разные вершины (или клетки) поверхности ландшафта в игровом редакторе. Одну клетку закрашиваю и потом смотрю, что добавилось в hex-редакторе.
Почему появилась мысль о том, что данные запакованы?
Во первых, часть данных в этом файле уже была запакована. Других данных, не этих. Распаковывал, используя готовую утилиту, там уже все до меня было сделано.
Во вторых, очень странное поведение. Когда я крашу ближе к началу координат, структура получается очень короткая, всего 8 байт. Когда крашу квадратик ближе к середине или другому краю, то записей становится дохуя, как на пикче выше. Это необязательно значит, что данные запакованы, но такие мысли возникают.
И вот я теперь думаю, что либо эти записи запакованы, и данные о координатах вершин запрятаны, либо в этих записях не записаны координаты вершин напрямую, и текстурки к вершинам привязываются как то по другому.

Upd: пока писал, обнаружил, что последний байт 3F как то связан с интенсивностью цвета текстуры. Потому что когда перезаписал на 3E, то в редакторе она поблекла. То есть видимо данные все таки не запакованы.

Ответы56103

274 26 фев, 23:06 274 1355989

Коротко:
glib-ский tdestroy из <search.h> не освобождает память. ЧЗХ??

Длинно:
Здарова, аноны-сишники. Я к вам не с пустыми руками.
Тонна гавнокода...
https://pastebin.com/WTCxAaJE
...приятного аппетита (кто не голоден - 71я строка)
Итак, проблема. Решил наскоро смастерить реализацию ROBDD. Тест на соответствие возвращаемых значений исходной таблице истинности проходится успешно. Глянул в диспетчере, сколько оперативки кушает это чудо, и охуел. Мегабайтаж явно не соответствует числу узлов диаграммы, проверено сверхмозгом, принтэфился из-под капота. Тем же суперметодом было установлено, что после вызова tdestroy (derevoblya), где dereveblya - собсно, дерево, в которое добавлен, на минуточку, не один миллион уникальных элементов, так вот, после вызова tdestroy памяти освобождается ровно... нихуя, а, как я полагаю, один узел - это минимум три qword-указателя плюс еще что-то. Что делать то, епт?
P.S. любопытных прошу не ругать за костыль с bdd_cmp. Я знаю, что для concurrent-safe работы надо как-то с каждым вызовом полный адрес ей доставить, но не стал ебать себе голову.

Ответы55991

275 26 фев, 23:11 275 1355991

>>1355989
> tdelete() frees the memory required for the node in the tree. The user is responsible for freeing the memory for the corresponding data.

Ответы5599455996

276 26 фев, 23:17 276 1355994

>>1355991
хм.. у меня другая инфа
> tdelete() deletes an item from the tree. Its arguments are the same as for tsearch().
стало быть, якась хуйня, а вот:
> tdestroy() removes the whole tree pointed to by root, freeing all resources allocated by the tsearch() function. For the data in each tree node the function free_node is called. The pointer to the data is passed as the argument to the function. If no such work is necessary, free_node must point to a function doing nothing.
выглядит как то, что надо

Ответы55996

277 26 фев, 23:19 277 1355996

>>1355991
>>1355994
упс, про frees the memory required for the node уже вычитал, но это неинтересно. Я и не хочу удалять corresponding data, я лишь хочу сам скелет дерева выбросить.

Ответы56003

278 26 фев, 23:31 278 1356003

>>1355996
> Я и не хочу удалять corresponding data, я лишь хочу сам скелет дерева выбросить.
Ну так он у тебя удаляется у тебя не освобождается (и скорее всего течет) corresponding data (malloc на 61 строке). Если твой алгоритм позволяет попробуй вместо того malloc подставлять просто ссылку на какой-то один буфер (для всего дерева). И посмотри на ситуацию с памятью.

Ответы56008

279 26 фев, 23:42 279 1356008

>>1356003
61 строка находится не во вложенной рекурсивно крутящейся функции, а выполняется лишь раз за весь вызов, а потом только reallo-чится. Там не утечка, там именно tdestroy сломалась, которая по идее должна распускать за ненадобностью дерево, используемое лишь в процессе выполнения алгоритма построения диаграммы, но на деле ни мегабайта не возвращется. Проверено getchar-ом до и после в обнимку с system monitor (линуксовый диспетчер задач)

Ответы56029

280 27 фев, 00:10 280 1356029

>>1356008
Ну тогда хуй знает. Есть вариант вилкой чистить. Начинаешь с самого просто примера с деревом. Убеждаешся что с памятью все ок. Потом начинаешь постепенно превращать его в свой код, как можно меньшими шажками, пока не начнется хуйня. Если стркутура позволяет то лучше конечно бинарным поиском - добавляешь примерно половину кода, если все ок, добавляешь половину оставшегося, если не ок - убираешь половину вставленого. Если действительно с tdelete() проблема то это баг дохуя.

Ответы560475621456215

твоя мамаша 281 27 фев, 00:12 281 1356031

писать на С в 2к19...
чувак найди себе бабу, трахни, забудь про С, устройся на завод.

282 27 фев, 00:18 282 1356038

снова вылазят дохуя умные и смещные. Пиздец.
Алсо дауны детектятся по словам "2К19".

Ответы5604256044

283 27 фев, 00:36 283 1356042

>>1356038
ко ко ко пидор
что по больному, да?
небось тебе уже 40+ а ти баб не ебал ещо?
с батей уже трахался?
как он в попец?
мамка твоя ничо так

Ответы5604456045

284 27 фев, 00:40 284 1356044

>>1356042
понимаю, делать нехуй, но.. чувак, ты реально скучный вариант выбрал, технари не церковники, на такую толстоту не ведутся. Ну, вот >>1356038 один повелся, да, но такая скудная еда даже полминуты постинга твоего высера не стоит

285 27 фев, 00:40 285 1356045

>>1356042
>с батей уже трахался
уж лучше с батей поебаться, чем устраивать ЯП-срач.

Ответы56058

286 27 фев, 00:44 286 1356047

>>1356029
Таки да, самый простой пример благополучно выявил поломку glib-овского чудо-дерева. Так и знал, что самому придется дерево писать. Люблю Си...

Ответы56057

287 27 фев, 01:06 287 1356057

>>1356047
ну так какая мова такая и реализация фич :)

Ответы5621456215

288 27 фев, 01:07 288 1356058

>>1356045
а где тут срач за ЯП ?
просто соси писос

289 27 фев, 01:20 289 1356066

>2к18 + 1
>думать что Си есть замена

290 27 фев, 07:09 290 1356103

>>1355974
> Это необязательно значит, что данные запакованы, но такие мысли возникают.
Возникают мысли, что оно взяло максимальные x/y закрашенные, побило прямоугольник {0, 0, max_x, max_y} на квадратики или треугольники и хранит для них пиксельные координаты или что-то подобное (вон я выше код кидал, переменные a и b), ну и интенсивность.

> обнаружил, что последний байт 3F как то связан с интенсивностью цвета текстуры
Охуеть, ты изменил флоат 1.0 на 0.25, и что-то уменьшилось. Внезапно, правда?

Ответы56221

291 27 фев, 13:46 291 1356206

Привет Двач.
Есть ли тут люди работавшие с отечественным мк 1886ве4у от миландра?

292 27 фев, 13:55 292 1356214

>>1356029
>>1356057
Ага, зацените, как на багзилле на отъебись ответили. Однако, посылать нахуй таких ответчиков - то еще удовольствие. Не зря мать уроки по инглишу оплачивала.

293 27 фев, 13:56 293 1356215

>>1356029
>>1356057
Ага, зацените, как на багзилле на отъебись ответили. Однако, посылать нахуй таких ответчиков - то еще удовольствие. Не зря мать уроки по инглишу оплачивала.
https://sourceware.org/bugzilla/show_bug.cgi?id=24271

Ответы56229

294 27 фев, 14:04 294 1356221

>>1356103
То есть последние 4 байта отвечают за интенсивность. Выглядит вполне правдоподобно.
Я вчера ещё выяснил, что первые 2 байта, а может и 4 даже, отвечают за расположение закрашиваемого квадратика. То есть вроде бы получилось расшифровать. Теперь осталось только выяснить, зачем он создаёт много этих 8-байтных текстур, если красить далеко от начала координат.

Ответы56225

295 27 фев, 14:09 295 1356225

>>1356221
> 8-байтных текстур
Структур, быстрофикс

296 27 фев, 14:23 296 1356229

>>1356215
Погоди, твоя проблема лишь в том, что менеджер кучи не отдает ОС память, а придерживает ее для себя, и тебе это не нравится?

Ответы5625256264

297 27 фев, 15:38 297 1356252

>>1356229
>менеджер кучи не отдает ОС память, а придерживает ее для себя
Прям завоняло 15-рублевыми оправдателями андроида и дрисни 10:
- Почему у меня вся память занята, хотя ничего не запущено?
- СИСТЕМЕ ВИДНЕЕ, ОНА ДЛЯ ТВОЕЙ ЖЕ ПОЛЬЗЫ РЕЗЕРВИРУЕТ, НАХУЯ ТЫ ПОКУПАЛ ПАМЯТЬ, ЧТОБЫ ОНА ПУСТОВАЛА? РАЗ ЗАНЯТА, ЗНАЧИТ ТАК НУЖНО, НЕ ТЕБЕ ХОЛОПУ СЮДА ЛЕЗТЬ!

Ответы56267

298 27 фев, 16:00 298 1356264

>>1356229
Полгига "для моего же блага"? Неее, не имеет права, шел бы он нахуй с такими премудростями. free, кстати, в таком говне не замечен. Отдает мегабайты, как миленький, все до единого, по любой мелочи. Это tdestroy в manpages раскудахтался на обещания все ресурсы из под дерева распустить, а на деле нихуя не высвобождается.

Ответы56271

299 27 фев, 16:03 299 1356267

>>1356252
> Почему у меня вся память занята
Вытеснена в своп, лежит, есть не просит.

> СИСТЕМЕ ВИДНЕЕ
Это не система. Линкуйся с другим аллокатором, можешь хоть на каждый освобожденный байт делать сисколлы. И похуй, что они теперь еще дороже стали из-за багфиксов для x86.

300 27 фев, 16:16 300 1356271

>>1356264
> free, кстати, в таком говне не замечен
Так в tdestroy и нет ничего, кроме вызова твоей функции для освобождения данных и обычного free() для каждого узла. Такие дела.

Алсо, у тебя там вообще скорее всего проблема с фрагментацией: ты выделяешь ноду, потом выделяешь данные для нее, повторяешь много раз, и выделение скорее всего идет из одного и того же пула. А когда ты освободишь дерево, получается последовательность блоков free-used-free-used-free-used, где used - это данные, которые ты не освободил. И вот пока ты вот с этими used ничего не сделаешь, никакая магия тебе память в систему не отдаст, даже если ты очень захочешь. Можешь проверить это, выделяя данные пожирнее, например, по 128 байт на узел, чтобы гарантированно использовался другой пул. Если картина изменится, можешь пофиксить это, например, выделяя данные заранее, а потом уже вторым проходом складывая в дерево.

Ответы5627256273

301 27 фев, 16:20 301 1356272

>>1356271
Вот этот вроде не совсем дебил.
Даже странно.

302 27 фев, 16:22 302 1356273

>>1356271
Там узлы дерева выходят втрижды жирнее самих данных, а данные-то пакуются в один массив, который целиком reallo-чится по +килобайту по каждом переполнении.

Ответы56274

303 27 фев, 16:24 303 1356274

>>1356273
Я код перестал читать на вложенной функции, так что тебе виднее.

Ответы56282

304 27 фев, 17:01 304 1356282

>>1356274
ну сорян, у меня SICP-головного-мозга не остыл еще)

Ответы56284

305 27 фев, 17:08 305 1356284

>>1356282
>головного-мозга
Проиграл с этого оптимиста №47.

306 27 фев, 18:52 306 1356330

Есть какая-то единая книжка в которой описан си от самых низов до работы с памятью и таким
Такая чтоб страниц на 700-900

Ответы56339

307 27 фев, 19:11 307 1356339

>>1356330
?*
быстрофикс

308 27 фев, 19:14 308 1356341

Байтоёбы -- мерзкие педерасты, анимешники и прыщебляди

Ответы5634956350

sage 309 27 фев, 19:26 309 1356349

>>1356341
Двачую. Я именно такой.

310 27 фев, 19:29 310 1356350

>>1356341
Это оскорбления или как? Подлиза, чего тебе?

311 28 фев, 01:22 311 1356518

а есть гарантия, что секвенс поинты будут строго как написано в кода выполняться? то есть, если я буду писать в память и вызывать функцию, которая читает её - это ещё понятно. а что если у меня другой поток читает? например считывает статус выполнения какой-то операции.

Ответы56523

312 28 фев, 01:39 312 1356523

>>1356518
Точки следования говорят, когда закончится вычисление выражения. Они никак не гарантируют тебе видимость сайд-эффектов извне: ни то, что результат попадет из регистра в память, ни то, что одно выражение выполнится раньше другого, если у них нет зависимости по данным. И уж тем более оно никак не гарантирует, что соседний поток это все увидит. И даже если ты расставишь везде volatile, чтобы компилятор не ленился писать в память, есть еще такая страшная штука, как memory ordering, и что там у тебя будет происходить с данными, запишутся ли они сразу в память, или запись пойдет в кэш и будет отложена, и увидит ли это соседний процессор и т. д. - про все это Си для обычных переменных не дает тебе никаких гарантий, все целиком и полностью зависит от платформы. Поэтому не выделывайся, бери C11 и используй атомики, для них компилятор будет проделывать все необходимые пляски с бубном.

Ответы56526

313 28 фев, 01:52 313 1356526

>>1356523
ну в общем я так и думал, что нужно писать асм и оборачивать в функции. на моей платформе нет атомиков.

Ответы56560

314 28 фев, 09:08 314 1356560

>>1356526
А что за платформа такая?

Ответы56669

315 28 фев, 15:55 315 1356669

>>1356560
Почему компилятор нормально воспринимает функцию, int f(double const ⋆x), но ругается на int f(double const ⋆⋆x)?
Как передать компилятору ⋆⋆x и объяснить, что в функции не должны изменяться ни указатели на ⋆x[...], ни элементы x[...][...]?

Ответы56678

316 28 фев, 16:19 316 1356678

>>1356669
> ругается на int f(double const ⋆⋆x)
Как ругается? Несовпадение типов, потому что ты передаешь массив указателей на неконстантные даблы? Касти, такое автоматически не приводится.

> объяснить, что в функции не должны изменяться ни указатели на ⋆x[...], ни элементы x[...]
Тебе нужен массив константных указателей (нельзя изменять укащатели) на константные даблы (нельзя изменять данные). Вот и записываешь: const double ⋆const array[], но у тебя указатель вместо массива, правишь и получаешь const double ⋆const ⋆x.

Ответы5667956680

317 28 фев, 16:20 317 1356679

>>1356678
note: expected ‘const unsigned int ⋆⋆’ but argument is of type ‘unsigned int ⋆⋆’

318 28 фев, 16:24 318 1356680

>>1356678
Аналогичное предупреждение:
note: expected ‘const unsigned int const’ but argument is of type ‘unsigned int ’
Но суть примерно понял, сейчас поугадываю, как передать. Спасибо.

Ответы5668256705

319 28 фев, 16:27 319 1356682

>>1356680
Без каста никак, не пытайся. Автоматическое втыкание квалификаторов поддерживает максимум один уровень косвенности, у тебя два.

Ответы56689

320 28 фев, 16:50 320 1356689

>>1356682
Ну ладно, спасибо.

321 28 фев, 17:42 321 1356705

>>1356680
Кот покажи

322 28 фев, 21:28 322 1356907

пиздос, передоз си в крови. Сейчас секунд 10 искренне пытался вспомнить, где я проебал указатель на вилку, лежащую передо мной на столе.
алсо, чем анализировать код, чтобы всякие тонкости не проебывать? мозг имеет свойство сбоить после всего-то двух-трех дней без сна, поэтому не всегда вариантpvs-studio знаю и пользовал, интересны альтернативы

323 1 мар, 07:27 323 1357048

Анонче у вас тоже так, в общем дня не можете провести без C? Как будто подрочить, обязательно нужно какую то хуйню написать и ебать себе мозг решением проблемы и когда решаешь то кончаешь?

Ответы57277

324 1 мар, 17:47 324 1357277

>>1357048
Да, эта болезнь называется байтоебство

325 1 мар, 18:00 325 1357282

#include <stdio.h>

int main(void)
{
int i, j, list[10];

for (i = 1; i < 10; i++)
{
list = 2 * i + 3;
for (j = 1; j <= i; j++)
printf("%d\n", list[j]);
}

return 0;
}

Почему из-за ескейпа \n ломается луп и не обновляет значение j ?

Ответы5729057421

326 1 мар, 18:17 326 1357290

>>1357282
Ахахах лол, именно из-за эскейпа.

Ответы57292

327 1 мар, 18:20 327 1357292

>>1357290
Всмысле printf возьмет в память ескейп?

Ответы57347

328 1 мар, 19:53 328 1357347

>>1357292
В смысле ищи свою проблему где-то еще. Я хуй знаю, зачем ты это делаешь, но этот код делает именно то, что в нем написано.

Ответы57353

329 1 мар, 20:02 329 1357353

>>1357347
Что он делает?
Он выводит массивы со случайными значениями, хотя это не так, там определенные значения должны быть.
У меня когда в принте %d\n выводит мусор, а когда отделяю %d от \n то сразу все становится на свои места и j обновляет значение и луп работает как надо.

Ответы5736657369

330 1 мар, 20:28 330 1357366

>>1357353
> со случайными значениями
Нет, оно выводит вот эти твои последовательности нечетных чисел, начиная с пяти. Ну это если макаба на самом деле сожрала [​i​] в выражении list[​i​] = 2 * i + 3.
> У меня когда в принте %d\n выводит мусор
У тебя компилятор сломался, скачай другой.

Ответы57369

331 1 мар, 20:30 331 1357369

>>1357353
>>1357366
О, я догадался. Ты делаешь что-то типа printf("%d ", ...); printf("\n"), и так как ты не можешь в фигурные скобки, второй принтф попадает во внешний цикл, а не во внутренний, и у тебя получаются красивые строчки чисел, а не один непонятный столбец. Так?

Ответы57377

332 1 мар, 20:39 332 1357377

>>1357369
Нет, все в столбец. Там даже когда как ты сказал все равно будет столбец, ибо \n срабатывает каждый луп, поэтому строчка и так и так будет.
Проблема в том, что компилятор по моему сломан, ибо почему то когда спецификатор %d с \n сочетаешь в одной функций printf, то вывод ломается, либо разные адреса печатает, либо вообще не инкрементирует.

Ответы5737857401

333 1 мар, 20:40 333 1357378

>>1357377
Компилятор кстати gcc.

Ответы57380

334 1 мар, 20:42 334 1357380

>>1357378
Блядь, закинь код на пастебин и скинь сюда.

Ответы57593

335 1 мар, 21:18 335 1357401

>>1357377
>каждый луп
зачем тебе оно надо? Шел бы оффициантом

Ответы57594

13 Кб, 785x356
336 1 мар, 21:46 336 1357421

>>1357282
УМВР. И да - на gcc гнать смысла нет, ищи ошибку у себя.

Ответы57596

337 2 мар, 06:53 337 1357567

Если присвоить указателю адрес некой переменной, можно ли потом прибавить к нему какое либо число, чтобы он стал указывать на другую переменную?

Ответы57591

338 2 мар, 08:11 338 1357591

>>1357567
В Си нету магии. Адрес это просто целое число, к которому можно прибавить (или отнять) другое целое число.

Ответы57601

339 2 мар, 08:34 339 1357593

>>1357380
Сорьки, не знал что тут может массив вырезать.
https://pastebin.com/uurpnBpa

340 2 мар, 08:37 340 1357594

>>1357401
Нравится.

341 2 мар, 08:44 341 1357596

>>1357421
Нет, дело в компиляторе было. Я тупой еблан, кодил на ночь, прошу прощения за мозгоебство, в следующий раз буду писать на свежую голову.
Сам себя запутал, я думал что вывод
5
5
7
Это ошибка, и думал правильно будет
5
57
В виде пирамиды.

В общем тупой долбоеб.

Ответы5759757599

342 2 мар, 08:44 342 1357597

>>1357596
Дело не в компиляторе было

самофикс

343 2 мар, 09:13 343 1357599

>>1357596
>кодил на ночь
>кодил
Всё равно что насыпать сахару в чай и размешать, а потом говорить "я готовил".

Ответы57838

344 2 мар, 09:31 344 1357601

>>1357591
Я не спорю, я спрашиваю можно ли таким прибавлением случайно попасть в адрес другой переменной

Ответы5760257606

345 2 мар, 09:37 345 1357602

>>1357601
> можно ли таким прибавлением случайно попасть
Можно. https://ideone.com/ijeBN3 Но делать так не стоит. Обращения за пределы объектов в памяти - undefined behavior.

346 2 мар, 09:46 346 1357605

>>1351183
ещё барахтаешься в бассейне?

Ответы57608

347 2 мар, 09:51 347 1357606

>>1357601
Разумеется можно, но толку нет, ты закосячишь программу непредсказуемым образом (коррупция памяти), ведь нет гарантий расположения переменных относительно друг друга.

348 2 мар, 10:10 348 1357608

>>1357605
Я среди 284 лучших, которые прошли.

Ответы5761357793

349 2 мар, 10:18 349 1357613

>>1357608
>среди 284 лучших
маловато как-то "лучших"

Ответы57627

350 2 мар, 10:41 350 1357627

>>1357613
Ты завидуешь.

Ответы57669

351 2 мар, 12:26 351 1357669

>>1357627
Пока вам эта школа не даст реальных профитов, кроме как циферки, завидовать нечему.

Ответы57795

352 2 мар, 17:06 352 1357793

>>1357608
тоже хочу пройти, дай советов
вчера был экзамен, успехов мало

Ответы57927

353 2 мар, 17:08 353 1357795

>>1357669
"пока"?

354 2 мар, 18:27 354 1357838

>>1357599
Скорее как вскипятить чайник и заварить доширак.

355 2 мар, 20:25 355 1357893

>>1351181 (OP)
По ссылке [http://www.iso-9899.info/wiki/Books#Learning_C] у ОПа

>Stuff that should be avoided:
>Understanding and Using C Pointers by Richard M. Reese: Horribly written, conflates language specification and implementation, and describes concepts confusingly and/or wrongly in many cases.

Ответы57947

356 2 мар, 21:17 356 1357927

>>1357793
Если будет тяжело, то читери как сука.
На гитхабе есть готовые решения, задания на бассейн не меняются годами.
Гуглить github piscine 42.

357 2 мар, 21:28 357 1357934

Как в CRC32 предварительно вычисляются таблицы? Не те, которые полные и занимают 4гб памяти, а те, например, что на 256 значений.

Ответы57947

358 2 мар, 21:50 358 1357947

>>1357893
Мы в курсе. И про хардвей тоже. Но плохие книги тоже нужно читать.

>>1357934
Ну погугли painless guide to crc32. В целом, суть в том, что CRС32 - это длинное деление (в столбик, как в школе), только вместо обычного вычитания там xor, и еще тебя не интересует частное, только остаток. И ты можешь либо ксорить побитово, либо можешь заметить, что то, с чем поксорится "текущий" остаток после n итераций, полностью определяется следующим n-битовым словом. Ну и ты берешь вот это слово, и для каждого его возможного значения гоняешь побитовую версию crc32, получаешь табличку.

Ответы5795557958

359 2 мар, 22:05 359 1357955

>>1357947
Ух ты, спасибо за хорошую наводку.

360 2 мар, 22:10 360 1357958

>>1357947
>плохие книги тоже нужно читать
если ты уже знаешь что и куда, да

алсо, где достать MISRA C:2012? на либгене только 2004

361 3 мар, 00:07 361 1358020

https://www.youtube.com/watch?v=KJgsSFOSQv0

Какие есть хорошие видео курсы по С? Кроме СЭС50.

Ответы5815158852

362 3 мар, 10:14 362 1358141

Почему если убрать размер строки у t, то программа вылетает?
#include <stdio.h>
int main()
{
char s[100]= "test string";
char t[100] = "stroka";
strcat(s,t);
printf("%s",s);
return 0;
}

void strcat(char s, char t){
while(s++ !='\0');
s--;
while(s++=*t++);
}

Ответы58152

363 3 мар, 10:37 363 1358151

>>1358020
Посмотрел видео.
Как правильно записывать поинетры?
int pointerAge = &age;
int pAge = &age;

Или какой другой вариант?

Ответы58185

364 3 мар, 10:40 364 1358152

>>1358141
Ничего не вылетает https://ideone.com/uBLt0D

Ответы58186

365 3 мар, 11:30 365 1358185

>>1358151
Например, в glib в объявлениях функций имена параметров указателей кончаются на p. Вообще, сишный стиль краткий, если хотя бы посмотреть на имена тех же функций стандартной библиотеки strcmp, memcmp и т.д., так что pointer явно длинновато, максимум ptr.

Ответы58187

366 3 мар, 11:31 366 1358186

>>1358152
Он видимо у s убирал.

367 3 мар, 11:33 367 1358187

>>1358185
> сишный стиль краткий, если хотя бы посмотреть на имена тех же функций стандартной библиотеки
Не надо на них смотреть. Все это делалось в те времена, когда количество значимых символов в именах было дико ограничено, чтобы экономить память и время компиляции, поэтому ребята крутились как могли и писали вот эти нечитаемые strpbrk.

368 3 мар, 11:43 368 1358191

Можно ли в С создать указатель на функцию и передать этому указателю функцию с определенными аргументами, а потом вызвать эту функцию через указатель не указываю аргументов?

Ответы58198581995821258291

369 3 мар, 11:55 369 1358198

>>1358191
в этом случае пишут еще одну функцию обертку, в которой игнорируются входные параметры, а вместо их подставляются сохраненные значения внутри этой функции
на с++ обычно пишут функтор, в котором сохранение состояния выражается более явно

370 3 мар, 11:57 370 1358199

>>1358191
Нет. Максимум ты можешь добиться такого с помощью кодогенерации в рантайме (libffi или jit какой-нибудь), но насколько кроссплатформенно это будет - зависит от того, как ты это будешь делать. С другой стороны, ты явно хочешь чего-то странного. Ты можешь, например, сделать так, чтобы твоя функция вместо нескольких аргументов функция принимала один указатель на структуру или на массив с аргументами. Тогда ты сможешь сделать что-нибудь типа struct { void (∗func)(void ∗args); void ∗args; void ∗result; } myfunc = { ... }, и потом сделать какой-нибудь callfunc(&myfunc);

Ответы58213

371 3 мар, 12:07 371 1358212

>>1358191
Нельзя.

Ответы58213

372 3 мар, 12:11 372 1358213

>>1358199
>>1358212
ха ха
байтоебики
шоры на глазаъ

373 3 мар, 13:28 373 1358291

>>1358191
Нужна библиотека GNU libffcall с помощью alloc_callback можно вроде как такое сделать, я правда не пробывал никогда
http://www.gnu.org/software/libffcall/callback.html
Еще есть екстеншен под clang который добавляет "блоки", но это нужно устанавливать llvm, clang и потом само libblocksruntime-dev
https://en.wikipedia.org/wiki/Blocks_(C_language_extension)

374 3 мар, 13:43 374 1358299

Я не понимаю что такое llvm и как он работает. Как он связан с асмом и машинным кодом? Что это вообще?

Ответы58372

375 3 мар, 15:25 375 1358372

>>1358299
Вместо того чтобы компилить сразу в машинные коды, код сначала превращается в какой-то промежуточный вид, а потом из него компилиться в машинный код для конкретной системы. Если у тебя есть 10 языков и 5 систем, если ты хочешь использовать их все на всех системах - тебе прийдется написать 50 компиляторов. А с таким подходом тебе нужно 10 компиляторов с языков высокого уровня в промежуточный вид, и пять компиляторов с промежуточного в машинные коды конкретной системы.

Ответы58376

376 3 мар, 15:40 376 1358376

>>1358372
> код сначала превращается в какой-то промежуточный вид
На самом деле так делает любой серьезный компилятор, просто у LLVM байткод стандартизирован, документирован и опубликован. И еще его можно в таком виде таскать, тогда как обычно у компиляторов промежуточное представление живёт в лучшем случае до линковки.

377 3 мар, 19:23 377 1358563

Всем привет я из школы 21 буду учить си и буду крутой програмиссткой давайте дружить)

Ответы5858158802

sage 378 3 мар, 19:53 378 1358581

>>1358563
Удобно плавниками-то печатать?

379 3 мар, 21:33 379 1358644

>>1351181 (OP)
Спрошу тута.
Посоветуйте деревенщине годное что-нибудь по системному программированию под *nix. А то под венду вагон туторов по ддлкам, мультитредингу и всему такому, а то под никсами я только fork() знаю.

Ответы58650

380 3 мар, 21:40 380 1358648

>>1351181 (OP)
анон, есть сорсы какой-то хитрой большой сишной либы, там куча кого-то говна, каких-то монструозных мэйкфайлов и прочего (в чем по слову говно можно было понять я не шарю) - можно как-то без боли (хаха) для нуба это всё скомпилировать и пройтись по интересующим меня кускам в дебагере? иде там какие-то годные для этого люди используют или как вообще?

Ответы58652

381 3 мар, 21:40 381 1358650

>>1358644
Попробуй "Искусство программирования под Unix".
Книг так-то достаточно, мог бы сам загуглить и начать читать.
Алсо туторы для дебилов.

Ответы58705

382 3 мар, 21:41 382 1358652

>>1358648
В нормальных либах есть файл с инфой по установке, дебажить можешь подсосавшись GDB, например.

Ответы58656

383 3 мар, 21:50 383 1358656

>>1358652
ну вот к сожалению нету, на сайте либы пишут что проще всего устанавливать - скачать пакеты вашего дистра.
сука, ну неужели по-человечески никак это не делается? не первый раз такая ситуация, не понимаю блеа как вообще дебажить большие чужие либы, как это нахер всё собирается...

Ответы58713

384 3 мар, 22:45 384 1358705

>>1358650
Ну туторы по какому-нибудь WinAPI дело хорошее. Понял основы и закапываешься в MSDN. А потом плачешь от кривости устройства своей программы
Мимо

385 3 мар, 22:55 385 1358713

>>1358656
Ну почитай что там в install пишут, вообще монструозные мейкфайлы нужны чтобы ты мог просто написать make install и все ок если повезет. У тебя проблема в том что ты дебажить хочешь - тоесть тебе нужны тыблицы символов - скорее всего прийдется править мейкфайлы, если они не предусмотрели удобного флага для компиляции. Есть возможность где-то нагуглить уже готовые таблицы под твою библиотеку (если она распространенная) тогда можно попробывать скачать готовый пакет + таблицы. Естественно там куча проблем (вродже того что должны совпадать версии компилятора).

Ответы58742

sage 386 4 мар, 00:06 386 1358742

>>1358713
Ты так говоришь
> править мейкфайлы
как будто положить -g и -O0 в CFLAGS - это занятие на целый вечер.

387 4 мар, 07:04 387 1358802

>>1358563
Привет, асечку-писечку?

388 4 мар, 10:16 388 1358852

>>1358020
Никаких, С знают с рождения.

Ответы58883

389 4 мар, 11:05 389 1358883

>>1358852
Ты один из этих китайцев с генными модификациями?

390 5 мар, 00:35 390 1359334

1.На чем писать на винде
2.посоветуйте книжку для новичка,но чтобы не совсем как с маленьким
заранее спасибо

Помогите зеленому Чайник 391 5 мар, 13:32 391 1359522

Парни, есть задание. Надо написать программу для вычисления значения функции f(x) в точке x с помощью ряда Тейлора в окружности точки x0 = 0 . Для функции f(x)= ln (x^2)-x+1 при x=1.5

Ответы5954659716

Петух 392 5 мар, 14:27 392 1359546

>>1359522
Привет, ты че охуел? Тебе эту задачу дали чтобы ты ее сам решил. Формулы все есть, осталось только написать пару строк кода.

393 5 мар, 14:58 393 1359563

Анон, есть годная книга, цикл-статей, что угодно по написанию компиляторов/интерпретаторов на Си?
Modern compiler implementation in С c тигром пойдёт?

Ответы5962659701

394 5 мар, 17:24 394 1359626

>>1359563
Есть, в Др. Добс был цикл статей, мини/тини си конпилер.

Ответы59988

395 5 мар, 18:53 395 1359701

>>1359563
Есть даже книга по написанию компиляторов Си на Си: https://sites.google.com/site/lccretargetablecompiler/

Ответы59988

396 5 мар, 19:23 396 1359716

>>1359522
Сделаю в течение часа за 500
tg luaisnotdead

397 5 мар, 21:25 397 1359812

Здарова, низкоуровневые аноны. У меня дипломная работа с булевыми сетями. Уже был тут с вопросом, стоит ли для такой математически сложной задачи перекатиться на кресты, или нет причин дергаться и можно спокойно на любимой Сишечке осилить. А теперь у меня возникла мысль... не удобнее ли будет на FORTRAN всю эту симуляцию и алгоритмы пилить? Треда по Форту нет, по сему зашел сюда.

Ответы59814598285986359866

398 5 мар, 21:26 398 1359814

>>1359812
собсно, вопрос к тем, кто с имел дело с FORTRAN и может сказать, для чего он удобнее, а для чего нет.

399 5 мар, 22:00 399 1359828

>>1359812
>Уже был тут с вопросом, стоит ли для такой математически сложной задачи перекатиться на кресты
Подозреваю, что ты пилишь такой говнокод, что похуй
>не удобнее ли будет на FORTRAN всю эту симуляцию и алгоритмы пилить
Нет.

Форт и фортран разные языки.

Удобнее взять python и numba.

Ответы5987860093

400 5 мар, 22:53 400 1359863

>>1359812
>не удобнее ли будет на FORTRAN всю эту симуляцию и алгоритмы пилить? Треда по Форту нет, по сему зашел сюда
Анон, Форт и Фортран это разные языки, есличо. Очень-очень разные.

Ответы59878

401 5 мар, 22:59 401 1359866

>>1359812
Я бы на твоем месте не выебывался и писал на том на чем умеешь.

Ответы59879

402 5 мар, 23:24 402 1359878

>>1359828
>>1359863
> Форт и Фортран разные языки
Не знал про Форт, поэтому когда увидел где-то это название, подумал, что речь про Фортран (ласковое сокращение). Я таки имею ввиду не Форт.

403 5 мар, 23:30 403 1359879

>>1359866
Скорее всего, самый рациональный вариант.
Просто думал, что раз Си был придуман для байтоебства (разработка ОС), а FORTRAN для матана (научные вычисления), то последний может оказаться удобнее. До сих пор меня клинило исключительно на Си, так что перекат в любом случае будет болезненным, а олдскул мне как-то больше по душе. Хотя, может и вправду "этот ваш" Python такой легкоусвояемый-мощновозможностный-проектопозахватуземлипригодный...

Ответы5989459924

404 6 мар, 00:04 404 1359894

>>1359879
Вся математика нынче пилится на питоне, там либ ёбнешься сколько, то что ты на си напишешь строчек за 200, на питоне займет 10.
Если ты оэлдэ-извращенец юзай фортран, но я бы взял питон, он реально простой, тем более если ты не изучаешь язык, а пилишь на нем конкретный проект.

405 6 мар, 02:00 405 1359924

>>1359879
>Скорее всего, самый рациональный вариант.
Самый рациональный вариант использовать вуз для освоения технологий, которые пригодятся в дальнейшем. И "Я бы на твоем месте не выебывался и писал на том на чем умеешь." - это хорошо для бизнеса, а не для диплома.
Поэтому бери python+numba. Освоишь, заодно и код на сишке будешь писать менее говнокодистый.

Фортран первый высокоуровневный язык, на нем много научных вычислений просто из-за того, что их дохуя написали за полвека его существования. Но сам язык хуевый.

Ответы59978

406 6 мар, 09:22 406 1359978

>>1359924
>И "Я бы на твоем месте не выебывался и писал на том на чем умеешь." - это хорошо для бизнеса, а не для диплома.
Как говорил брус ли - надо боятся не того кто написал 100 строк на 100 языках, а того кто написал 1000000 строк на 1 языке.

Ответы5998259989

407 6 мар, 09:32 407 1359982

>>1359978
Я на 100 языках тебя уделаю, пока ты будешь 1000000 делать на одном.

408 6 мар, 09:45 408 1359986

НУБО_ВОПРОС

int array[4][8];
...
func(array);

Что в данном случае передётся в функцию? Ну всымсле НЁХ/поинтер(если поинтер то на что?)?

Ответы5999060219

409 6 мар, 09:46 409 1359988

>>1359626
>>1359701
Моё увожение!

410 6 мар, 09:50 410 1359989

>>1359978
>1000000 строк на 1 языке.
И потом он будет преподовать в ненавистном ВУЗике ненавситным студентам и продолжать фапать на фортран. Действительно, страшно.

Ответы59991

411 6 мар, 09:56 411 1359990

>>1359986
int ★★

Ответы60219

412 6 мар, 09:57 412 1359991

>>1359989
На фортран фапают олды, они как раз на нем считали свой матан, примерно до появления си. Фортнайт фортран они осилили, а си уже нет. Им щас как раз 70-80 лет и они преподают.

Ответы59994

413 6 мар, 10:03 413 1359994

>>1359991
Си для матана не подходит. Язык, в котором даже не проверяется выход за пределы массива, это маразм.

Ответы5999860014

414 6 мар, 10:11 414 1359998

>>1359994
Ну да, зайди в местный нии матана и механики и расскажи им как на си не пишут.

Ответы60001

415 6 мар, 10:29 415 1360001

>>1359998
Наверное поэтому "местные НИИ" такое дно над которым только насмехаются, хуже чем жарить бургеры в макдаке.

Ответы6000360055

416 6 мар, 10:37 416 1360003

>>1360001
Ну, ты хотя бы попытался поискать причину. Это уже похвально.

Ответы60005

417 6 мар, 10:53 417 1360005

>>1360003
Но ведь он прав. Уважающий себя человек не будет работать за еду, причем очень хуевую

Ответы60008

418 6 мар, 10:56 418 1360008

>>1360005
А дело в этом исключительно в языке программирования?

Ответы60058

419 6 мар, 11:08 419 1360014

>>1359994
> Язык, в котором даже не проверяется выход за пределы массива, это маразм.
Что мешает написать структуру либо использовать написанное до тебя?

Ответы60058

420 6 мар, 12:33 420 1360055

>>1360001
Ну тебе видней с дивана, а пока крылатые ракеты в сирии летают и танчики стреляют на твоей кукареку всем пофиг.

Ответы60057

421 6 мар, 12:38 421 1360057

>>1360055
>крылатые ракеты в сирии
А потом сами же и ноете, что бабахи вас терроризируют. Вроде программисты тут, а с логикой на "вы".

422 6 мар, 12:39 422 1360058

>>1360008
И в языке тоже. Сброд, не способный даже выбрать язык для своей работы, это идиоты, а идиоты не могут ничего хорошего произвести, вот и находятся на дне как и заслужили.
Если что, настоящие ученые используют питон, как самый удобный для любых экспериментов. А в продакшен они ничего не делают, так что производительность им не важна совершенно.

>>1360014
Вопрос был в языке подходящем для матана, а не в языке в котором можно навилосипедить что угодно. Пердолик головного мозга, который вместо работы лепит велосипеды, даже не приступая к собственно работе, это еблан, просирающий время впустую, вдобавок шизло, подменяющее настоящую цель раболты на свой манямирок велосипедов.

Ответы6006360067

423 6 мар, 12:53 423 1360063

>>1360058
>настоящие ученые используют питон
Спасибо.Давно так не смеялся.

Ответы60267

424 6 мар, 12:59 424 1360067

>>1360058
Непонятно ты тупой или так тралишь.
Одно дело ученые в говне моченые, другое дело двачер который собрался лезть в другой язык для написания дипломной работы.

Ответы60072

425 6 мар, 13:08 425 1360072

>>1360067
А дипломная работа это что? Продукт на рынок или макет показать что алгоритм работает? Мне кажется, второе, именно этим занимаются ученые.

Ответы60089

426 6 мар, 13:36 426 1360089

>>1360072
Так ты не тралишь. Разница в том что ты собираешься одну работу сделать или заниматься этим, те не разовая работа. Проведу доступную тебе аналогию либо ты работаешь перфоратором каждый день тк ты строитель, либо ты учишься работать перфоратором для того чтобы сделать 1 дырку.

Ответы60108

100 Кб, 811x693
427 6 мар, 13:40 427 1360093

>>1359828
>Удобнее взять python и numba.
Дяяя, удобнее, хороший язык.

Ответы60111

428 6 мар, 14:13 428 1360108

>>1360089
Дипломы сдают в ВУЗе, это учебное заведение ученых, при них там ученые клубы, в которые студент может прямо перейти далее работать, либо не захочет и сваливает, получив корочку, которую требуют на работе. Но на работе корочка это формальность, а на самом дел таме требуют совсем другие знания, которые ты учишь самостоятельно.

Ответы6010960118

429 6 мар, 14:15 429 1360109

>>1360108
Че ты несешь вообще, даун? Какой работодатель, какой диплом? Речь была про то чтобы лезть в другой язык ради дипломной работы. Земля тебе пухом, долбоеб.

Ответы60113

430 6 мар, 14:19 430 1360111

>>1360093
>пробел является синтаксической единицей
>для тупой обезьяны это слишком сложная концепция ведь пробелы невидимы
>ПЛАХОЙ ИЗЫК, РЯ!

Ответы60158

431 6 мар, 14:23 431 1360113

>>1360109
>язык ради дипломной работы
>ты строитель, либо ты учишься работать перфоратором
Где связь, имбецил?
Диплом = ВУЗ = ученые.
Строитель = работа = работа, дебил, ферштейн?

Ответы6011660177

432 6 мар, 14:27 432 1360116

>>1360113
>Диплом = ВУЗ = ученые
Хуй=говно=моча

Ответы60118

433 6 мар, 14:29 433 1360118

>>1360116
>>1360108
Перечитывай до просветления, если можешь читать вообще.

Ответы60177

54 Кб, 640x480
434 6 мар, 15:35 434 1360156

Сап Сисачь, у меня такой вопрос -

есть приложение, у этого приложения есть ресурсы (картинки звуки текст в своих директориях) как заставить в коде искать их тупо в той же папке где и это приложение? То есть что бы не статичные пути при компиляции какие то вбивать, а что бы вот как у бинарников фаирфокса с сайта - их можно распокавать в любое удобное место (/opt/firefox предположим) симлинкнуть бинарий в /usr/local/bin и оно работает апдейтится. На Си вообще так можно сделать?

get_pwd просто рабочую директорию выводит а не ту в которой придложения как я понял так что не предлагать

Ответы60219

435 6 мар, 15:41 435 1360158

>>1360111
А разве в современных Иде для питона нет возможности поставить отображение спейсов символами? В виде ещё с древнейших версий это можно сделать, поэтому хз почему это в си треде у кого-то багор должно вызывать

436 6 мар, 16:20 436 1360177

>>1360118
>>1360113
Питонодебил не палится.

437 6 мар, 17:52 437 1360219

>>1359986
Численно - адрес первого элемента массива в памяти (т.е., (uintptr_t) &array[0][0]), тип - int (∗)[8], т.е., указатель на массив из 8 интов.

>>1359990
Нет, ты не прав, автоматически к указателю преобразуется только один (первый) уровень массива: массив из 4 массивов из 8 интов -> указатель на массив из 8 интов.

>>1360156
> как заставить в коде искать их тупо в той же папке где и это приложение
Ну получай путь до себя (readlink("/proc/self/exe")), иди до первого слеша с конца строки, втыкай вместо него '\0'. Естественно, если там хардлинки вместо симлинков, то так не прокатит. Но не делай хардлинки, вот и все. Алсо, лучше вытащи это в отдельную функцию и сделай кроссплатформенно: на винде GetModuleFileName(NULL) есть для того же.

Ответы6027360280

438 6 мар, 18:39 438 1360267

>>1360063
Аналогично. Сейчас бы он попробовал на питончике покодить, скажем, расчет погоды это просто пример на кластере с использованием GPU. Удачи ему в этом.

439 6 мар, 18:43 439 1360273

>>1360219
> втыкай вместо него '\0'
Пиздец так то подход, даже не понял вначале нахуй оно нужно пока в твоем посте подсказку не увидел оказывается в си так строку рубят, впрочем что еще ждать от С99
Путь взял из argv[0] /proc решение не кросплатформенное и даже в никсах отличается, для винды свой отдельный уродливый #ifdef, хардлинков в программе нигде не валяется вроде, а если всмысле кому-то понадобится сделать хардлинк на бинарник то это уже похуй.
Благодарю.

Ответы60323

440 6 мар, 19:02 440 1360280

>>1360219
А это, еще такой вопрос почему переменная со строкой не скрещается?

fn_to_call(path"/img.png");

path инициализирована через char path[256]; догадываюсь что она типа массив и так просто его записывать в строку нельзя, но я видел в некоторых примерах что так записывабт иногда. Или это только когда константой в хидере прописано и компилятором автоматически подставляется, а так вообще нельзя?

Ответы60323

441 6 мар, 20:15 441 1360323

>>1360273
> Путь взял из argv[0]
Ты же сам писал про симлинки. В argv будет симлинк, а не настоящий файл. Алсо, в argv[0] может быть что угодно, включая неполный путь или вообще какой-нибудь мусор: https://ideone.com/NWijmR

>>1360280
> почему переменная со строкой не скрещается
В Си нет строк. Есть массивы char, заканчивающиеся \0, которые по соглашению используются вместо строк. В них же разворачиваются и строковые литералы. А чтобы объединить два массива придумали всяческие strcat(), а также циклы или memcpy на худой конец. Тебе strcat() вполне подойдет, например.

> видел в некоторых примерах что так записывабт иногда
Автоматически (на этапе компиляции) склеиваются только литералы. Делают, например, так:
#define PREFIX "Hello, "
puts(PREFIX "world!") но это потому, что оно развернется в puts("Hello, " "world!"); и литералы склеятся.

Ответы60332

442 6 мар, 20:28 442 1360332

>>1360323
Понятно. Спасибо.
Буду тогда ifdef -ами под разные ос разруливать.

Ответы60455

71 Кб, 740x740
443 6 мар, 20:35 443 1360334

Где можно скачать? Торрент не находит.

Ответы60350

444 6 мар, 21:06 444 1360350

>>1360334
4ое издание в джву нашел за 3 минуты гуглом.

Ответы6037260373

445 6 мар, 21:38 445 1360372

>>1360350
Скинь на ргхост, няша.

Ответы60378

446 6 мар, 21:38 446 1360373

>>1360350
Сильное отличие от седьмого?

Ответы60378

447 6 мар, 21:50 447 1360378

>>1360372
он зароскомнадзорен
>>1360373
Серьезно? Ты даже поиск освоить не можешь, может не надо тебе программирование?

Ответы60494

448 6 мар, 23:07 448 1360455

>>1360332
Вот зачем ты спросил? Как мне теперь с этим жить? Почему линукс такой линукс? https://ideone.com/AhIPz6

Ответы60535

449 7 мар, 01:55 449 1360494

>>1360378
Ну тебе сложно скинуть чтоле?

450 7 мар, 08:09 450 1360535

>>1360455
Надеюсь ты не специально для меня все это писал?
Для линукса можно еще через /proc/pid/exe getpid()
https://stackoverflow.com/questions/143174/how-do-i-get-the-directory-that-a-program-is-running-from#198099

Или вот библиотеку кто то написал (но в ней через self)
https://github.com/gpakosz/whereami/blob/master/src/whereami.c

Поскольку у в коде и так уже этих прагм (или как это называется) натыкано я по своему их напишу.

Ответы60608

451 7 мар, 12:33 451 1360608

>>1360535
> Надеюсь ты не специально для меня все это писал?
Нет, я экспериментировал просто.

> Для линукса можно еще через /proc/pid/exe
/proc/self - это симлинк для /proc/<pid>, где <pid> - твой pid, так что это одно и то же.

452 8 мар, 19:13 452 1361118

Попала на основное обучение в школу 21 теперь я буду круче вас всех домоседов тупых

Ответы61131612556128661368

453 8 мар, 19:30 453 1361131

>>1361118
молодец, респект
удачи тебе

454 9 мар, 02:13 454 1361255

>>1361118
Сначала научись чему-нибудь полезному и работу найди, потом кукарекай.
Понабежали животные со своей школой, пиздец.
хоть и толстота

455 9 мар, 07:36 455 1361286

>>1361118
> на основное обучение в школу 21
А тип то какой на выходе?

456 9 мар, 13:05 456 1361368

>>1361118
С учетом того, что бассейн ещё идет, ты там Грефу отсосала чтоле?

457 10 мар, 17:54 457 1362058

>>1351181 (OP)
Есть ли смысл учить Си, если могу вкотиться в С++?

Ответы62087

458 10 мар, 18:39 458 1362087

>>1362058
Если ты ОС пишешь, первичную систему инициализации, драйвер или просто хочешь форкнуть какой то легаси проект на Си то однозначно, а если какое то десктопное приложение с нуля писать то зачем мучится писать его на си, честно говоря я деже не понимаю зачем мучится писать его полностью на С++

Ответы62089

459 10 мар, 18:43 459 1362089

>>1362087
Т.е. Си больше подходит для низкоуровневого программирования, чем кресты?
Ну и поддержка легси.

Ответы6209062113

sage 460 10 мар, 18:45 460 1362090

>>1362089
Си подходит, если ты хочешь понимать все, что происходит в программе. Т.к., в отличие от C++ язык простой, и не приходится заниматься шаманством.

Ответы62091

461 10 мар, 18:46 461 1362091

>>1362090
Типа, вручную врубать гарбедж коллектор и указывать ему, что делать?

462 10 мар, 19:37 462 1362113

>>1362089
> Т.е. Си больше подходит для низкоуровневого программирования, чем кресты?
На мой субъективный взгляд они оба не подходят уже ни для чего, но просто нету пока созревшей альтернативы.
В Си меньше всяких возможностей, там нет ооп там нет нормальной работы со строками, нет никакой безопасности в плане работы с памятью, только математика и какие то базовые конструкции. В следствии чего программы получаются маленькими легковесными и быстро компилируемыми хоть на утюг прпи наличии компилятора. Плюсы по сравнению с Си содержат кучу всего, но это только по сравнению с Си, по сравнению с другими более модными языками в них куча архаизмов Си а современных фичь постоянно нехватает. Но для плюсов есть оптимизирующие компиляторы и расширения всякие для написания высоконагруженной и сверхпроизводительной хуеты а для модных молодежных только вот какой то один фронтенд к ллвм генерирующий мягко говоря неспешный и не очень оптимизированный код, а то и вовсе какой то самопальный компилятор.

В общем Си на сегодня занимает нишу эмбэйдщины, плюсы хайлоад приложений и научной всякой вычислительной хуиты.
Во всем остальном ВМ языки проявляют себя лучше. Пистон, Сишарп, Джаваскрипт.

Ответы6212162128

sage 463 10 мар, 19:52 463 1362121

>>1362113
> там нет ооп
Отсутствие ключевого слова class - это преимущество. Писать объектно-ориентированный код можно на любом языке.

> нет нормальной работы со строками
А тебе какие строки? UTF-32 или UCS-16? Или, может быть, UTF-8, но с тормозами и исключениями, если строка невалидная? А если у меня микроконтроллер, и я в рот ебал ваш юникод, мне 6 бит на символ за глаза? Поэтому отсутствие "строк" - это преимущество. Огромный недостаток - то, что по традиции байты не отличают от символов и вдалбливают это в каждой первой книге, но это проблема большинства старых языков. Вот, например, в Python3 одумались.

> никакой безопасности в плане работы с памятью
Это системный язык. Не существует никакой безопасной работы с памятью, если ты сам определяешь границы. Тот же раст отлично это показывает - ты либо отсасываешь компилятору и не можешь сделать без костылей даже базовые вещи, либо... у тебя небезопасная работа с памятью.

Ответы6212862153

464 10 мар, 20:04 464 1362128

>>1362121
>>1362113
Лол, т.е. я правильно понимаю, что С++ (это его ты пистоном назвал?) - это фреймворк для Си, с ограничениями, но фичами?

Ответы621356213962145

465 10 мар, 20:09 465 1362135

>>1362128
Пистон это питон.

Ответы62137

466 10 мар, 20:12 466 1362137

>>1362135
А. Ну да. Там же сишарп и джава (но не скрипт же!)

В общем, если нужно что-то маленькое, низкоуровневое, то это в Си. Если что-то больше, то С++, потому-что не придется ебаться с памятью.

Спасибо за информацию! Пожалуй, попробую Кресты.

Ответы62155

467 10 мар, 20:12 467 1362139

>>1362128
Ахуеть, представь себе, спп реализован на си, и при желании ты можешь реализовать любой метод спп любого стандарта реализовать на си99. ты фронтендер да?

Ответы62140

468 10 мар, 20:14 468 1362140

>>1362139
Оу, прости, что в треде для начинающих вкатываться, я демонстрирую себя, как нуб, который только-только начинает вкатываться.
А тебя не смущает, что я на русском говорю? Вдруг у тебя другие ожидания.

Ответы62141

469 10 мар, 20:16 469 1362141

>>1362140
Это не тред для начинающих. Это мертвый ситред, заваленный шлангоебами и вс дегенератами, и если ты хочешь тут остаться — привыкай.

Ответы62143

470 10 мар, 20:19 470 1362143

>>1362141
>Это мертвый ситред
Ват? Нумерной, не утонувший, дошедший до бамп-лимита и мертвый?

>шлангоебами и вс дегенератами
Этого ты так любишь?

>и если ты хочешь тут остаться
Я хотел совет и получил его. Теперь я знаю, что если хочу попробовать, то намного разумнее будет начинать с крестов.

Ответы62159

471 10 мар, 20:21 471 1362145

>>1362128
>это фреймворк для Си, с ограничениями, но фичами?
Нет. Это 2 разных языка со своими фичами и ограничениями.

472 10 мар, 20:26 472 1362153

>>1362121
> Отсутствие ключевого слова class - это преимущество. Писать объектно-ориентированный код можно на любом языке.
Ключевое в объектно ориентированном подходе не наличие или отсутствие слова class, а наследование.

> А тебе какие строки? UTF-32 или UCS-16? Или, может быть, UTF-8, но с тормозами и исключениями
Да хоть какие, я же говорю про средства выражения и инструменты - регекспы мультистроки вставки, вот это вот все.

> Это системный язык. Не существует никакой безопасной работы с памятью, если ты сам определяешь границы.
В эльбрусе существует и в некоторых разрабатываемых на западе архитектурах по видимому будет то же.
Так что готовься сосать у компилятора и учится решать задачи в рамках логики/конструкций высокоуровневого языка.

Ответы62163

473 10 мар, 20:31 473 1362155

>>1362137
>не придется ебаться с памятью
Придётся. Есть умные указатели, но ты всё-равно должен представлять себе, кто владеет чем и в какой момент всё удалять.

474 10 мар, 20:35 474 1362159

>>1362143
Блять. Пощади, дебилоид. Если ты только-только начал вкатываться, то задавай нормальные вопросы, а не свою хуету уровня b с вопросами уровня куда вкатываца. Спрашивай по сабжу, ответят нормально.

sage 475 10 мар, 20:41 475 1362163

>>1362153
> Ключевое в объектно ориентированном подходе
ООП - это такой термин, у которого дохуя возможных трактовок, и каждый выбирает самое удобное для него толкование. Ты вот, например, даже не указал, что именно собрался наследовать. Реализацию ты можешь отлично наследовать на сишке.

> я же говорю про средства выражения и инструменты
Берешь либу и используешь.

> В эльбрусе существует
Нормальную документацию завезли уже?

> по видимому будет то же
Инструкция bound в x86 старше, чем ты сам. Вот только оно настолько никому нахуй не нужно, что кроме как в тормознутом вижуалбейсике в двухтысячных этого никто нигде не видел. Да и там отключалось.

> учится решать задачи в рамках логики/конструкций высокоуровневого языка
tsya.ru
Что касается логики и конструкций, вот я пишу прошивку или даже меморименеджер для ОС, вся память моя, что контролировать собираешься? Похуй. Пишу обычный сервер под линукс, у меня пул объектов, я их заранее выделил, они все мои, как будешь контролировать доступ от тредика, связанного с одним объектом к другому объекту из этого же пула? Интел вон не осиливает между адресными пространствами доступ разделить, постоянно что-то протекает, о чем уж тут говорить вообще.

Ответы62220

476 10 мар, 22:00 476 1362220

>>1362163
> Ты вот, например, даже не указал, что именно собрался наследовать
Как чего наследовать https://ru.wikipedia.org/wiki/Наследование_(программирование)
> Берешь либу и используешь.
Да нету такой либы чтобы дать то чего изначально нет.
> Нормальную документацию завезли уже?
Ну ты же охуел, подробное описание архитектуры валяется давно http://www.mcst.ru/files/511cea/886487/1a8f40/000000/book_elbrus.pdf#page=150
Описания команд и вообще всей системы программирования только нет
> Что касается логики и конструкций, вот я пишу прошивку или даже меморименеджер для ОС, вся память моя, что контролировать собираешься? Похуй.
Это же часный случай, я вот то же например не хочу картинку качать на комп куда то что бы ее запостить а хочу сразу с буры по url постить сидеть. Давайте убирем все ограничения жабаскриптам что-ли пускай шлют запросы куда и как хотят, или не стоит все таки?
Я не говорил вроде нигде что там где оно нахуй не надо надо ее туда втулить, мне просто непонятно что ненормального можно увидеть в нормальном разруливании задачь средствами языка.
Тем более с эльбрусом как я уже сказал будешь как фуфел-ВМщик в область видимости втыкатьи учиться программировать по строгим правилам.

Ответы6222862244

sage 477 10 мар, 22:10 477 1362228

>>1362220
Хуйня твой эльбрус.

Ответы62244

478 10 мар, 22:29 478 1362244

>>1362220
> Да нету такой либы чтобы дать то чего изначально нет.
Это в JS так, "вот браузер нипаддерживает, значит нельзя". А в Си если чего-то нет, ты просто берешь и пишешь. И чаще всего это уже кто-то написал за тебя.

> Ну ты же охуел, подробное описание архитектуры
> Описания команд и вообще всей системы программирования только нет
То есть все еще нихуя нет, что и требовалось доказать.

> www.mcst.ru
> Контроль границ данных и кода обеспечивается за счет того, что в качестве указателей на данные в программах на языках C и С++ применяются дескрипторы переменных и дескрипторы объектов соответственно
Очень хорошее, глубокое техническое описание. Они изобрели fat pointers? Оно давно везде есть, но только область применения узкая, потому что тормоза, и потому что границы объектов часто размыты. Например, как в случае с пулом объектов выше.

> а хочу сразу с буры по url постить
В винде, начиная вроде бы с 98, в диалог открытия файлов можно вставлять урл.

> мне просто непонятно что ненормального можно увидеть в нормальном разруливании задачь средствами языка
В высокоуровневом языке защита ног от программиста - это плюс. А в низкоуровневом ты, а не язык, определяешь, что именно из всего окружающего мира - твои ноги, поэтому если язык лезет со своим охуенно важным мнением - это плохой язык.

>>1362228
В целом нет. В том виде, в котором оно сейчас - да.

Ответы62250

479 10 мар, 22:39 479 1362250

>>1362244
VLIW процессоры это тупиковая ветвь развития в процессоростроении, так что он говно в любом случае.

480 10 мар, 23:13 480 1362259

Сап, аноны. Подскажите, пожалуйста, по следующему вопросу:
Есть ли стандарты языка в печатном виде C99/C11 и в нормальном переплете?

Дело в том, что читать с экрана глаза устают и с печатного варианта приятнее. Можно, конечно, распечатать на работе, но тогда это превращается в кипу бумажек, в которой еще листы постоянно теряются и путаются. Поэтому, я был бы даже готов купить стандарты в виде книги, если цена приемлемая.

Ответы622626226662327

481 10 мар, 23:21 481 1362262

>>1362259
скоросшиватель

Ответы62268

482 10 мар, 23:26 482 1362266

>>1362259
> Есть ли стандарты языка в печатном виде C99/C11 и в нормальном переплете?
Есть. Официальные, у iso.org. 13к, и он твой. Ну или есть многочисленные сервисы print on demand, получится в 3-4 раза дешевле, но при этом все еще с нормальным качеством.

Ответы62268

483 10 мар, 23:29 483 1362268

>>1362262
>>1362266

Ок. Спасибо. 13к многовато для меня будет. Да и в 3-4 раза дешевле - тоже. Видимо, буду возиться со скоросшивателем)

Ответы62278

484 10 мар, 23:47 484 1362278

>>1362268
Последний драфт c17 качай и печатай. Если найдешь офф. релиз c17 стандарта, кинь сюда

485 11 мар, 01:14 485 1362327

>>1362259
Просто интересно, зачем тебе "читать" стандарт? Я понимаю использовать как справочник (раздел тут, раздел там), но чтобы отдельно сидеть и читать? Там же legalese очень серьёзный.

Ответы62331

486 11 мар, 01:28 486 1362331

>>1362327
А я его как справочник и собираюсь использовать. Видимо, плохо сформулировал в своем вопросе. Подсмотреть что-то, если непонятно, что бы под рукой было. Лучше в стандарте смотреть, чем на StackOverFlow искать. Что-то "читать" ради того, что бы просто "читать" - я не собираюсь, т.к. это глупо.

Ответы62337

487 11 мар, 02:14 487 1362337

>>1362331
> Лучше в стандарте смотреть, чем на StackOverFlow искать
Не факт. В стандарте ответы могут быть раскиданы по разным главам, а на SO тебе все это уже нашли и свели в один короткий ответ, да еще и с комментариями.

488 11 мар, 16:35 488 1362484

Подскажите, где я обосрался? Выводит огромное значение, хотя вроде все логично
https://pastebin.com/raw/ivBedi3m

Ответы624996250462614

sage 489 11 мар, 16:56 489 1362499

>>1362484
> Подскажите, где я обосрался?
Обосрался ты в первую очередь в отсутствии проверки значения, которое вернула scanf(). Если бы проверил - узнал бы, что scanf() делает ноль присваиваний. А делает она так потому, что указание точности в scanf() не имеет смысла и поэтому не поддерживается. Оставь просто %lf, и все заработает.

Ответы62503

490 11 мар, 17:01 490 1362503

>>1362499
Спасибо большое. Я чет на дауничах перепутал, когда это можно юзать, а когда нет

491 11 мар, 17:03 491 1362504

>>1362484
https://ideone.com/NfNWLn
Ебать я че зря тут конпелировал

Ответы62522

sage 492 11 мар, 17:58 492 1362522

>>1362504
Тебе же написали, что %Lf для long double. А у тебя что?

493 11 мар, 21:10 493 1362614

>>1362484
Бля, ну куда ты лезешь? Это не объектная хуита, тут нельзя вызывать методы на каждый пук. Если ты допилишь этим же образом функционал до базовых функций обычного калькулятора, у тебя будет программа будет два числа складывать за 50кб памяти. Или в джаву или сишарп, тебе самому же легче будет

Ответы6262362631

494 11 мар, 21:16 494 1362623

>>1362614
У него все ок. Код читаемый, вызов cube() компилятор заинлайнит. Можешь сходить на годболт и проверить.

Ответы62669

495 11 мар, 21:26 495 1362631

>>1362614
>ему жалко 4-6 байт на пролог и эпилог функции
Плюс, всё равно инлайн будет.

Ответы62669

496 11 мар, 21:29 496 1362636

Поясните, нахуя сейчас учить С, если есть rust?

Ответы62640

sage 497 11 мар, 21:32 497 1362640

>>1362636
Связный список написал уже?

Ответы62666

498 11 мар, 21:51 498 1362666

>>1362640
А ты MemorySanitizer заюзал на gcc? То-то же

Ответы62693

499 11 мар, 21:53 499 1362669

>>1362631
>>1362623

Нельзя так писать на си. Это язык не для этого. Нельзя считая выражение из 10 действий вызывать десять раз разные функции и постоянно в них перекидывать промежуточный результат. Нельзя использовать сканф в реальной работе. То что он делает — это просто реализация контента задачников по джаве на си. Бесполезно, бессмысленно, беспощадно. Таким образом ничему не научиться в си, и судя по всему ему и нужен не си. Ему будет лучше и легче пойти сразу делать это на джаве.

Ответы626836269362707

500 11 мар, 22:02 500 1362683

>>1362669
> Нельзя
Ты запретил?

sage 501 11 мар, 22:10 501 1362693

>>1362666
> А ты MemorySanitizer заюзал на gcc?
Конечно. Но в моем коде редко всплывают подобные проблемы.

>>1362669
> Нельзя использовать сканф в реальной работе.
Единственная здравая мысль. Но он вряд ли пишет что-то реальное, так что никаких проблем по-прежнему нет.

Ответы62705

502 11 мар, 22:18 502 1362705

>>1362693
>Конечно. Но в моем коде редко всплывают подобные проблемы.
И давно в gcc завезли чеки на чтение неинициализированной памяти?

Ответы62725

503 11 мар, 22:19 503 1362707

>>1362669
>Нельзя считая выражение из 10 действий вызывать десять раз разные функции и постоянно в них перекидывать промежуточный результат
Я понимаю, если у тебя оптимизированная функция с SIMD и интнринсиками, когда ты реально считаешь циклы и расчитываешь скедьюлинг на порты проца, или ты пишешь под эмбеддед с хреновым компилятором, который половину языка не поддерживает, тогда да.
>Нельзя использовать сканф в реальной работе
Если в реальной работе ты в прицнипе принимаешь инпут от юзера в проге на Си (или даже плюсах) - это уже провал. А для примеров вполне сгодится. Те же K&R начинали с такого рода примеров.

sage 504 11 мар, 22:46 504 1362725

>>1362705
> чеки на чтение неинициализированной памяти
Обычно решается заполнением кучи всевозможными 0xbaadf00d. И еще шланг умеет давно, и valgrind вроде тоже. Гораздо более частый доступ к неинициализированной локальной переменной ловится еще на этапе компиляции уже лет тридцать.

Ответы62796

505 12 мар, 00:42 505 1362796

>>1362725
0xDEADBEEF
дико проиграли когда индусы спросили, почему у нас в драйвере используется это значение

ПЕРЕКАТ # OP 506 12 мар, 00:51 506 1362800

>>1362799 (OP)
>>1362799 (OP)
>>1362799 (OP)
>>1362799 (OP)
>>1362799 (OP)

Тред утонул или удален.
Это копия, сохраненная 16 апреля 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion