Программирование

Ответить в тред Ответить в тред
Check this out!
C Programming Language #70 /clang/ Аноним # OP 06/08/21 Птн 18:46:24 21193011
C Propaganda.jpg 1965Кб, 2000x2610
2000x2610
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/ https://wandbox.org/ или 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 (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2479.pdf (февраль 2020, с диффами)
- Последний черновик ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf (декабрь 2020)

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

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 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://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

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

https://github.com/kozross/awesome-c

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

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

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

- №67: http://arhivach.net/thread/667170/
- №68: http://arhivach.net/thread/667171/
- №69: http://arhivach.net/thread/688454/ >>2027897 (OP)
Аноним 06/08/21 Птн 19:03:42 21193502
Аноним 06/08/21 Птн 19:11:08 21193663
зачем перекат?
Аноним 06/08/21 Птн 20:46:13 21195094
>>2119366
А сколько бамлимит в /пр/?
Аноним 07/08/21 Суб 04:21:08 21197585
>>2118158 →
лол, так у сишников же очевидно вниз среднюю зарплату тянет кузьмич из оборонного нии, кодящий за банку перловки
Аноним 07/08/21 Суб 12:16:27 21198686
16272887723910.png 56Кб, 553x703
553x703
void ((($$$))) () {{{}}}
Аноним 07/08/21 Суб 13:20:56 21199157
>>2119758
думаю кузмич из оборонного нии не участвует в подобных опросах
Аноним 07/08/21 Суб 15:19:42 21200288
Аноним 07/08/21 Суб 15:21:33 21200339
>>2120028
а хотя посмотрел в архиваче
всегда с 500 перекатывали, ну ладн, чет я ебу значит дал
Аноним 07/08/21 Суб 15:24:57 212004110
>>2119758
лол, как будто у сишников есть другая работа кроме как прогать микрики за еду в нии или прогать микрики за еду у кабанчиков
Аноним 07/08/21 Суб 15:26:13 212004211
>>2119915
Тем не менее зарплату сишникам понизил
Аноним 07/08/21 Суб 15:26:58 212004512
>>2119915
Мимолетом участвуют. А потом узнают что у них не зарплата, а посмешище - и начинают ливать со своих нии в какой-то аутсорс.

Мимосам такой путь прошел.
Аноним 07/08/21 Суб 15:35:47 212005413
image.png 51Кб, 760x666
760x666
image.png 21Кб, 247x706
247x706
image.png 21Кб, 242x711
242x711
Аноним 07/08/21 Суб 15:41:06 212006014
>>2120054
да иди уже нахуй отсюда, шиз.
Аноним 07/08/21 Суб 15:47:31 212006515
>>2120045
>А потом узнают что у них не зарплата, а посмешище
Да они и так знают, как будто бы у них интернета нет. Видимо, это их выбор, либо они больше ничего не умеют. Ведь в норм айтишной фирме придется постоянно учиться новому, ходить на конференции, участвовать в митапах, следить за качеством кода, соблюдать code-style принятый в фирме, делать таски в сжатые сроки, а им легче попивать чаек в нии, пинать хуи и писать говнокод для микриков.
>- и начинают ливать со своих нии в какой-то аутсорс.
Плез. Даже на последней галере если узнают, что к ним идет устраиваться "программист" из нии, его ливанут. Любой фирме лучше нанять новичка без опыта(самоучку или с курсов), чем переучивать недопрограммиста из нии, который (проектировал хуи) прогал микрики в нии за еду.
>в какой-то аутсорс.
Но не на Си же, а на js, javascript и прочих востребованные языках, на Си аутсорса быть не может по логике вещей.
Аноним 07/08/21 Суб 15:48:38 212006716
>>2120060
Сам иди нахуй.
Новички должны знать, что их ждет, если будут учить этот язык: работать за гроши в России и нулевая возможность релокейта в норм страну в принципе.
Аноним 07/08/21 Суб 16:28:27 212013717
>>2120067
>если будут учить этот язык
То не вырастут долбоеба и смогут без труда вкатиться в C++ или чего повыше.
>в норм страну
либераха, плез
Аноним 07/08/21 Суб 17:19:15 212022918
Аноним 07/08/21 Суб 17:22:43 212023619
>>2120229
Свинка из укр зарабатывает на мивину.
Аноним 07/08/21 Суб 17:24:57 212024020
Инженер-програм[...].png 78Кб, 1064x1006
1064x1006
>>2120054
>100 000 р.
Что-то слишком многовато.
Аноним 07/08/21 Суб 17:39:46 212025021
>>2120240
>фреймворком Qt
Ебать дауны.
Аноним 07/08/21 Суб 17:40:26 212025122
>>2120236
Блядь, как же вы заебали своими свиньями. Что то говно, что это.
Аноним 07/08/21 Суб 17:50:45 212025923
>>2120137
>То не вырастут долбоеба и смогут без труда вкатиться в C++
В приниципе тоже самое что и Си, тоже копейки получают.
>или чего повыше.
Так в чем и суть. Нахуя учить Си, чтобы потом учить другой язык? Лишняя трата времени, только и всего. Почему не учить сразу же нормальный язык, чтобы потом же найти нормальную работу, прогая на нем?
А если уж для развития навыков программирования надо, то лучше тогда читать книгу SICP и решать задачки на языке Scheme, язык же си может научить разве что байтоебить указатели. Для работы байтоебом это конечно несомненно нужный навык, а для работы программистом нужны другие навыки, если что.
Аноним 07/08/21 Суб 18:13:21 212027124
>>2120067
во первых какая тебе разница что какой-то хер без специализации вдруг выберет не максимально выгоный путь? или ты из тех хитрых дядек который перенасыщает рынок джуниор-специалистов в веб-макакерстве чтобы те вообще за тарелку борща работали?

во вторых, в этом треде сидят не только вкатывальщики во что-то чтобы бабки иметь, а просто люди, которые уже спецы в чем-то, и получают норм зп, но учат си для души. например я. я тебя успокою, в нии прогать микрики я не пойду, мб я и попробую попрогать микрики когда-нибудь, но так для души, для себя, не за деньги.
А теперь плез, съеби с треда, тут мужики мб даже и женщины, которым нравится си, сидят-пердят тут, лампово общаются. А ты все портишь
Аноним 07/08/21 Суб 18:25:55 212028125
>>2120259
>В приниципе тоже самое что и Си, тоже копейки получают.
Видать, твои представления о крестовых вакансиях ограничиваются поддержкой на 99-м стандарте. Мань, в серьезных высонагруженных промышленных проектах вроде 3d-движков и операционных систем никакой нОрМаЛьНыЙ яЗыК не придет на замену, а коммитет успешно старается, чтоб никому от этого не было больно. ПоБаЙтОеБиТь же уКаЗаТеЛьЧиКи немножко полезно, чтоб научиться уважать кучу, когда имеешь дело с RAII, perfect forwarding и тому подобными вещами.
>или чего повыше
это я действительно хуйню написал, там уже нельзя провести вертикальное сравнение уровня абстракции, особенно если умеешь в темплейты. Но начинать, имхо, надо с Сишки, потому что это классика. Если тебе не доступна вся глубина значения слова классика, нет смысла продолжать.
Аноним 07/08/21 Суб 18:38:24 212029626
>>2120065
Ух, захотелось в нии устроиться. Но меня туда не возьмут
Аноним 07/08/21 Суб 19:17:36 212033327
>>2120271
Во-первых, ты мелкобуквенный, неграмотный даун и твоё мнение может не учитываться.
Во-вторых, на этом и закончим.
Аноним 07/08/21 Суб 19:23:46 212033528
>>2120281
>вроде 3d-движков и операционных систем
Речь идёт о вкатунах, которые уже точно не будут делать движки и операционные системы, их вообще мало кто делает даже среди топ сеньоров, а как раз таки и будут прогать какую-то фигню за еду первые лет 10 точно.
>ПоБаЙтОеБиТь же уКаЗаТеЛьЧиКи немножко полезно, чтоб научиться уважать кучу
Зачем, если во всех современных языках уже есть сборщик мусора? Давай еще на ассемблере прогать, чтобы уважать процессор.
> Но начинать, имхо, надо с Сишки, потому что это классика.
Потому что ты так сказал?
Фронтенд-девелоперу, например, Сишка точно нафиг не сдалась. И большинству программистов точно. Учить надо то, что имеет хотя бы отдаленное отношение к твоей работе и может пригодится в работе, как тому же веб-разработчику в работе пригодится сишка?
Аноним 07/08/21 Суб 20:28:43 212039829
>>2120281
>3d-движков
Их делают 2.5 конторы в мире, мань

>операционных систем
Их вообще на С++ не пишут. Как раз на старом древнем Си.

>в серьезных высонагруженных промышленны
В высоконагруженном бекенде отлично справляется го и даже жаба.
Аноним 07/08/21 Суб 20:33:50 212040430
>>2120067
>Новички должны знать, что их ждет, если будут учить этот язык
Их ждёт довольно лёгкое, приятное и, что немаловажно, БЫСТРОЕ обучение с использованием топовых бесплатных курсов вроде cs50, они не захлебнутся особенностями языка и не растеряют мотивацию на первых порах, им будет легко учить другой язык для работы, потому что
раз у многих языков си-подобный синтаксис
два многие языки для зарабатывания денег заточены под императивщину, как и си
>>2120054
Клован, охуенный у тебя там поиск на хх, надеюсь ты в курсе что буква "С" встречается в выдаче несколько чаще, чем слово "JAVA", и отражает скорее ситуацию по всем языкам и ещё по куче вообще не программистских вакух, ведь буква "С" входит в состав слова "С++", "С#" и ещё миллиона слов, а так же широко используется в описаниях не-сишных вакансий. Тебя объём выдачи не смутил? Автор статьи на хабре видимо твой брат по разуму.
Аноним 07/08/21 Суб 20:45:35 212040931
>>2120404
> лёгкое, приятное
До первого 1 << 31.
Аноним 07/08/21 Суб 20:52:53 212041632
>>2120259
Ты просто еблан ньюфаг корчащий из себя погромиста, за плечами у тебя джаваскрипт интенсив с гикбрейнс, а в голове, в том месте где должна быть такая дисциплина как "архитектура эвм" — пустота. Это довольно легко определить — если человек утверждает, что не знает си, то это совершенно точно указывает на то, что он не знает архитектуру, потому что при изучении архитектуры сишка всегда идёт в нагрузку и чтобы не изучить её в процессе это надо избегать её осознанно. А если ты не знаешь архитектуру, и я не говорю глубоко, я говорю на уровне "прерывания и адресация памяти", то ты не вполне образован как программист. А если знаешь, то и сишку ты тоже знаешь и не прибегаешь срать в сишный тред — тебе прекрасно известны достоинства и недостатки языка и желания толсто набрасывать у тебя просто не может возникнуть, разве что по сильной пьянке.
Аноним 07/08/21 Суб 20:55:03 212041933
>>2120259
>>2120416
Точнее за плечами у тебя сикп, брошенный на упражнении 1.13 (с обязательным выплёскиванием ведра помоев по этому поводу в сикпотред).
Аноним 07/08/21 Суб 20:59:07 212042334
>>2120409
Что "до первого 1 << 31"?
Аноним 07/08/21 Суб 21:13:29 212043735
>>2120423
2 ^ 31 зачастую может легко превраиться в -2 ^ 31
Аноним 07/08/21 Суб 21:26:38 212044936
>>2120437
И как именно это делает обучение программированию с использованием сишки тяжёлым и неприятным, потрудишься объяснить?
Аноним 07/08/21 Суб 21:54:20 212047237
>>2120449
>обучение программированию
Для этого черепашку в Лого придумали
Аноним 07/08/21 Суб 21:58:23 212047438
>>2120472
Черепашка в лого не даёт почувствовать студенту почувствовать контроль над машиной.
Аноним 07/08/21 Суб 22:07:07 212048439
>>2120335
>будут прогать какую-то фигню за еду первые лет 10 точно
Я, конечно, не такой эрудит, и, быть может, ты просветишь подробнее, но утверждение нелогичное. Как ни крути, индустрия нуждается в том самом меньшинстве знающих и ответственных специалистов, которых мало "даже среди топ сеньоров". И откуда их брать, если уважающий себя образованный человек не пойдет работать за еду 10 лет? Деды смертные и не такие обучаемые. Да, дебича, лишь формально владеющего стеком, даже не посвятят в возможный карьерный путь с нуля, но очень даже инвестируют в толкового челика, который умеет в матчасть и искренне хочет уметь больше.
>уже есть сборщик мусора
Да что ты говоришь? В системах реального времени тоже будешь срать аллоками с асинхронной очисткой памяти?
>Фронтенд-девелоперу с верхом амбиций пориджа, например, Сишка точно нафиг не сдалась
пофикисл. Я, конечно, тоже не сын маминой подруги, но и со своей мамкой уже не живу. Год проработал фронтендщиком, т.к. больше никуда брать не спешили, а укатываться с кормящей шеи торопился. Набрался полезного опыта, не зависящего от стека и направления, заебался, уволился и устроился C++ бэкендщиком. Хуй бы я новую работу потянул, если бы еще до первой работы не увлекался олдскульными материями, а слушал одногруппников с их НИНУЖНА и типичным смузихлебским имиджем, который уже на 3 курсе начинал проявляться, фубля. А мог, будь больше терпения, желания и запаса денег, таки вкатиться в разработку охуевшего 3d-движка, который не игровой, а для промышленных нужд с дохуиллионами полигонов. После собеса попросили запилить пет-прожектом какой-нибудь редактор, чтоб подтвердить понимание паттернов проектирования, но суть в том, что в плане DirectX реально инвестировали в девственников, и з/п, очевидно, отличаются от начальных фронтендерских не вниз, а вверх. Еще лично знаю пару человек, которые тоже вкатились без опыта сразу в кресты, при чем один из них практически на Си с классами пишет под что-то unix-подобное, с сетями работает, ебу, сложно короче. Ну, а второй вообще олимпиадник, криптографию какую-то хуячит за нехилые килобаксы. Такие з/п пориджам не снились.
>>2120398
Тебя это тоже касается, а то съебался куда-то, знаю я вас подпездышей. Обнял.
Аноним 07/08/21 Суб 22:13:00 212049040
>>2120335
Кстати, например, в нашей шараге олимпиадники через зав.кафедры с его связями на весьма неплохую работку пробивались, и там, как ни странно, почти всегда C++. Пару лет назад один выпускник, еще далеко моложе 30 лет, расчехлял у доски какие-то жутко пиздатые вещи, отлучившись из Германии, где скромненько делал 70000 евро в месяц не крестах.
Аноним 07/08/21 Суб 22:23:09 212049941
>>2120449
> как именно это делает обучение программированию с использованием сишки тяжёлым и неприятным
Да очень просто - сишка целиком состоит из вещей, на которые можно напороться. Среди них есть вещи, на которые можно напороться даже когда кажется, что все ок.
Аноним 07/08/21 Суб 22:28:47 212050342
>>2120499
Но это все старые, как мир, грабли, и новобранцу только приятно в десятитысячный раз на них наступить, исследовать причину через gdb или давно адекватно написанные книжки, крепче причаститься к мозолям дедов и ощутить себя чуть больше и сильнее. А когда напарываешься на очередную криворукость разработчиков новомодной либы, исследовать в каких версиях какая содомия водится как-то опускаются руки, ведь ты все таки не говно чистить хочешь в лучшие годы, а из автомата стрелять, пусть и по ногам.
Аноним 07/08/21 Суб 22:51:08 212052543
>>2120484
>разработку охуевшего 3d-движка, который не игровой, а для промышленных нужд с дохуиллионами полигонов

Я кстати чуть не устроился такой писать. Графический движок для САПР. Помимо очевидного досконального знания С++, WinAPI, OpenGL, Vulkan, алгоритмов графики, вычислительной математики, многопоточки, требовали еще матан, линал, дифференциальную геометрию и желательно топологию. На все про все - 180к в рублях. Испытательный срок 3 месяца. При этом сам код местами с жутким легаси из нулевых. Ну в общем у них вакансия до сих пор открыта, если что. И это вакансия миддла-сеньора. Джуны им в принципе не нужны были.

>суть в том, что в плане DirectX реально инвестировали в девственников, и з/п, очевидно, отличаются от начальных фронтендерских не вниз, а вверх

Вся графика сейчас либо в геймдеве, либо в геометрических движках САПР, про которые я уже рассказал выше. Про условия работы в геймдеве думаю сам знаешь. Либо какой-нибудь рендер карт, но опять же, это наверное только гугл, яндекс + пара компаний, которые занимаются ГИСами.
Все это очень узкая отрасль, в которой много людей не нужно, ибо большого спроса на графику нет, для очень многих целей достаточно лишь Unreal/Unity.

>пишет под что-то unix-подобное, с сетями работает
Да, знаем мы такую работу, как правило это инфобез и телекомы. Достают DPDK и пишут всякие анализаторы трафика. Интересная тема, только платят как всегда в С++ примерно нихуя, но требуют довольно много, я сам пытался устроиться в такое - меня очень жестко попустили на теме многопоточки, спрашивали про всякие Lock-Free структуры и С++ memory model, которую я увы полностью не смог осилить.

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

Из 8 миллиардов людей всегда найдутся те, кто захочет заниматься системной прогой. Другое дело, что обучение такого человека будет стоить довольно дорого, поэтому нанимают всяких додиков с PhD, студентов с прикормленных кафедр вузов. Достаточно лишь объяснить, что то, чем они будут заниматься, - это самое настоящее элитное программирование, а фронтенд и бекенд - для низкоинтеллектуального быдла.

>одногруппников с их НИНУЖНА и типичным смузихлебским имиджем, который уже на 3 курсе начинал проявляться, фубля
В чем-то они правы. Программирование в конечном итоге превращается в обычную работу. В 35 лет ты вряд ли будешь сильно в восторге от того факта, что ты пилишь какой-то 3д движок, в то время как твой одногруппник вася делает быдлосайты на пхп. Тебе будет просто похуй. Поэтому одногруппники тоже не долбоебы - зачем себе намеренно усложнять жизнь ради нихуя? Я вот после тех самых попыток устройства в графику и сети решил бросить это дело и вкатиться в ГОвно, пока что всем +- доволен.
Аноним 07/08/21 Суб 23:04:29 212054444
>>2120499
>Да очень просто - сишка целиком состоит из вещей, на которые можно напороться.
Как и любой язык, было бы желание.
>Среди них есть вещи, на которые можно напороться даже когда кажется, что все ок.
А вот и приведи-ка пример, пока что только была попытка пукнуть 1 << 31, но выяснилось что во-первых никакой вкатун не двигает биты в сишке (как и никогда не пишет слова volatile, auto, goto, continue и так далее), тем более в знаковых переменных, а во-вторых и в главных, те кто двигают, прекрасно осведомлены о последствиях ведь в стандарте это прописано чёрным по белому. А ты вот дай мне недокументированную особенность сишки, на которую мог бы напороться ньюфаг.
Аноним 07/08/21 Суб 23:56:09 212058945
Доброго времени суток, гуру программирования/байтоебства. На связи студент 4 курса МухГУ. Еще на 3 курсе я успел поработать 4 месяца на веб галере и понял, что веб - это точно не мое. Пусть говноеды сами этим занимаются. Сейчас читаю умные книги по алгоритмам, сетям и ОС. В общем, решил начать с самых низов и также неплохо поковырял ассемблер. И вот пришло время перейти к няшной Сишечке, но есть пару проблем, и именно из-за них я пришел сюда за советом. Через год мне нужно будет искать работу, поэтому какова вероятность того, что после ВУЗа я вкачусь в работу на Си? Или же мне сразу стоит учить плюсы? Два языка на должном уровне за год не смогу осилить, по этой причине, нужно выбрать что-то одно. Советы по изучению Си и напутствия также приветствуются.
Аноним 08/08/21 Вск 00:41:43 212060846
>>2120589
Кресты ты и одни за год не осилишь, туда надо жизнь положить.
Аноним 08/08/21 Вск 00:51:06 212061647
>>2120608
>Кресты ты и одни за год не осилишь, туда надо жизнь положить.
Это понятно. Я же имел ввиду освоение необходимых навыков для вката.
Аноним 08/08/21 Вск 01:05:04 212063048
>>2120544
> недокументированную особенность сишки
Про недокументированную речи не шло. Языку полвека. Все, что можно было, уже миллион раз обсосано. Но ньюфаги стандарт не читают, и свои собственные грабли еще не собрали.

> но выяснилось что во-первых никакой вкатун не двигает биты в сишке (как и никогда не пишет слова volatile, auto, goto, continue и так далее), тем более в знаковых переменных
Где выяснилось, что за фантазии? Двигают, пишут, используют, до unsigned вообще дорастают через полгода минимум, до этого искренне не понимают, нахуя оно.

> приведи-ка пример
Даже если не углубляться в UB, которое злобный комитет повсюду раскидал, а разработчики компиляторов используют во вред. Классика: char array[5]; int j; for (j = 0; j <= 5; j++) array[j] = 1; Все ошибались в таком. И много ньюфагов тебе скажут, мол, нет тут проблем, не хочу задумываться, работает же. И ведь работает. Или другая классика, в которой тоже ошибались все: memcpy(array, array + 1, sizeof(array) / sizeof(array[0]) * 4). Или еще одна, всеми горячо любимая: void foo(int arg[4]) { memset(arg, 0, sizeof(arg) / sizeof(arg[0])); .... }.

> Как и любой язык
Нет. Хуже только жс, но разница заключается в том, что в жс для того, чтобы получить по ебалу, нужно делать страннные вещи, а в си - обычные.
Аноним 08/08/21 Вск 01:07:06 212063249
>>2120630
memcpy(array, array + 1, sizeof(array) / sizeof(array[0]) - 1)
быстрофикс
Аноним 08/08/21 Вск 01:09:12 212063650
>>2120632
лол, вот примерно об этом я и говорю. sizeof(array) - sizeof(array[0]) надо больше спать и перечитывать сообщения перед отравкой
Аноним 08/08/21 Вск 02:25:41 212065451
>>2120333
ты все еще тут?
тебя попросили съебаться нахуй, будь добр, пожалуйста.
я понимаю, что обидно такое услышать в свой адрес. но можно же уйти с достоинством, а не как истеричка, обматерив всех и хлопнув дверью
Аноним 08/08/21 Вск 09:19:26 212072252
>>2120630
>Но ньюфаги стандарт не читают
Ньюфаги и биты не двигают, об этом и сказал, читай внимательнее.
>Где выяснилось, что за фантазии? Двигают, пишут, используют, до unsigned вообще дорастают через полгода минимум, до этого искренне не понимают, нахуя оно.
А вот тут-то я уже проиграл. Двигают биты значит, ньюфаги, биты двигают, а до беззнакового не дорастают? Охуенные истории конечно, вот только все вкатунские курсы что я видел разъясняют за типы данных и знаковость (но не за endianness), а сдвиги в лучшем случае упоминают.
Ещё раз — для разработки чего-то высокоуровневого сдвиги не нужны, твёрдо и чётко, они юзаются в коде который очень плотно работает с железом (не ньюфажная тема), там же где и волатайлы с инлайн ассемблером.
>Нет. Хуже только жс, но разница заключается в том, что в жс для того, чтобы получить по ебалу, нужно делать страннные вещи, а в си - обычные.
Нет. В си тоже нужно делать странные вещи, обычные делаются без проблем.
>Классика: char array[5]; int j; for (j = 0; j <= 5; j++) array[j] = 1;
Я просил привести пример — где пример? Мне нужна
>недокументированную особенность сишки, на которую мог бы напороться ньюфаг
Где она? То, что при попытке доступа в чужую память поведение неопределено — это недокументированная особенность? Да это БАЗА.
Вот ты говоришь делать надо обычные вещи, а сам делаешь странную.
Аноним 08/08/21 Вск 11:59:21 212080753
>>2120630
>>2120632
>>2120636
>for (j = 0; j <= 5; j++)
При чем тут Си? Во множестве языка нумерация с нуля и half-open range в циклах используется, потому что это математически удобно, блядь, а не потому что "ряяяяяя, старперы байтоебы носилуют мозг амбициозных пориджей адресами и оффсетами"
>memcpy
потому memmove, все в описании есть, а если не хватает дисциплины наперед задуматься о возможных деталях, то и высокоуровневых языках обосрешься, в гуманитарии подаваться надо было
>memset
надо понимать, что приходит указатель и никакой больше инфы, как stl контейнере. Если нюфаня пытается в Си по опыту питона в школе, а не открывает K&R, земля ему пухом не только в Си, но и по жизни
Аноним 08/08/21 Вск 12:15:34 212084254
>>2120807
> При чем тут Си? Во множестве языка нумерация с нуля и half-open range в циклах используется
А какие из этих языков после этого рандомно выбирают, крашнуться или работать как ни в чем не бывало?

> надо понимать, что приходит указатель
Тут надо понимать, там надо понимать, везде надо понимать, о чем я и писал >>2120499. Проебал строчку в книжке и уже не понимаешь. Это называется
> довольно лёгкое, приятное и, что немаловажно, БЫСТРОЕ обучение
Аноним 08/08/21 Вск 13:00:08 212088755
>>2120842
Пушто рантайм проверки хуета. Если не смотреть через призму современных умных структур данных, а учить с нуля, как средство работы с байтиками, то не так уж и много инфы придется освоить. А потом логическим продолжать осваивать штуки, которые эту работу упрощают, и вырастешь нормальным человеком. В этом прелесть bottom-up подхода, если не перегибать палку и не начинать с asm. Да, как минусы top-down в том, что больше срача в голове, так минуса bottom-up, что больше месяцев надо на чистой силе воли убить, пока не получится что-то прикольное. Но Си как раз золотая середина, потому что за пару месяцев вполне себе освоишься, а если и на то не готов, то нахуй такие на рынке не нужны, демпингуют еще сука.
Аноним 08/08/21 Вск 14:50:48 212098756
>>2120842
>А какие из этих языков после этого рандомно выбирают
Любые языки, предназначенные для работы в неуправляемой среде.
В этом и соль — ты не можешь получить контроль над железом, не неся при этом ответственности за последствия своих действий.
Остальное уже субъективно — ты топишь за то, что управляемая среда лучше, поскольку она запрещает НЕКОТОРЫЕ способы выстрелить себе в ногу (но подвозит ещё тележку других), и типа ньюфагу нельзя разрешать стрелять себе в ногу сишными способами, а надо разрешать только питоньими (почему? а хуй знает), я топлю за то, что написал ещё в самом первом посте и на что ты так ничего не возразил
1. Многие языки имеют схожий синтаксис
2. Многие языки подразумевают ту же самую парадигму в качестве основной (а именно — императивное программирование: когда мы пишем чёткий алгоритм и делаем это с помощью манипуляции стейтом)
3. Без си не вникнешь в работу интерпретатора своего любимого языка (а значит по дисциплине "языки и компиляторы" соснёшь хуй)
4. Без си сломаешь жопу в попытках изучить и воплотить некоторые структуры данных, которые требует плотной работы с памятью (хэшмепы, динамические массивы и т.д.), а значит соснёшь хуй уже по дисциплине "алгоритмы и структуры данных"
5. Соснёшь хуй по дисциплине "операционные системы" (пайпы семафоры блаблабла), стандартная либа си крепко связана с системными вызовами.
6. Соснёшь по архитектуре, конечно же, тут даже комментировать нечего.
7. Немножко соснёшь по сетям
8. Ну и ещё немного по БД и прочим таким вещам, где важна производительность.

Я ж сам таким был, раньше тоже воевал с сишкой кричал пердуны, а потом оно оказалось так что когда нужно будет конкретно начинать работать, а не борщи хлебать — везде си.
Аноним 08/08/21 Вск 15:31:46 212103357
>>2120987
>Я ж сам таким был, раньше тоже воевал с сишкой кричал пердуны,
Предатель
Аноним 08/08/21 Вск 15:39:52 212104258
>>2120887
> если не перегибать палку и не начинать с asm
Асм довольно-таки полезен. Как минимум хотя бы потому, что сишные указатели будут досконально поняты примерно через 30 секунд после прочтения что это за хуйня и пары примеров.
Аноним 08/08/21 Вск 16:12:27 212107259
>>2121042
Вообще, да. Это я слабак с Си начал и только потом поинтересовался ASM, сразу развеяв для себя кучу сишной магии.
08/08/21 Вск 16:29:26 212108560
>>2120987
> ты топишь за то, что управляемая среда лучше
Для новичка - да. Для того, чтобы быстро наговнякать, концентрируясь на алгоритме, а не задумываясь об управлении памятью и выходе за пределы массива - да. А кстати, расскажи нам, как выстрелить себе в ногу питоньим способом?

> Без си не вникнешь в работу интерпретатора своего любимого языка
Писал на питоне эмулятор x86 и пару интерпретаторов. Это было чуть больнее, чем на Си, но в основном из-за отсутствия switch. В остальном удобнее.

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

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

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

> Немножко соснёшь по сетям
Любой язык, который отучает не учит новичка делать struct msg; recv(s, &msg, sizeof(msg), 0) - благо. Научится перекладывать байты правильно и кроссплатформенно - позже не возникнет желания закладываться на невыравненный доступ к памяти и прочий порядок байтов (и битов).

> Ну и ещё немного по БД
Дергать query и cursor_next можно хоть из жс.

> производительность
Мы сейчас точно про вкатывающихся говорим?

> раньше тоже воевал с сишкой кричал пердуны
Если что, Си - мой основной язык. Просто Си в качестве первого языка в 2021 году не годится. Си - это устаревший кривой кусок говна, сделанный для задач 70х-80х годов, который уже никак не исправить. К сожалению, он еще и единственный вменяемый из существующих низкоуровневых языков, на котором вдобавок написано овердохуя кода, поэтому учить его так или иначе придется. Но не первым.

> работать, а не борщи хлебать — везде си
Везде кресты, ты хотел сказать.

>>2121072
Я наоборот начинал с асма. И после этого примерно лет десять Си мне очень нравился, и я не замечал недостатков. А потом вырос.
Аноним 08/08/21 Вск 17:08:14 212110761
>>2121085
>А кстати, расскажи нам, как выстрелить себе в ногу питоньим способом?
Точно так же — забыть отступ поставить, попробовать прочитать несуществующего члена списка.
>Для новичка - да. Для того, чтобы быстро наговнякать, концентрируясь на алгоритме
А где связь между новичком и быстрым говняканьем? Пояснишь, почему новичок обязан быстро говнякать и ни о чём не задумываться, почему новичок не должен учиться например?
>Писал на питоне эмулятор x86 и пару интерпретаторов.
Жопочтец, пожалуйста.
>Которые любой вменяемый язык предоставляет из коробки.
Очень хорошо ты обучишься алгоритмам и структурам данных, не воплощая алгоритмы и структуры данных.
Ты видимо и программировать научился, не прибегая к написанию программ.
>никто не мешает для обучения городить это хоть на жс
Никто не мешает и большие проекты целиком на асме писать, однако никто так не делает.
>Заодно можно усвоить опыт предыдущих поколений, как от этого абстрагироваться.
Очень хорошо ты обучишься дисциплине "операционные системы", не изучая сию дисциплину, ага-ага.
Дальше не читал, слишком толсто пошло.
Аноним 08/08/21 Вск 17:09:45 212110962
>>2121085
>Если что, Си - мой основной язык.
А твоя основная задача — стоять на страже своего стека, чтоб ньюфаги не демпинговали тебе зп.
Аноним 08/08/21 Вск 17:13:55 212111263
C is just about as close to a computer's hardware as you can get before you have assembly language (which would be too arcane, I think, for an introductory course like CS50). In C, there's no magic. If you want something to be somewhere in memory, you have to put it there yourself. If you want a hash table, you have to implement it yourself. The result by term's end, we hope, is that students understand how things work from the bottom up and, better yet, can explain as much. C is also a small language that, by mid-semester, students have seen nearly all of (except for, e.g., unions and function pointers).
08/08/21 Вск 17:54:20 212114264
>>2121109
Лол, и поэтому я в этом итт отвечаю этим самым ньюфагам с их ньюфагопроблемами, да?
Аноним 08/08/21 Вск 19:08:31 212122365
>>2121142
И поэтому ты требуешь от ньюфагов держаться подальше от си, да.
Аноним 08/08/21 Вск 19:38:15 212125466
>>2121085
>Си - это устаревший кривой кусок говна, сделанный для задач 70х-80х годов, который уже никак не исправить.
А остальные промышленные языки - кривые куски говна, построенные на принципах, которые были известны еще в 70е и которыми пытаются решать задачи 10х-20х. Это относится и к C++, и к Java, и к Python.
08/08/21 Вск 21:19:49 212132667
>>2121223
Ньюфаг в программировании != ньюфаг в Си. И я ничего не требую. Я не рекомендую.

>>2121254
> Это относится и к C++, и к Java, и к Python.
Давай сравним то, как изменился Си под требования времени с тем, как изменились джава, кресты и питон. Вот многопоточность завезли, которой никто уже не пользуется, потому что везде свои костыли. Что там еще? Два раза пытались добавить юникод, получилось не очень. Вот _Generic еще, мы его как раз в прошлом треде обсуждали, какой он удобный и нужный. Попутно проебали основную идею C takes the point of view that the programmer is always right, получился небезопасный язык, где программист не доверяет компилятору, а тот, в свою очередь, не доверяет программисту. Так и живем. Ну да и хуй с ним, в С23 доломают.
Аноним 08/08/21 Вск 22:38:27 212138368
Подниму свой вопрос, ежжи, >>2120589
Кратко: На раскачку имею всего год, но хочется выучить БАЗУ. Собственно вопрос, как обстоят дела с вакансиями Си-джуниора? Или же стоит сразу начать учить плюсы?
Аноним 08/08/21 Вск 23:13:28 212140969
>>2121383
>Или же стоит сразу начать учить плюсы?
Да
Аноним 09/08/21 Пнд 00:36:03 212150070
>>2120608
> Кресты ты и одни за год не осилишь
Маньчкин, плиз.
За полгода выучил С++ по самоучителю, еще за полгода сделал пет-прджект на Qt.
Устроился джуном за 100к.
А ты и даьше сиди у мамши на шее и учи кресты всю жизнь.
Аноним 09/08/21 Пнд 00:40:09 212150371
>>2121383
С вакансиями на си дела так себе: >>2120054
Кроме как писать прошивки на микрики за миску риса работы на Си нет.
С++ это тоже в основном работа за еду, потому что либо таже встраиваемка, либо работа на заводе или в госпараше.
Аноним 09/08/21 Пнд 01:02:17 212152172
>>2121500
>еще за полгода сделал пет-прджект на Qt
Кьют к С++ такое себе отношение имеет, реальные кресты это пиздец тащемто. QML освоил?
Аноним 09/08/21 Пнд 04:38:39 212156273
>>2120054
Капртинка - чушь собачья. Нет данных по количесиву ваканчий. Что толку от говноязыка в топе с космической зарплатой, но рабочих мест - 2 штуки на всю страну.
Аноним 09/08/21 Пнд 04:51:30 212156374
>>2120630
>Классика... (бла-бла)
Это сам язык, а вовсе никакая не "классика". Прямой доступ к памяти - это и есть язык Си. А ты чего хотел? Оберток с защитой, запрещающих доступ к памяти? Ты придурок или даун? Си для этого и существует - делать эти вещи, которые ты называешь "косяками". Откуда такие дебилы вообще лезут. А я скажу откуда, как раз из других языков, а точнее не языков, а сраной скриптовой параши вроде той же жс, из которой ты и вылез. Кто учится параше, навечно становится имбецилом с парашным мышлением, что ты и продемонстрировал.
Аноним 09/08/21 Пнд 11:52:08 212178475
>>2121521
>Кьют к С++ такое себе отношение имеет, реальные кресты
Что в твоем понимании реальные кресты?
>QML освоил?
html и css в qt почти 1 к 1 как в вебе, ничего сложного, языки разметки.
логика вся на плюсах
Аноним 09/08/21 Пнд 11:55:11 212179076
>>2121563
> Си для этого и существует - делать эти вещи, которые ты называешь "косяками".
Си существует для работы на низком уровне, а не для того, чтобы делать косяки, косяки как раз лучше не делать.
Поэтому тот же Rust лучше, так как также позволяет работать на низком уровне, но не делать косяков как в С/С++ где есть миллион способов выстрелить себе в ногу.
Аноним 09/08/21 Пнд 12:15:25 212182677
>>2121784
> Что в твоем понимании реальные кресты?
STL и boost.
Аноним 09/08/21 Пнд 13:08:34 212187678
>>2121790
раст получше, понял, вызываю бригаду санитаров

мимо другой анон
Аноним 09/08/21 Пнд 13:10:22 212188079
>>2121826
Вакансий на Qt в два раза больше, чем вакансий на boost на hh.ru.
Аноним 09/08/21 Пнд 13:17:48 212189180
>>2121880
> вакансий на boost
Чего, блядь? Ты ебанутый? Буст сейчас практически на той же позиции, что в свое время был TR1, они идут рука об руку с комитетом, это считай что часть стандартной библиотеки, только неофициально.
Аноним 09/08/21 Пнд 14:09:00 212200281
>>2121563
Лол, си оперирует с абстрактной машиной фон неймана, похожей на pdp-11, что давно не соответствует реальности. Сидебилы думают, что программируют на """низком уровне""", но на самом деле большинство работы за них делает компилятор и процессор.
Аноним 09/08/21 Пнд 14:18:00 212202882
>>2122002
>фон неймана
Фон хуеймана.
>Сидебилы думают
Назови альтернативу не обмазанну ООП говном
Аноним 09/08/21 Пнд 17:59:31 212233283
>>2121563
>Прямой доступ к памяти - это и есть язык Си.
>сраной скриптовой параши вроде той же жс,
В Micropython есть прямой доступ к памяти контроллера. Вообще, память это просто массив байт или чего-то покрупнее. Вообще без разницы на чем этот массив читать/ писать.
Я лично тот ещё имбицил, писал ассемблер на 3000 строк (недавно открыл посчитать), а потом открыл для себя питон и понял что это тот же ассемблер (полная интроспекция, делай что хочешь с любым полем или методом) но удобнее.

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

Вот и нахуй мне что-то ещё? Любой файл открыл, распарсил, посмотрел (не в консоле строчку вывел , а любую таблицу, диаграмму.воочию увидел, отмасштабировал), изменил, скачал, закрыл - все!
Вот единственное жаль, что не научился я с файлами по-другому взаимодействовать, кроме как скачивать. Хочу хромбук, вот просто мечта уже такая.
Ну и ограничение на файл где-то в районе 70мб. Больше у меня ломается браузер.

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

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

Мимо
Аноним 09/08/21 Пнд 19:12:31 212245884
>>2122332
Говно твои скрипты, скрипты используют в аппаратах ивл? В управлении боеголовками? В эбу автомобиля? Нет, там Си. А скрипты это только для браузерных игр и сайтиков магазина дилдаков.
Аноним 09/08/21 Пнд 19:14:07 212246285
>>2122002
> Лол, си оперирует с абстрактной машиной фон неймана
Лол ору с дебики.
Си компилируется и на машины с гарвардской ахитектурой в том числе.
09/08/21 Пнд 19:22:07 212247286
>>2122028
> Назови альтернативу не обмазанну ООП говном
"Я хочу альтернативу коболу, но чтобы страдать точно так же как в коболе, современные языки не нужны" а альтернатив-то и нет

>>2122462
Все правильно. Стандарт предполагает нечто подобное гарвардской архитектуре. Указатели на функции нельзя кастить в указатели на данные (точнее, кастить-то можно, но разыменовывать нельзя).
Аноним 09/08/21 Пнд 20:47:38 212256487
>>2122458
Скрипты используются, чтобы все перечисленное тобой собрать, протестировать, прошить, отладить и ещё много-много всего узкоспециализированного.

Говорить что скрипты только для игр может очень недалёкий, не очень далекий или очень далёкий от программирования человек.

Вот скажи, что makefile не скрипт. Скажи что баш не скрипт. Скажи что они лучше решают свои задачи, чем скриптовые языки общего назначения.

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

А может ты пишешь для каждого частного случая консольную программу на си?
Нужно переименовать файлы - пишешь утилиту. И так далее?
Или вообще все готовое используешь?
Аноним 09/08/21 Пнд 20:51:27 212256888
1628531486948.png 14Кб, 801x158
801x158
>>2122028
Альтернативу чтобы программировать на хуй пойми каком уровне абстракций?
>>2122458
там может быть и ада
>>2122462
Потому что вы используете компиляторные расширения, а не стандартный си.
>>2122472
пик C99, в 6.3.2.3 о касте функций в данные ничего нет
09/08/21 Пнд 21:03:14 212259289
>>2122568
> о касте функций в данные ничего нет
Да, я обосрался, можно кастить только в указатель на функцию другого типа. Но тем более. Функции и данные не пересекаются = гарвард.

> там может быть и ада
Это все редкие или очень узкоспециализированные железки. А вот баш в фотоаппарате не хочешь? И питон с луа дохуя где, причем иногда одновременно.
Аноним 10/08/21 Втр 02:39:39 212294290
>>2122002
>на """низком уровне"""
Нелол дебил, подучи русский язык сначала, прежде чем лезть в другие языки.
"Низкий" это понятие относительное, а не абсолютное. "Низкий" не бывает просто низкий, а только относительно чего низкий. Это называется относительность, тупорылое ебло. Так вот, ниже Си только ассемблер. Не суцществует кроме ассемблера ничего ниже Си и даже ничего равного Си нет, только выше. Поэтому Си - низкий уровень. И не просто низкий, а самый низкий из универсальных языков. Си это буквально чудо, сумевшее усидеть на двух стульях - низкий уровень с прямым доступом к железу и отвязки от от конкретного железа. Поэтому никогда не будет никаких аналогов Си, кропе парашных кукареков из говна.
Аноним 10/08/21 Втр 02:44:48 212294391
>>2122332
>В Micropython есть прямой доступ к памяти контроллера
В батниках тоже есть (думаю можно сделать), и что, дебил? Дело не в доступе (через анальные жопы), а в том, чем является сам язык. Язык Си сам по себе работает на уровне железа, на уровне прямой памяти, прямо в ней, а не имеет доступ через говняные пуповины, сам будучи парашным скриптом в виртуальной говномашине как другие языки.
Аноним 10/08/21 Втр 03:10:15 212294792
>>2122942
>Так вот, ниже Си только ассемблер. Не суцществует кроме ассемблера ничего ниже Си и даже ничего равного Си нет, только выше.
Но низость си заключается в прямой работе с памятью, возможностью инлайнить ассемблер и вызывать интринзики. Таких языков достаточно. Или какие ещё у си есть низкие опции?
Аноним 10/08/21 Втр 03:28:29 212295093
>>2122947
Низость, достоинство и предназначение Си заключается в его собственной низости, нахождении и работе на низком уровне, а не сидеть вверху, опистив леску удочки на километры вниз, как это в парашных скриптах. Это то, что по-настоящему является программированием - программирование устройства на выполнение функций, а не парашные скрипты, где ты программируешь парашную виртуалку, так же бесконеячно далекую от устройства как анус твоей мамаши от девственности.

Потому что, повторяю для дебилов, программирование это понятие относительное. не бывает просто программирования, бывает только программирование чего-то. И вот это самое то, что ты программируешь и разделяет программистов с программированием от макак со скриптами, хороший софт, от жирной, тормозящей и разваливающейся блевотины, техников-специалистов от индусского свинобыдла с улицы, "вкатывающегося" ради моды и бабла.
Аноним 10/08/21 Втр 03:35:03 212295194
>>2122950
И в чём заключается нахождение на низком уровне конкретно, а не абстрактно и метафорично? Я тебе назвал конкретные вещи, которые делают язык низкоуровневым.
Аноним 10/08/21 Втр 03:52:41 212295295
>>2122951
В том и заключается, что не абстрактно и метафорично, а буквально, на самом деле. Скриптомакаке, у которой мышление в принципе застряло на высоком уровне, осмыслить сие будет сложно.
Аноним 10/08/21 Втр 04:00:14 212295496
>>2122952
Ну вот зачем ты жопой вертишь? Я же нормально спросил, и примеры привёл. Что такого низкоуровнего умеет си, что не умеют другие языки? Напрямую управлять кэшлайнами, может?
Аноним 10/08/21 Втр 05:17:16 212297397
>>2122954
Ну вот зачем ты жопой вертишь? Я же нормально ответил. Си находится на уровне железа - устройства, чтобы программировать это устройство. Это и есть программирование. Другие языки не такие, они висят на высоком уровне виртуальной параши и программируют эту парашу. Это не программирование, а имитация для даунов.
Аноним 10/08/21 Втр 05:22:52 212297498
>>2122973
> Си находится на уровне железа - устройства, чтобы программировать это устройство.
Это делают все языки, компилируемые в нативный ассемблер. Таких немало.
Аноним 10/08/21 Втр 05:41:24 212297799
>>2122973
Профан детектед. Си не находится на уровне железа. На уровне железа позволяют работать ассемблерные вставки в Си. Но если ты юзаешь синтаксис Си - это уже высокоуровневое программирование.
Аноним 10/08/21 Втр 08:04:34 2123022100
>>2122943
>Язык Си сам по себе работает на уровне железа, на уровне прямой памяти, прямо в ней
Это программирование на основе структур. Так бы и сказал сразу, и не горела бы твоя жопа.
А прямой доступ к памяти есть везде. Запезделся ты короче, с кем не бывает.
Аноним 10/08/21 Втр 08:13:37 2123024101
>>2122950
Ну давай по частям тобою написанное.

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

>Потому что, повторяю для дебилов, программирование это понятие относительное. не бывает просто программирования, бывает только программирование чего-то.
Ассоциативный массив для тебя что?
>И вот это самое то, что ты программируешь и разделяет программистов с программированием от макак со скриптами, хороший софт, от жирной, тормозящей и разваливающейся блевотины, техников-специалистов от индусского свинобыдла с улицы, "вкатывающегося" ради моды и бабла.
Это твое субъективное отношение к людям, а не характеристика языка.
Аноним 10/08/21 Втр 08:32:24 2123030102
>>2123022
>>2123024
Весь букет демагогии, прямо по мануалу "Как илиоты ведут споры в интернете". Вот они, скриптомакаки. Не программисты, даже не люди, просто уличный сброд.
Аноним 10/08/21 Втр 08:58:46 2123043103
>>2123030
Это про тебя скорее. Оттого что ты написал это первым, ничего не изменится. Все прекрасно видят, кто сообщает факты, а кто жонглирует агрессией.
Аноним 10/08/21 Втр 10:34:54 2123133104
ну когда уже там придем к выводу что все скриптопарашники - макаки, и пусть пиздуют с треда обсасывать свои синглпэйдж сайты на реакте и бэком на петухоне в каком-нибудь другом треде?

мимо рандомный анон, не понимающий, какого хуя влетел какой-то рандомный черт погонять что си - параша, не хочешь не пиши на нем, делов-то
Аноним 10/08/21 Втр 12:33:15 2123278105
>>2122942
>Не суцществует кроме ассемблера ничего ниже Си и даже ничего равного Си нет, только выше.

С--? Forth?
Аноним 10/08/21 Втр 13:24:22 2123340106
Мертвым этот тред мне нравился куда больше. умирайте
Аноним 10/08/21 Втр 14:01:46 2123404107
Аноним 10/08/21 Втр 14:17:22 2123422108
>>2122564
Имелось ввиду скриптовые языки программирования вроде жс, а не скрипты как таковые.
Аноним 10/08/21 Втр 16:10:33 2123546109
>>2123422
Можно список хороших скриптов? Можно узнать, почему плохие скрипты плохие как таковые?
Аноним 10/08/21 Втр 16:58:52 2123585110
>>2121790
Ой блядь, лучше бы ты не пытался оправдаться, а просто молчал бы сидел.
Аноним 10/08/21 Втр 17:01:10 2123587111
>>2122002
>Сидебилы думают, что программируют на """низком уровне"""
Ведь на самом деле содержание указателей в си это не реальные адреса в памяти
Аноним 10/08/21 Втр 17:03:57 2123590112
>>2122564
>Вот скажи, что makefile не скрипт. Скажи что баш
Ни то ни другое не претендует на звание ЕЗЫКА ПРАГРАМИРАВАНИЯ
Аноним 10/08/21 Втр 17:05:03 2123593113
>>2122942
>Не суцществует кроме ассемблера ничего ниже Си
Форт.
Аноним 10/08/21 Втр 17:08:56 2123596114
>>2122977
>вместо прямых адресов в памяти у нас переменная, которая при компиляции превратится в адрес
>ойойойой пацаны ВЫСОКИЙ УРОВЕНЬ
>>2123133
Недостаточно просто не писать на си, надо постоянно поддерживать манямир, в котором си — говно.
Аноним 10/08/21 Втр 18:45:12 2123689115
Я даже рад тому что твёрдые лбы не пробить. Дауны не умеющие находить компромиссы не нужны. Пускай сидят в своей отрасли, и не лезут больше никуда. Тот случай когда все эти понятия зашквара и некошерности работают как защита от дурака. Умный взвесит и выберет что ему нужно, дурак не полезет и правильно, зачем палить быдлу годноту? Тем более доказывать что-то. Понаедут и все поломают, ну его нафиг.
Аноним 10/08/21 Втр 19:20:57 2123721116
>>2123596
>>вместо прямых адресов в памяти у нас переменная, которая при компиляции превратится в адрес
А может в регистр, а может во время выполнения попадёт в кэш, нельзя точно сказать, что произойдёт. Также как нельзя сказать, вставит ли компилятор выравнивание.
>>2122973
Обычно для программирования устройств на си производитель предоставляет компилятор и hal/api. Тоже самое можно было бы проделать с любым другим языком. Си использует просто потому что он требует минимальный рантайм.
Си это высокоуровневый язык, всегда им был, поэтому рассматривая его как высокоуровневый он действительно говно.
Аноним 10/08/21 Втр 19:27:54 2123731117
>>2123689
Я думаю, эти люди не поймут, что это им адресовано.
Аноним 10/08/21 Втр 19:52:09 2123783118
>>2123721
>Си это высокоуровневый язык
Какие же языки низкоуровневые по-твоему кроме ассемблера?
Аноним 10/08/21 Втр 21:29:51 2123892119
дебики называют си "низкоуровневым" изза высокой нативности трансляции. дебики правда забыли что такая нативность не часть штондарта, потому компелятор волен хуевертить как хочет. ну и волатилы с асм-инлайнами тоже вводят в заблуждашки
Аноним 10/08/21 Втр 21:39:53 2123899120
>>2123587
>Ведь на самом деле содержание указателей в си это не реальные адреса в памяти

это эффективные адреса энивей. а их трансляция в физические зависит от текущего мода цп
Аноним 10/08/21 Втр 21:49:32 2123910121
>>2123783
Ассемблер тоже высокоуровневый. Вот в любом ассемблере есть циклический сдвиг через флаг переноса (ror, rol), проверка, сброс, инверсия флага в любом регистре по номеру, а в си нету.
На x86 есть функции (команда ассемблера это по сути функция с аргументами в регистрах) CRC, параллельных вычислений, сложение с накоплением, перестановки разные. Есть rep scas, lods, stos, реализующие поиск символа в памяти в одну строчку.
А на си только голые числа и вызовы. Си очень низкоуровневый язык, ближе к verilog. Там тоже только +,-, &,|,! и числа. Но даже в верилоге есть допустим прямой доступ к любому биту.
Ниже верилога уже только паяльник.

На fasm с его макросами .if .else . while гораздо проще программировать чем на си. Не нужно ебаться с приведением типов, например.
Есть invoke/stdcall/ccall с аргументами в строчку. Сам выбираешь регистры или память. Все функции процессора под рукой, а чего нет в процессоре есть в ОС или в крайнем случае в сишных библиотеках.
И препроцессор там настоящий, а не ебаные текстовые замены из 50х годов.

Так что на си не гоните, пожалуйста. Это самый низкий, самый тупой и прямой доступ к железу.
Аноним 10/08/21 Втр 21:58:13 2123923122
сори за головоеблю, я опять с тупым вопросом
чет не понял ptrdiff_t и size_t по смыслу, допустим у меня есть функция
void replace(char str, char dst, ptrdiff_t pos, size_t len);
норм так будет в плане читаемости кода? что смещение (pos), по сути разница между указателями, эт у меня ptrdiff_t?

ну а размер заменяемой строки size_t тут вроде и так понятно

просто смотрю чужие исходники, ptrdiff_t не встречаю, все пихают size_t, даже для похожих на pos аргументы. Или вообще поебать и я черезчур загоняюсь?
Аноним 10/08/21 Втр 21:59:46 2123924123
>>2123923
бля сри, чет про форматирование не подумал
там указатели проебались str dst
Аноним 10/08/21 Втр 22:10:29 2123928124
>>2123910
Еще одной и той же машинной команде может соответствовать несколько разных команд ассемблера (и наоборот). Это позволяет утверждать, что команды ассемблера являются вовсе не мнемоническими именами, а самыми настоящими абстракциями.
Мимо дилетант
Аноним 10/08/21 Втр 22:10:43 2123929125
>>2123910
>Ассемблер тоже высокоуровневый. Вот в любом ассемблере есть циклический сдвиг через флаг переноса (ror, rol), проверка, сброс, инверсия флага в любом регистре по номеру, а в си нету.

это тролленк? в какой точке у тебя асма высокоуровневая? каждая мнемоника взаимнооднозначно отображается в отдельный опкод со значениями. и откуда црц в х86?

>>2123910
>Си очень низкоуровневый язык, ближе к verilog

ну ты точно зеленый. сравниваешь ЯП с языком верификации и описания аппаратуры

Аноним 10/08/21 Втр 22:14:15 2123933126
>>2123923
ptrdiff_t это чтобы кастить указатели к интам вроде. size_t безнаковый платформозависимый тип.
Аноним 10/08/21 Втр 22:33:49 2123943127
>>2123933
ну пос у меня смещение
src + pos = получается указатель на подстроку где len ее длинна
ну т е эт норм что pos имеет тип ptrdiff_t
> size_t безнаковый платформозависимый
а бля, pos знаковый, мб лучше тогда туда size_t втопить? мне не надо чтобы отрицательный pos в функцию залетал
Аноним 10/08/21 Втр 23:00:15 2123974128
>>2123721
А может в регистр, а может твоей матери в очко, сути дела не меняет, си это не особо навороченная надстройка над асмом.
Аноним 10/08/21 Втр 23:02:11 2123978129
>>2123892
Да ты сам дебик если не осознаешь отсутствие четких критериев уровневости.
Аноним 10/08/21 Втр 23:03:25 2123982130
>>2123899
И поэтому си это лисп
10/08/21 Втр 23:33:38 2123999131
>>2123910
> fasm с высокоуровневыми макросами
Казалось бы, треду было уже некуда катиться, но нет!

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

> И препроцессор там настоящий, а не ебаные текстовые замены из 50х годов.
Препроцессор в фасме - это и есть текстовые замены. Кроме них есть только rept и match. Все остальное - те же самые дефайны с другими названиями.

>>2123929
> каждая мнемоника взаимнооднозначно отображается в отдельный опкод со значениями
Простите, а mov eax,edx - это 8b c2 или 89 d0? А вот еще xchg eax,eax у меня тут, это какой опкод?

> и откуда црц в х86?
Интел принес, очевидно же.

>>2123943
> а бля, pos знаковый, мб лучше тогда туда size_t втопить?
Есть отрицательные смещения - сделай себе ssize_t или тащи местный (везде есть в том или ином виде). Если смещения/индексы беззнаковые (они чаще всего такие) - size_t. Оставь ptrdiff_t для реализации своей memmove.

>>2123933
> ptrdiff_t это чтобы кастить указатели к интам вроде
Путаешь с (u)intptr_t. ptrdiff_t - это продукт вычитания двух указателей, в ином виде в дикой природе не встречается.

>>2123899
Fat pointers и еще tagged pointers в AArch64 смотрят на тебя с недоумением. Указатель в Си может быть чем угодно. То, что там случайно оказалось что-то, похожее на адрес - это всего лишь совпадение.
Аноним 11/08/21 Срд 00:21:13 2124047132
>>2123999
> Казалось бы, треду было уже некуда катиться, но нет!
Это ты ещё не видел т.н. HLA от упоротого дида. https://en.wikipedia.org/wiki/High_Level_Assembly
Книгу вроде не переводили, так что в рунете она не так известна, а у них вполне.
Аноним 11/08/21 Срд 08:17:21 2124144133
>>2124047
Лучше быть упоротым чем до конца своих дней компенсировать нищету из детства, продавая свое время жирному начальнику.
Аноним 11/08/21 Срд 15:47:07 2124507134
>>2120065
>на Си аутсорса быть не может по логике вещей
Вообще есть. Либо олдовые проекты и поддержка. Либо написание прошивок для всяких устройств.
Аноним 11/08/21 Срд 18:58:52 2124773135
Untitled.jpg 62Кб, 1067x315
1067x315
>>2123721
>Си это высокоуровневый язык
Я несогласен.
11/08/21 Срд 19:46:52 2124825136
>>2124773
Все классификации по определению ущербны. Примерно до середины 90-х Си считался языком высокого уровня, потом потихоньку мнение изменилось. Поищи старые книги, изданные в этой или прошлой стране.

>>2124047
> Это ты ещё не видел
Видел. Обсуждали на всех тематических форумах в начале 2000х, когда книжка вышла. Да и Рэндел сам по себе известный дядька.
Аноним 11/08/21 Срд 20:27:32 2124869137
>>2124825
>Примерно до середины 90-х Си считался языком высокого уровня, потом потихоньку мнение изменилось.
А ты вижу не очень догадливый, и это не мнение изменилось, а языки программирования. Когда-то и ассемблер считался высоко-уровневым языком, что сказать-то хотел? Мы опираемся на иерархию исходя из развития языков в 2021-ом году, а не в 90-ом.
Аноним 12/08/21 Чтв 01:16:44 2125113138
>>2124869
>а не в 90-ом
Да хоть в -90-е. Тот пиздюк просто пиздит.
Си никогда не был высокого уровня, всегда был низкого. Нужно только не пиздеть, а понимать что это значит.
Как пример, в 80-х был компьютер с бейсиком и машинными кодами. Бейсик, хоть и структурно повторял синтаксис ассемблера, имел вставки машинного кода и доступ к памяти, и всяким регистрам железа, эти фичи были отдельными спец-фичами, а сам язык бейсик был высокого уровня, потому что он абстрактный. Когда пишешь на бейсике, о железе думать не нужно, так же как на жс или питоне. А вот на Си - нужно знать железо и думать о нем, просто по дефолту необходимо, даже если ты специально не собираешься с железом взаимодействовать, всё равно нужно, иначе никак, ведь сам Си - это и есть железо.

На практике это выражается в банальном отсутствии проверок на выход из массива. В бейсике и прочих языках высокого уровня эти проверки есть, а в Си - нет, потому что в Си нет никаких массивов, как нет и переменных, ведь ты можешь спокойно из одной переменной попасть в другую, просто так, "случайно", т.е. по дизайну языка. Си даже не пытается тебя огородить, ведь в этом нет смысла когда ты сидишь голой жопой на железе.
Или возьми простое определение переменной: A=1 (в бейсике) и int a=1; (в Си). В бейсике всё просто, как и в любом языке высокого уровня - абстрактном. Концепция переменной везде одинаковая. А вот в Си - нихуя, в Си ты создаешь на стеке, а стек это не абстракция, стек существует, это железо, нужно понимать что это такое и сто ты этим делаешь в Си. Например, простой и очевидный массив из 100500 элементов, в Си будет нелегальной хуйнёй. И то, что компилятор умный и это может быть не стек, а маня-оптимизации в регистрах, ничепго не значит, необходимость понимания железа от этого не только не уходит, но скорее добавляется.
12/08/21 Чтв 01:54:29 2125126139
>>2125113
> Да хоть в -90-е
Рандомный (первый) результат из гугла, искал книгу постарше (можешь найти другую):
https://www.pcjs.org/documents/books/mspl13/msdos/advdos/
> Use of an assembler or high-level-language compiler (such as the Microsoft Macro Assembler or the Microsoft C Optimizing Compiler) to translate the source file into relocatable object code...

> на Си - нужно знать железо
Не нужно. Есть такие штуки, называются библиотеки. Притащишь библиотеку с поддержкой звука в сишку, будут тебе PLAY и SOUND как в бейсике. Притащишь графику, будут тебе SCREEN, LINE и прочие PSET.

> из одной переменной попасть в другую, просто так, "случайно", т.е. по дизайну языка
Мы точно о Си сейчас? Все, что ты перечислил - это UB. В дизайне языка заложено именно UB. А то, что оно работает так - это совпадение. Алсо, в том же самом бейсике (VB6) можно было выключить проверку границ массива, проверку переполнения интов и прочую хуйню, из-за которой бейсик был таким тормозным. В Си этих проверок нет по тем же самым причинам - быстродействие. При этом стандарт Си не запрещает делать проверку границ. По факту она много где есть, просто не по умолчанию: те же -fsanitize в gcc/clang или -b в tcc.

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

> Например, простой и очевидный массив из 100500 элементов, в Си будет нелегальной хуйнёй
Абсолютно нормальная практика. Например, если пишешь под десктопы. Никак не запрещено и работает.
Аноним 12/08/21 Чтв 02:26:08 2125129140
image.png 113Кб, 1143x80
1143x80
image.png 58Кб, 624x70
624x70
в общем смотрю пример как сжимать разжимать данные с помощью zlib. https://zlib.net/zpipe.c
этот пример сжимает вроде, потом скармливаю сжатые данные на разжатие, получаю изначальную строку. норм значит

но почему я не могу распоковать файл стандартными утилитами? это не gzip?
12/08/21 Чтв 02:30:06 2125130141
>>2125129
У gzip еще заголовок. И gzip (в теории) может быть пожат чем-то другим.
Аноним 12/08/21 Чтв 02:50:49 2125133142
>>2125130
не понял
а как он тогда разжимает, если заголовка нет?
Аноним 12/08/21 Чтв 03:41:59 2125141143
>>2125133
Твоя программа? Он просто разжимает, что ты ей на вход подашь, даже если это не сжатые данные.
12/08/21 Чтв 04:11:36 2125146144
>>2125133
gzip - это формат для сжатия файлов, поэтому там заголовок, касающийся файлов (таймстамп, метод сжатия, имя, чексумма с размером в конце - дохуя всего, в общем). Внутри deflate (обычно).
zlib - это либа это формат для сжатия потоков байтов, там тоже заголовок, но поменьше (метод сжатия, флаги и еще чексумма в конце). Внутри deflate (обычно).
deflate - это тоже формат для сжатия (алгоритм может быть любым, и это позволило гуглу сделать zopfli), он ничего не предоставляет, просто описывает блок сжатых данных, и у него тоже есть свой заголовок, буквально несколько бит на блок.

Три разных формата, у всех есть свои заголовоки.

Твой zpipe делает zlib-поток:
echo abcabcabc | zpipe > test.zlib
Чтобы сделать из него gzip, надо достать оттуда deflate. Отрезаем два байта из начала и четыре байта с конца:
tail -c+3 test.zlib | head -c-4 > test.deflate
И нам нужен заголовок от gzip. Сигнатура:
printf "\x1f\x8b" > test.gz
Метод сжатия, флаги, таймстамп, стратегия сжатия, ОС. Это минимальная версия заголовка:
printf "\x08\x00TIME\x04\x03" >> test.gz
Наши данные в deflate:
cat test.deflate >> test.gz
И gzip-заголовок в конце файла: чексумма и размер. Оба неправильные, gzip при распаковке будет ругаться, но мне лень делать правильно:
printf "CRC~SIZE" >> test.gz
И теперь:
gzip -cd test.gz

>>2125141
Нет. Если на входе не будет валидного zlib-потока, оно не будет знать, чем это упаковано и пошлет тебя нахуй.
Аноним 12/08/21 Чтв 04:15:30 2125147145
>>2125146
>Нет. Если на входе не будет валидного zlib-потока, оно не будет знать, чем это упаковано и пошлет тебя нахуй.
Я имл в виду, что она попытается stdin разжать, подразумевая, что там сжатые данные. Как она обрабатывает ошибки я не читал.
Аноним 12/08/21 Чтв 07:43:51 2125198146
>>2125113
>На практике это выражается в банальном отсутствии проверок на выход из массива.
Скажи проще что есть языки для неуправляемого окружения, а есть для управляемого. Просто способ понять, где ты — задать вопрос "а что происходит, если программа пытается в рантайме сделать хуйню?" Если ответ "вылетит исключение", то ты в управляемой среде, если ответ "а хуй его знает, всё что угодно" — в неуправляемой.
Понятно что везде, где это возможно, лучше работать в управляемой среде. Где же это невозможно? Там где высокие требования к производительности заставляют рвать уровень абстракции и приблизиться к железу, либо там, где не на что ставить управляемую среду (ОС, драйвер, загрузчик, биос, прошивки для микриков)
А так со всем согласен.
Аноним 12/08/21 Чтв 07:51:55 2125202147
>>2125126
>В стандарте Си нет стека вообще.
Ты его не понял. Нет разницы, если ли стек в стандарте или нет, если ситуация такова, что на бумаге у тебя вроде как более высокий уровень абстракции, но на деле ты всё время видишь через него более низкий, то по факту никакой абстракции у тебя нет и ты сидишь на железе. Вот если бы в сишке не надо было бы помнить про стек, то уровень абстракции существовал бы.
Аноним 12/08/21 Чтв 11:37:10 2125399148
>>2125146
Где прочитать об этих форматах?
Аноним 12/08/21 Чтв 12:03:46 2125440149
>>2125198
>не на что ставить управляемую среду (ОС, драйвер, загрузчик, биос, прошивки для микриков)
Не совсем понятно, что значит "делать хуйню" и "не на что".
Исключения везде есть и везде их можно обработать. ,В контроллерах - прерывания, а в Винде SEH. В википедии пишут что даже свои try блоки для си под Винду есть.

Добавить свои исключения через проверки - можно везде.

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

На уровне функций в принципе разницы нет. На контроллере можно все проверить внутри функции и вызывать при нужде программное прерывание с обработкой исключений.

12/08/21 Чтв 12:32:55 2125466150
12/08/21 Чтв 12:48:17 2125476151
Аноним 12/08/21 Чтв 13:32:07 2125508152
>стэк
>не стандарт

вот скажите, знатоки, если в теории конпелятор начнет запрашивать кучу для array[], или/и наоборот кидать mallocи в стэк, будет ли противоречить какому-то из стандартов?

Аноним 12/08/21 Чтв 13:39:53 2125514153
>>2125508
бтв слышал звон про то что alloca() попал в один из последних стандартов. если так, то это разве не "стэк в Си"?
Аноним 12/08/21 Чтв 13:49:22 2125522154
image.png 60Кб, 1065x48
1065x48
>>2125146
хмм вроде понял,
тип zlib и gz 2 разных формата, оба оборачивают deflate, и если хочу gz надо вместо zlib хедеров закинуть gz?

нашел в документации что можно минимальный гзип хедер подкинуть
> Add 16 to windowBits to write a simple gzip header and trailer around the compressed data instead of a zlib wrapper.
сделал
> deflateInit2(&gz_stream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, WINDOW_BITS | 16, 8, Z_DEFAULT_STRATEGY)
заработало

12/08/21 Чтв 14:02:35 2125531155
>>2125508
Кучу для array[] - не противоречит, лишь бы при выходе из блока free не забывал. Маллоки на стеке невозможны принципиально, потому что время жизни объекта не должно зависеть от времени жизни стекфрейма. Даже если ты не будешь привязываться к стекфрейму и сделашь void ∗stack_malloc(size_t n) { uint8_t obj[n]; return obj; }, то оно, конечно, будет выглядеть, как будто работает, но следующий же вызов любой функции затрет все нахуй.

Хотя ты можешь разместить кучу на стеке: в main() выделить на стеке дохуя, записать адрес в глобальную переменную и заставить маллок брать память оттуда. Это работать будет, потому что по сути ничем не отличается от статически выденного для кучи куска памяти. И еще маллок обычно умеет просить больше памяти у ОС, если у него кончилась, а тут такой фокус не прокатит.

>>2125514
> alloca() попал в один из последних стандартов
Нет, оно по-прежнему нестандартное. Есть только VLA, которые делают что-то похожее.
Аноним 12/08/21 Чтв 15:14:26 2125600156
>>2125466
>Скажи, в питоне или жс надо помнить про стек или нет?
Гораздо меньше.
Аноним 12/08/21 Чтв 15:42:27 2125637157
>>2125202
Хоть кто-то понял.
И помнить нужно не только о стеке, но и о памяти. Вот код:
int a=1;
int b=2;
a[1]=3;
С точки зрения языка высокого уровня это абсурд, ошибка синтаксиса, но в Си это нормальный рабочий код. А всё потому, что, повторяю: в Си нет переменных и массивов, это фальшивка лишь на вид похожая, а на самом деле это лишь сахарок голой памяти и арифметики указателей. Поэтому в Си это нормальный код, хотя выглядит как бред, потому что Си это нихуя не то, чем он кажется дауну с жаваскрипта, где типа тоже похожий синтаксис. Авотхуй.
Аноним 12/08/21 Чтв 16:27:04 2125716158
Аноны, поясните за программирование микроконтроллеров. Легко ли джуну вкатываться в эту область? Есть ли в этом смысл, или сфера вымирает? Хочу заниматься программированием под фитнес-браслеты, умные холодильники и микроволновки, вот это все. Худо-бедно паять умею, программировать на С тоже (хоть и не на уровне бородатого сурового сеньора), в электронике почти не шарю, разве что знаю законы Ома и Кирхгофа, а также имею примерное понимание того, как работают диод и транзистор. У меня есть пара плат с stm32f103c8t6, которые blue pill, я подавал данные на логический анализатор через UART и I2C, принимал их через контроллер прерываний и обрабатывал эти события. Однако, я не пилил какие-либо крутые проекты, да и идей нет
Аноним 12/08/21 Чтв 16:45:30 2125735159
>>2120065
> постоянно учиться новому, ходить на конференции, участвовать в митапах, следить за качеством кода, соблюдать code-style принятый в фирме, делать таски в сжатые сроки
Разве в embedded-сфере не то же самое? Там тоже дохуя документации под различную периферию (команды, схемотехника) а также камни, на один stm32f103c8t6 много даташитов, считай, целых книг, которые надо осиливать. К тому же, embedded-разработчик помимо программирования (будь то С, С++, Rust, Go) должен знать физику (по крайней мере, один ее раздел - электротехнику).
> Даже на последней галере если узнают, что к ним идет устраиваться "программист" из нии, его ливанут
Даже если в "элитной" галере занимаются тупорылым формошлепством и CRUD'ами, а в сфере микроконтроллеров - наука, прогресс, космос. Из рабсиянского НИИ можно в перспективе уехать работать в SpaceX и заколачивать бабло.
Аноним 12/08/21 Чтв 16:55:52 2125750160
Screenshot20210[...].jpg 158Кб, 720x1560
720x1560
Screenshot20210[...].jpg 44Кб, 720x1560
720x1560
>>2125637
>Поэтому в Си это нормальный код,
Пиздабол в треде.

Я как вспомнил, как мне си мозг ебал из-за того что переменная не uint32, а uint16 или типа того.
Как я заебался кастить каждый раз число в указатель.
А если массив uint32, хуй туда сунешь int или ещё что точно такого же размера.

Я уже просил "дружочек, ну тебе не похуй? Я пишу байт по адресу или слово, какая разница, ну тебе же просто поменять команду а?"
Хуй тебе, иди гугли касты.

В универе ебали java ООП, нахуй все это надо я думал. С тех пор ЯВУ считал говном пока коллега не показал питон и как его легко юзать. Я тогда переборол себя, попробовал и приятно удивился, как питону похуй на то что я делаю.

Аноним 12/08/21 Чтв 16:58:58 2125752161
>>2125637
> но в Си это нормальный рабочий код
error: subscripted value is not an array, pointer, or vector
Попизди мне тут.
12/08/21 Чтв 17:49:37 2125816162
>>2125716
> Легко ли джуну вкатываться в эту область
Не сложнее, чем писать под десктопы на той же сишке.

>>2125735
> должен знать физику
Не путать плюс с минусом, переменный ток с постоянным, напряжение с током, 3.3V с 5V, ну и краем глаза прочитать про open drain. Это примерно все.

>>2125600
> Гораздо меньше.
Ну хоть не сказал, что не нужно, уже прогресс. Единственная ситуация, когда мы вспоминаем о стеке - это когда мерзкие детали реализации лезут наружу при рекурсии. В любом языке лезут, будь то жабка или си. А в остальном сишные автоматичкские переменные от локальных переменных в других языках не отличаются совершенно ничем. И пока ты остаешься в рамках, заданных абстрактной машиной Си (== пишешь нормальный, валидный код без UB), помнить про стек не нужно.
Аноним 12/08/21 Чтв 18:06:59 2125838163
>>2125816
>Не путать плюс с минусом, переменный ток с постоянным, напряжение с током, 3.3V с 5V, ну и краем глаза прочитать про open drain. Это примерно все.
А если я начну пилить собственный проект? Мне ведь так или иначе придется сталкиваться с другими разделами физики, если я буду делать своего робота, например.
Аноним 12/08/21 Чтв 18:58:16 2125879164
>>2125531
>Кучу для array[] - не противоречит, лишь бы при выходе из блока free не забывал

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


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

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

>Хотя ты можешь разместить кучу на стеке: в main() выделить на стеке дохуя, записать адрес в глобальную переменную и заставить маллок брать память оттуда. Это работать будет, потому что по сути ничем не отличается от статически выденного для кучи куска памяти.

ну речь об условном экзотическом компеляторе, а не костылях программиста. мне было просто интересно предусматривает ли стандарт определенную работу трансляторов со стэковыми ресурсами (регистры, селекторы) или он в общем случае он волен кидать объекты куда хочет
Аноним 12/08/21 Чтв 19:03:22 2125884165
>>2125879
>в таком случае деаллокации - уже задача конпелятора

сам себя пофикшу (только-только доперло). согласно стандарту деалокации - забота программиста в любом случае. а это значит попытка вызвать free() приведет к динамике стэку, что вапщет пиздец. так что стэк в Си есть, шах и мат
12/08/21 Чтв 20:02:30 2125916166
>>2125884
> забота программиста в любом случае
Нет, локальные переменные автоматические, и компилятор сам о них заботится. А что конкретно он будет делать: add $sp, N или free() - стандарт не регламентирует.

> это значит попытка вызвать free() приведет к динамике стэку
Не распарсил фразу. Но нельзя вызывать free() для того, что ты не получил через malloc()/calloc() (сам, или кто-то, кого ты вызывал). Т.е., даже если наш условный компилятор при входе в блок кода делает malloc() для локальных переменных и подставляет адреса, а ты сделаешь int main(void) { int x; free(&x); }, то независимо от того, сработает ли это - это все равно UB.

>>2125879
> ну речь об условном экзотическом компеляторе, а не костылях программиста
Без разницы, кто это будет делать. Хотя в принципе поддержка компилятором тут не нужна. Алсо, я придумал чрезвычайно тормозной и слегка ограниченный способ делать malloc() на стеке, выделяя объекты в текущем стекфрейме, но обо мне тут и без моих ненормальных идей плохо думают.
Аноним 12/08/21 Чтв 22:33:34 2126046167
>>2125916
Я вот свой недоязык делаю, пытаюсь понять как раз, какие способы распределения памяти существуют и какая у них иерархия.
До этого момента у меня все адреса и переменные были статические. Но уже сил нет без объектов все делать. А объекты невозможно сделать без вычисления адресов, даже статический объект нужно на этапе компиляции куда-то разместить.
Структуры имеют фиксированный размер и их легко было считать.

Короче я к тому, что можешь рассказывать, я все читаю и анализирую, даже если не отвечаю.
Аноним 12/08/21 Чтв 23:17:05 2126078168
>>2125916
>локальные переменные автоматические,
посмотри логи разговора. речь об объектах, аллоцированных с помощью стандартных malloc(), которые транслятор записал, как мы допустили, в стэк. это никакие не автоматические переменные согласно стандарту. следовательно сам стандарт требует, чтобы эти ресурсы были высвобождены кодерком. и

>Но нельзя вызывать free() для того, что ты не получил через malloc()/calloc() (сам, или кто-то, кого ты вызывал).

речь о том, как в данном случае в твоём глобальном стэке от мэйна free() будет реализовано. если после деалокации не трогать наш объект в стэке (хуй с ним, пусть полежит), то это будет пустая функция; или маппинг стэк-фрейма (чтобы кто-то бтв, кто именно, лол? знал о доступных ресурсах); и самый худший вариант - уменьшать фрейм с релокацией других объектов.
по-моему это всё полный бред и стало быть каноны Си строго подчёркивают разницу между стэком и остальной памятью.
да, возможно речь шла об организации памяти (то есть никаких push()/pop() в Си), а не просто специфическом куске памяти. но разница есть потому я всех разгромил в этой демагогии
13/08/21 Птн 01:38:49 2126159169
>>2126078
А, так ты про кучу в стеке, а не локальные переменные в куче? Что мы вообще обсуждаем, лол? Я запутался.

> как в данном случае в твоём глобальном стэке от мэйна free() будет реализовано
Как обычно кучу делают. Простейший вариант: связный список (free-list или block-list), блок помечаем как свободный, объединяем с предыдущим или следующим, если они свободны.
Аноним 13/08/21 Птн 15:08:43 2126764170
>>2125440
Не понял ты меня.
>Управляемый код (англ. managed code) — термин, введённый фирмой Microsoft, для обозначения кода программы, исполняемой под «управлением» виртуальной машины .NET[1][2][3] — Common Language Runtime или Mono. При этом машинный код называется неуправляемым кодом (англ. unmanaged code).
>Слово «управляемый» (англ. managed) здесь относится к методу обмена информацией между программой и исполняющей средой. Оно означает, что в любой точке исполнения управляющая среда может приостановить исполнение и получить информацию, специфичную для текущего состояния.
Я об вот этом. "Добавить свои исключения через проверки" это не совсем то же самое, что "иметь возможность в любой момент остановить выполнение при нелегитимном поведении и показать что именно пыталась делать программа". Одно дело когда у тебя приложуха работает в виртуалке, и виртуалка всегда сможет корректно завершить падающий процесс и подробно показать, что там с ним было не так, другое — когда программа контролируется только осью, а ось максимум что сделает это скажет "сегфолт карочи ебать", и тем более когда оси вообще нет и там ты вообще один на один со своей писаниной и никто не подскажет, что же ты там такого нахуевертил от чело всё ложится.
Аноним 13/08/21 Птн 15:14:17 2126769171
>>2125816
>Единственная ситуация, когда мы вспоминаем о стеке - это когда мерзкие детали реализации лезут наружу при рекурсии.
Ну в сишке у тебя дихотомия на стек и кучу, поэтому ты помнишь о нём постоянно, посколько постоянно решает вопрос "а куда это лучше положить?" В питоне про стек действительно вспоминаешь только при его переполнении, ведь там выделением памяти занимается интерпретатор/виртуалка/что-там-этим-в-питоне-занимается
Аноним 13/08/21 Птн 17:18:02 2126863172
Вопрос по tcp/ip. Не уверен, к вам ли или к линуксоидам лучше.

Короче, есть небольшая платка ethernet -> rs232, которая переправляет сообщения между двумя протоколами. Проблема в запуске TCP сервера на компьютере.

Если я сделаю просто "nc -l <ip> <port>", то всё нормально работает: пишу что-то в последовательный порт и оно отображается в выводе netcat'а.
Если же я пытаюсь запустить сервер так, как показано тут — https://stackoverflow.com/questions/5533282/receiving-data-from-ethernet-port-in-c (как ADDR_ANY, так и чисто мой адрес), то он висит на accept'е, а в wireshark'е вижу, что все SYN запросы от чипа отвергаются RST,ACK'ами. При этом пример клиента оттуда же нормально коннектит, то есть сокет открывается и выходит слушается, хотя netstat его не отображает нигде (но он и netcat'овский тоже до подключения клиента не пишет почему-то).

К слову, тестовая программа от вендора (для винды) тоже не работает: вроде как сервер запускает, но никакие сообщения не посылает / не принимаем, ошибок не выводит, и что там конкретно происходит (от китайцев же всё с полурабочим сайтом, где и скачать-то прогу нельзя было, пришлось по интернету искать) непонятно.

Собственно, можете ли что-нибудь посоветовать? Куда копать, что можно поменять ли попробовать?
Аноним 13/08/21 Птн 20:00:25 2127013173
ec716fa987ba1a3[...].jpg 22Кб, 480x360
480x360
Кажите а двумерный массив можно в функцию передать?
Аноним 13/08/21 Птн 20:10:54 2127027174
>>2126863
lsof -i:PORT показывает что? такое ощущение что сокет не открылся
Аноним 13/08/21 Птн 20:13:02 2127032175
>>2127013
конюшня, указатель на указтель жы
13/08/21 Птн 20:19:32 2127038176
>>2126769
> посколько постоянно решает вопрос "а куда это лучше положить?"
Нет, я решаю вопрос, нужна ли мне переменная за пределами определившей ее функции. То же самое я делаю и в питоне. Только там я не указатель возвращаю, а в dict, tuple или класс заворачиваю.

>>2127032
Я попросил бы! int array[n][m] в аргументах деградирует до указателя на массив из m интов, а не до указателя на указатель на int.
Аноним 13/08/21 Птн 22:12:09 2127098177
>>2127038
Смысле? ты просто передаешь в ф-ю где указатель на указатель array и усе
13/08/21 Птн 22:27:05 2127110178
>>2127098
> ты просто передаешь в ф-ю где указатель на указатель array
#include <stdio.h>
void use_array(int arg) { printf("%d\n", arg[1][1]); }
int main(void) { int array[2][2] = {{1, 2},{3,4}}; use_array(array); }

> и усе
Segmentation fault (core dumped)
Аноним 13/08/21 Птн 22:36:02 2127115179
>>2127027
Ничего не показывает, так что и правда не открылся.
Вероятнее всего, проблема либо в одном из этих двух (далее уже просто listen(id, 1) идёт и accept(id, ...)):
> id = socket(AF_INET, SOCK_STREAM, 0);
> setsockopt(id,SOL_SOCKET,SO_REUSEADDR,&idReuse,sizeof(idReuse))==-1)
либо просто чего-то ещё не хватает, что скорее всего.

Весь код (удалив лишние притнф'ы) — https://ideone.com/J0J0Gj

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


Если же nc -l запустить, то всё верно: там есть нужные айпи/порт в состоянии LISTENING, а потом на ESTABLISHED меняется как до него плата достучится.
Аноним 13/08/21 Птн 22:37:33 2127117180
>>2127115
>так что и правда не открылся.
Ну и nmap это тоже подтверждал.
Аноним 13/08/21 Птн 22:43:27 2127126181
Аноним 13/08/21 Птн 22:46:21 2127134182
>>2127110
Или так!
#include <stdio.h>
void use_array(int arg[2][2]) {

printf("%d\n", arg[1][1]);
}
int main(void) {
int array[2][2] = {{1,2},{3,4}};
use_array(array);
}
13/08/21 Птн 22:49:23 2127139183
>>2127115
sin_port = htons(port). От души возблагодарим дидов за хорошие, годные интерфейсы к сокетам.
13/08/21 Птн 22:54:51 2127144184
>>2127126
> надо же так
Но зачем? Это фу, фу, кака, не делой так больше никогда. Такое нужно, когда тебе хочется, чтобы вложенные массивы были разной длины.

>>2127134
А вот про это я и писал: >>2127038 Так можно. Еще можно VLA притащить, если второе измерение массива не фиксированное.
Аноним 14/08/21 Суб 00:02:16 2127226185
>>2127139
Мда. Спасибо, заработало.
Аноним 14/08/21 Суб 19:35:40 2127905186
C котаны, как думаете каковы топ 5 причин по которым Сишечка - это фактически бессмертный ЯП? или хотя бы будет дить еще ближайшие лет 50 Несмотря на существование более продвинутого С++ и более современного и хипстерского Раста, Сишечка как была актуальна, так и остаётся таковой. Буду рад версиям анонов.
Аноним 14/08/21 Суб 19:53:19 2127935187
>>2127905
>каковы топ 5 причин по которым Сишечка - это фактически бессмертный ЯП?

Потому что новых языков для низкого уровня не придумали. Просто потому что никому это не нужно. У сишки есть компиляторы для всех возможные в мире платформ и устройств. У нового языка такой фичи не будет, увы
Аноним 14/08/21 Суб 20:00:40 2127947188
>>2119301 (OP)
Сисюны, реквистирую стайлгайд!!!!

Ворочаю байтики и выделяю мэлоком а указать чар. Так вот
как лучше, везде считать их указателями ⚝(data + 1) или массивами data[1]?
Аноним 14/08/21 Суб 20:35:58 2127992189
>>2127935
Перейдут на квантовые компьютеры, и все сишники отправятся на помойку.
Или пойдут чистить сортиры в поместьях хаскелистов.
Аноним 14/08/21 Суб 20:42:44 2128008190
>>2127992
>квантовые компьютеры
Такого не случится. Максимум что-нибудь для вычислений сделают, что-то типа GPU.

> все сишники отправятся на помойку.
Или пойдут чистить сортиры в поместьях хаскелистов.
Что мешает перейти на хаскель?
Аноним 14/08/21 Суб 20:42:46 2128009191
А существуют ли числа в Си?
Аноним 14/08/21 Суб 20:51:57 2128023192
>>2127935
>Потому что новых языков для низкого уровня не придумали
Чем тебе С++ не язык низкого уровня? Это ведь некий суперсет языка С. Хотя, как видим, плюсы сишечку не убили, а лишь дополнили. Интересно как во всю эту движуху впишется ржавый (Rust).
Аноним 14/08/21 Суб 22:13:05 2128096193
>>2128009
>числа
Нет, есть байты и их последовательность
Аноним 15/08/21 Вск 03:56:59 2128216194
>>2128023
>>новых языков для низкого уровня не придумали
>Это ведь некий суперсет языка С
Сам спросил, сам ответил. Что еще ожидать от хрюсто-дебила.
Аноним 15/08/21 Вск 12:15:01 2128431195
>>2128216
Ыксперт с попеннета не палится.
Аноним 15/08/21 Вск 16:38:00 2128644196
Аноним 17/08/21 Втр 13:00:07 2130424197
Как с работой, байтослесари?
Аноним 17/08/21 Втр 13:12:43 2130450198
>>2130424
Перекладываю пакеты за 200к, хочу повышения.
Аноним 17/08/21 Втр 14:02:43 2130545199
>>2130450
Как добился этого? Возможно ли джуну без опыта устроиться сишником? Я потихоньку под микрики программирую.
Аноним 17/08/21 Втр 16:50:27 2130748200
>>2125716
F103 не актуален, тем более с алика, если хочешь стать ембдерром запили свою библу на сложное и актуальное устройство(датчик, дисплей и тд), все протоколы и ядро кортекс ты должен знать и ещё дохуя чего, поэтому лучше оставь как хобби и занимайся чем нибудь другим
Аноним 17/08/21 Втр 16:56:28 2130752201
>>2130748
> F103 не актуален, тем более с алика
Я знаю, но выбрал его для старта, т.к. под него очень много гайдов.
> если хочешь стать ембдерром запили свою библу на сложное и актуальное устройство(датчик, дисплей и тд)
А это довольно сложно, т.к. требует разбираться в документации по командам. Попытался наладить общение между микриком и ssd1306, в итоге утонул в информации, юзаю в итоге готовую либу.

> все протоколы и ядро кортекс ты должен знать и ещё дохуя чего
Что именно знать? Нужно уметь программировать все это на уровне регистров? А что насчет Cortex, я должен наизусть знать архитектуру?

> поэтому лучше оставь как хобби и занимайся чем нибудь другим
Не хочется заниматься ебанными сайтами или чем-то близким к этому, но работу искать надо. Я долгое время увлекаюсь реверс-инжинирингом, пентестом, поиском уязвимостей, но, к сожалению, не могу сделать это источником заработка.
Аноним 17/08/21 Втр 17:03:32 2130760202
>>2130545
Просто повезло ))
На первую сишную работу устраивался с опытом программирования PIC16 и показал сишный код, который писал для себя, в том числе ядерный. А там как раз требовалось такое для поддержки самопальных железок.
Аноним 17/08/21 Втр 17:06:41 2130764203
Аноним 17/08/21 Втр 18:22:16 2130865204
>>2130752
>ssd1306

Как делал я.
Нашел код на питоне.
Запустил через esp32/8266 или black pill через mycropython.
Прочитал исходник.
Нашел инициализацию.
Выписал в строку байт (там чтение не нужно, всегда запись).
Отправил их прямо строкой через i2c на питоне без либы.
Прочитал смысл каждой команды в даташите.
Собрал те функции которые мне нужны уже в ассемблере.
Сохранил. Закрыл. Разъебал экран. Забыл.

Аноним 17/08/21 Втр 18:41:15 2130890205
>>2130885
Вышмат обязателен для всех инженеров, т.к. он мозги формирует.
Аноним 17/08/21 Втр 18:44:01 2130895206
>>2130890
И что, у тебя сформировались?
Аноним 17/08/21 Втр 18:53:04 2130905207
>>2130895
Я сдал его долгом на тройки и жалею об этом. Самое главное - это фундаментальное образование, а языки и фреймворки - уже второстепенно
Аноним 17/08/21 Втр 19:13:39 2130922208
Аноним 17/08/21 Втр 19:26:17 2130947209
>>2130922
> ЦОС
В моей шараге не было ни цифровой электроники/схемотехники, ни системного программирования, ни просто сишки.
Аноним 17/08/21 Втр 21:14:26 2131075210
>>2130450
А что за проект? обработка трафика в провайдерах?
Аноним 17/08/21 Втр 21:16:53 2131080211
>>2130764
Неплохо? JS макаки рубят по 300к, зная сраный реакт... Рыночек решает...
Аноним 17/08/21 Втр 21:32:10 2131089212
Screenshot20210[...].jpg 300Кб, 1080x2400
1080x2400
Че за херня происходит в disp_stdin? Почему читают с нулевого указателя и пишут в первый?
17/08/21 Втр 21:58:42 2131113213
>>2131089
Привет, школа 42 как же вы заебали.Никаких указателей там нет, есть дескрипторы и традиция написания нечитаемого когда с магическими числами, которая до сих пор тянется к нам из 80х. Поэтому тебе стоит сначала man read и потом загуглить STDIN_FILENO, дальше сам.
Аноним 17/08/21 Втр 22:03:51 2131120214
>>2131113
> Привет, школа 42
С чего ты взял?
> Никаких указателей там нет, есть дескрипторы и традиция написания нечитаемого когда с магическими числами, которая до сих пор тянется к нам из 80х. Поэтому тебе стоит сначала man read и потом загуглить STDIN_FILENO, дальше сам.
Спасибо большое
17/08/21 Втр 22:05:35 2131123215
>>2131120
> С чего ты взял?
> ft_cat
> ft_putstr
С того, что это ихние уебищные либы.
Аноним 17/08/21 Втр 22:09:22 2131131216
>>2131123
Код может и оттуда, но не я
Аноним 17/08/21 Втр 22:38:49 2131155217
>>2131075
Не в провайдере, но обработка трафика. Для ткаих задач С как раз хватает, хотя иногда хочется владеть плюсами.
Аноним 18/08/21 Срд 17:18:04 2131966218
а может нахуй си, если не собираюсь микрики кодить? лучше уже плюсы дрочить?
Аноним 18/08/21 Срд 17:37:25 2131991219
>>2131966
Плюсы это пиздец, там надо очень много знать, ведь разработчики высрали множество различных стандартов. Да и перспектив у этого языка нет, там одно легаси.
Аноним 18/08/21 Срд 17:55:18 2132011220
>>2131991
мб тогда раст? бля, но там педики позасовывали в язык того, что и нахуй не надо, дебилы. хуй знает, как по мне лучше уже плюсы

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

обоссыте, но не бейте
Аноним 18/08/21 Срд 18:05:04 2132026221
>>2132011
А чего тебе именно не хватает? Он наоборот является языком, предоставляющим тебе максимальные возможности в пределах выделенной твоей программе памяти (разве что после ассемблера).
> раст
Сам думаю выучить его.
Аноним 18/08/21 Срд 18:48:01 2132072222
>>2132011
Я вот попробовал Го учить, но это просто лютый пиздец а не язык... Лучше кресты выучить, на крайний случай есть ПХП если совсем жрать нечего
Аноним 18/08/21 Срд 19:51:14 2132120223
Дишка лучше крестов, ржавого и говняшки.
Аноним 18/08/21 Срд 20:18:11 2132141224
>>2130752
Гайды хуяйды, изучи даташит, изучи программирование. Программирование это твой стиль написания кода. На хуй брать говно f103(каюсь сам раньше грешил по незнанию сейчас это говно валяется, потому что нормальную купил) китайцы продают самопал ёбаный за счет вас хомячков кормяться, бери нормальный девборд(если не в терпеж адаптируй гайды под нее)
На производстве никто f103 не юзает, залезь лучше в форум стм и почитай
Аноним 18/08/21 Срд 20:23:45 2132143225
>>2130752
Знай как работает spi, i2c, 1wire, can, uart, usart
Знай cortex почитай книгу, взвесь все за и против хватит ли времени, у тебя должно быть дохуя мотивации вкатиться, у ембдеров нету джунов, сеньоров
Аноним 18/08/21 Срд 20:25:36 2132146226
>>2132143
Реквестирую потенциальную литературу по embedded.
мимо
Аноним 18/08/21 Срд 21:50:05 2132220227
>>2132026
абстракций не хватает, процедурная парадигма очень скудна.

>>2132072
> Я вот попробовал Го
да я тоже пробовал, диплом когда-то давно на го писал. Прикольно,
структуры с методами, и утиная типизация, такое бы в си завезли. но го не то. Там ГЦ, а я хочу че-нить без ГЦ, вот си и плюсы. есть еще раст, но там борроу чекер залупский, который ебет тебя в жопу, и слегка делает память безопасней. А я не хочу ебаться с борроу чекером, я хочу ебаться с памятью.

> есть ПХП
да я и так уже рубист

хотя с си я больше профита поимею, нативные экстеншены для рубей смогу клепать.
Аноним 18/08/21 Срд 22:52:11 2132281228
Зацените ats. Встроенный прувер, безопаснее раста, адресная арифметика, мл-лайк синтаксис, фичи мл(автовывод типов, алгебраические типы и т.д.), линейные типы, зависимые типы, компиляция в си и много чего ещё.
Аноним 18/08/21 Срд 23:25:36 2132306229
>>2132281
сори, но залупа какая-то
Аноним 18/08/21 Срд 23:37:49 2132313230
>>2132306
Это нормально, язык появился где-то в конце нулевых, вышло две версии, на подходе третья, более простая. До сих пор о нём знает очень мало людей.
18/08/21 Срд 23:42:43 2132314231
>>2132281
Низкоуровневому языку нужна не ебля с какими-то там абстрактными типами, а возможность memory ordering задавать указателю без костылей.
Аноним 19/08/21 Чтв 00:41:26 2132338232
>>2132314
абстрактные типы нужны для удобства и безопасности. Никто не мешает вызывать сишные функции, которые, вроде, можно верифицировать с помощью ats.
Аноним 19/08/21 Чтв 01:06:28 2132360233
Является ли C++ говном для даунов?
Аноним 19/08/21 Чтв 03:07:59 2132386234
Имеет ли смысл компилировать (небольшие) части своего проекта в статические либы и линковать с ними? Допустим, если у меня под stm проект, а там hal, freertos и несколько файлов с собственно юзер кодом. Я как-то вот сделал, чтобы hal и freertos компилировались, собирались ar'ом ну и лежали себе готовенькие. Зачем только?
Изначально я туда полез, потому что где-то писали, что поможет уменьшить размер бинарника (типа, возьмёт из либы только использумые функции), но с -ffunction-setions и --gc-sections разницы никакой нет (а без этих флагов компиляция в либу мало чего даёт). Разве что makefile может читабельней выходит, когда не всё в кучу накладывается.
Аноним 19/08/21 Чтв 07:41:12 2132442235
>>2127905
для многих системных задач, нужен максимально тупой язык
это с
Аноним 19/08/21 Чтв 09:58:32 2132545236
>>2132146
Ни одной книги полезнее даташита или app note не встречал. Все что нужно знать об интерфейсах, есть в даташитах на чипы, которые этот интерфейс имеют.
С ПЛИС ситуация точно такая же, и даже более характерная.
Не понимаешь один даташит - возьми другой. Совсем плохо - гугли.
Аноним 19/08/21 Чтв 10:05:13 2132558237
>>2132386
Готовые либы хороши если вдруг их старые проверенные исходники перестанут собираться по какой-то причине. У меня есть короткая полезная функция на ассемблере, которую я вставляю как массив байт и вызываю где хочу. Не нужно ебаться с поддержкой ассемблера.
Аноним 19/08/21 Чтв 10:43:15 2132608238
>>2132386
быстрее соберется еще наверн, когда ты перекомпиливашь только часть проекта, там где изменения
Аноним 19/08/21 Чтв 12:56:55 2132790239
>>2132558
>У меня есть короткая полезная функция на ассемблере, которую я вставляю как массив байт и вызываю где хочу.
В исходниках на турбо паскале такого говна было полно. Ты оттуда вылез?
Аноним 19/08/21 Чтв 13:08:34 2132800240
>>2132790
У тебя комплекс неполноценности?
Аноним 19/08/21 Чтв 13:35:57 2132826241
>>2132608
Так он же в любом случае перекомпилирует только те объекты, в исходниках которых были изменения (у меня по крайней мере каждый .c в .o делается по-отдельности).
Скорее наборот, без либы было бы быстрее (если миллисекунды считать), так как не нужно дополнительно архивировать это всё потом.
Аноним 19/08/21 Чтв 14:10:33 2132869242
Статические либы придумали только для того, чтобы объектники (один на функцию, в идеале) не лежали россыпью. Потом туда присобачили индексы, чтобы собирать быстрее.
Аноним 19/08/21 Чтв 14:11:26 2132871243
image.png 48Кб, 530x195
530x195
>>2132558
>У меня есть короткая полезная функция на ассемблере, которую я вставляю как массив байт и вызываю где хочу.

ТАК ТАК ТАК, ЧТО ТАМ У НАС
Аноним 19/08/21 Чтв 15:41:41 2132963244
чому нету була?
Аноним 19/08/21 Чтв 16:27:44 2133022245
А если в h файле писать только имя структуры а в c файле писать имя и поля, это правильно? Или структуры надо обязательно писать в h файлах?
Аноним 19/08/21 Чтв 16:28:26 2133025246
>>2132963
Тому що вызовет клэши.
Поэтому есть _Bool
Аноним 19/08/21 Чтв 16:33:44 2133032247
>>2133022
Это правильно с т.з. теории (сокрытие деталей реализации), но вынуждает выделять струку динамически. А нормальные сишники не спешат маллочить.

struct foo;
struct foo alloc_foo(void);
void free_foo(struct foo
);
19/08/21 Чтв 16:34:08 2133035248
>>2132826
Это в идеале так. А в жизни ты поправил CMakeLists, и оно опять пересобирается. Дописал комментарий в хедере либы, и пересобирается твоя либа, и твои приложения, которые ее используют. Так что да, статические либы в большом проекте - спасение.

>>2132963
Есть. #include <stdbool.h>

>>2133022
Публичная структура - имя и поля в хедере, можно определять переменные такого типа. Приватная структура - в хедере только имя, переменные определять может только реализация, которая объявила полноценную версию структуры, а внешний код будет довольствоваться только непрозрачными указателями.
Аноним 19/08/21 Чтв 16:36:32 2133039249
>>2132220
>абстракций не хватает, процедурная парадигма очень скудна
Ты на С можешь программировать хоть объектно-ориентированно, хоть функционально. Например, свои классы можно пилить из структур, в которых содержатся указатели на функции.
Аноним 19/08/21 Чтв 16:59:02 2133074250
>>2133039
да я начал читать https://www.cs.rit.edu/~ats/books/ooc.pdf

да только уже чем так изъебываться проще для структур делать методы
mylib mylib_create()
void mylib_free(mylib
self)
mylib mylib_clone(mylib self)
и так далее и не выебываться. Либо сразу плюсы взять

А про функциональщину интерестно, каким это боком на си можно?
Аноним 19/08/21 Чтв 17:15:27 2133093251
>>2133039
ФП на Си в конечном счете вырождается в ООП, ибо для захвата каждого отдельного окружения придется объявлять структуру, а при захвате вручную инициализировать эту структуру.
Аноним 19/08/21 Чтв 17:23:50 2133105252
>>2133035
>А в жизни ты поправил CMakeLists, и оно опять пересобирается
Так это же всё будет зависеть от того, как у тебя зависимости настроены. Откуда ему знать, может ты там убрал или добавил каких-то объектов, ясное дело, что нужно перекомпилировать. А если никакие объекты от мейкфайла не зависят (я в cmake не очень, пользуюсь обычным gnu'шным makefile'ом, но полагаю, что там примерно то же самое всё), то изменения внутри этого файла необходимость перекомпиляции не возбудят.

>Дописал комментарий в хедере либы, и пересобирается твоя либа
То же самое. Как ему разобрать, просто комментарий ты написал или каких-то новых вещей напихал или поля структур изменил? Произошли изменения — нужно пересобрать всё.

Не очень понимаю, как именно статическая либа тут что-то изменит-то? Были изменения, затронувшие файлы "либы" — нужно бует перекомпилировать. Линковаться со всеми этими объектами или предварительно собрать всё в архив, какая разница-то?
Аноним 19/08/21 Чтв 18:50:33 2133199253
>>2133105
>если никакие объекты от мейкфайла не зависят (я в cmake не очень, пользуюсь обычным gnu'шным makefile'ом, но полагаю, что там примерно то же самое всё), то изменения внутри этого файла необходимость перекомпиляции не возбудят.

⛧.o: Makefile
Аноним 19/08/21 Чтв 19:50:11 2133281254
>>2132871
То stm32, и это самое безобидное что я делаю с ним.
Аноним 19/08/21 Чтв 20:15:32 2133315255
Аноним 19/08/21 Чтв 21:08:25 2133381256
>>2119301 (OP)
пишу tui под линуксами без сторонних библиотек .Проблема заключается в том,что операционная система отправляет сигнал SIGWINCH только когда в UI-цикле задержка между записями в stdout составляет порядка 200 миллисекунд .Если понижать задержку ,при изменении размера терминала сигнал начинает приходить не всегда , а то вообще не приходит в 100% случаев.

стабильная робота только при 5-ти кадрах в секунду это неприемлемо

что делать?
19/08/21 Чтв 21:16:17 2133386257
>>2133105
> Не очень понимаю, как именно статическая либа тут что-то изменит-то?
Считаешь, что функциональность заморожена @ уберешь либу и ее хедеры из зависимостей остального проекта @ ребилдишь либу, если нужно, явным способом make mylib.a @ профит, если правки не влияют на интерфейс либы. Экономишь кучу времени на ребилдах.
Аноним 19/08/21 Чтв 21:26:34 2133397258
>>2133381
Хз, телепаты в отпуске.
Аноним 19/08/21 Чтв 21:32:15 2133405259
image.png 207Кб, 474x338
474x338
>>2133397
по-моему вопрос описан нормально,я не понимаю к чему ты это написал
Аноним 19/08/21 Чтв 21:35:58 2133409260
>>2133405
Покажи коде, анимешная аватарка.
Аноним 19/08/21 Чтв 21:44:49 2133412261
image.png 288Кб, 682x1023
682x1023
>>2133409
код плюсовый, вот ui-цикл :

55 while (1)
56 {
57
58 // DBG_WRITE_SIZE
59 std::this_thread::sleep_for (std::chrono::milliseconds (200));
60 tui::terminal::draw ();
61 }
62

108 void
109 tui::terminal::draw ()
110 {
111 cursor::move ({ 0, 0 });
112
113 for (uint i = 0; i < size.y; i++)
114 for (uint j = 0; j < size.x; j++)
115 {
116 flush (BG_color_map[j]);
117 flush (FG_color_map[j]);
118 flush (char_map[j]);
119 }
120 }

43 namespace
44 {
45 void
46 flush (const tui::ForegroundColor& fg)
47 {
48 write (STDOUT_FILENO, fg.escape_sequance ().data (),
49 fg.escape_sequance ().size ());
50 }
51 void
52 flush (const tui::BackgroundColor& bg)
53 {
54 write (STDOUT_FILENO, bg.escape_sequance ().data (),
55 bg.escape_sequance ().size ());
56 }
57 void
58 flush (const char ch)
59 {
60 write (STDOUT_FILENO, &ch, 1);
61 }
62 }


Ну тут на самом деле код ничем не поможет потому что это операционная система сигнал не шлет , тут мои полномочия все.Единственный вариант что я должен куда-нибудь пару байтиков записать что бы что-то сбросилось, или syscall какой-то нужен.Я собственно к сишникам на ковер пришел потому что плюсовики вряд ли про такие тонкости оси знают
Аноним 19/08/21 Чтв 22:21:57 2133462262
>>2133412
Возможно, твоему терминальному эмулятору становится хуево от того, что ты пишешь каждый байт отдельным вызовом. И оно не посылает тебе сигнал. Буферизуй записи или поменяй терминал.
Аноним 19/08/21 Чтв 22:32:25 2133473263
image.png 106Кб, 474x266
474x266
>>2133462
Ну поменяй терминал точно не вариант т.к программа должна работать везде,даже в нативном линупс терминале,без иксов.

Я не могу чисто теоретически записывать например построчно ,потому что каждая клеточка терминала должна иметь свой цвет,который я ,перед тем как положить char ,должен записать в stdout в виде esc-кода .То есть от посимвольной записи уйти невозможно.
Аноним 19/08/21 Чтв 22:55:09 2133497264
>>2133473
Просто сложи все байтики в буфер хоть на одну строку, потом делай один write.
А вообще тебе стоит ознакомиться с внутренностями curses.
Аноним 19/08/21 Чтв 23:32:15 2133547265
>>2133497
попробовал построчный write : не сработало.
запись всех данных одним разом результатов тоже не дал.

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

108 void
109 tui::terminal::draw ()
110 {
111 for (uint i = 0; i < size.y; i++)
112 {
113 std::string buffer;
114 for (uint j = 0; j < size.x; j++)
115 {
116 buffer += BG_color_map[j].escape_sequance ();
117 buffer += (FG_color_map[j]).escape_sequance ();
118 buffer += (char_map[j]);
119 }
120
121 write (STDOUT_FILENO, buffer.c_str (), buffer.size ());
122 }
123 }
Аноним 19/08/21 Чтв 23:40:38 2133557266
>>2133199
Я в курсе, про это и писал, что если мейкфайл вот так вот не указан как зависимость, то ничего не произойдёт.

>>2133386
Да, но точно так же можно было бы убрать и объекты этой "либы" из зависимостей, но оставить в списке, передаваемом линкеру.

То есть, что у тебя будет
>app.elf: main.c
>    $(CC) -c $< -o $•.o
>    $(LD) -o $@ $•.o -lmylib
Что так:
>app.elf: main.c
> $(CC) -c $< -o $•.o
> $(LD) -o $@ $•.o mylib.o

Результат-то один, не? Сколько mylib.c не изменяй, .elf не удет пересобираться. Понятное дело, что с либой удобнее, когда много файлов, вопрос-то в другом. Либа это лишь возможность более удобно организовать всё, как говорил >>2132869 (и как мне кажется), или всё же есть какая-то функциональная разница?
20/08/21 Птн 01:38:19 2133628267
>>2133557
> есть какая-то функциональная разница
Принципиальной разницы нет. Это всегда вопрос удобства.
Аноним 20/08/21 Птн 13:08:34 2133936268
image.png 490Кб, 570x736
570x736
Аноним 20/08/21 Птн 13:21:30 2133958269
photo2021-08-20[...].jpg 15Кб, 350x336
350x336
Аноним 20/08/21 Птн 13:23:29 2133961270
>>2133958
>photo2021-08-20[...].jpg
Зачем ты выложил своё фото? Я не просил тебя этого делать.
Аноним 20/08/21 Птн 17:40:36 2134278271
>>2133547
анон,который писал про то что терминал перегружен записями ,судя по всему, прав потому что пустой while(1) все прекрасно ловит , а если добавить туда запись даже одного байтика в stdout все идет пиздой.

Как я уже говорил : 5 к/с это неприемлемо,так что при изменении картинки буду двигать курсор и точечно править,а не писать весь массив без остановки.

Вопрос закрыт.
Аноним 20/08/21 Птн 19:23:15 2134425272
>>2133958
Свинья же некошерное животное, она не может быть маскотом еврейской расовой энциклопедии.
Аноним 20/08/21 Птн 20:15:06 2134462273
Планирую изучать C. Какой пет-проект можно запилить?
Аноним 20/08/21 Птн 20:40:36 2134485274
>>2134462
Удваиваю реквест.
мимо
Аноним 20/08/21 Птн 21:26:10 2134547275
>>2134462
Веб-фреймворк, на сишке их пока не видел.
Хотя бы просто контроллеры для REST сервиса.
Аноним 20/08/21 Птн 21:28:43 2134550276
Аноним 20/08/21 Птн 21:34:07 2134559277
>>2134462
Интересно сделать что-нибудь с алгоритмами
Аноним 20/08/21 Птн 21:43:42 2134573278
>>2134462
Чукча, читать научись сначала. И почитай хорошо оформленный код. Потом сам придумаешь себе педопроект.
Аноним 20/08/21 Птн 23:07:16 2134689279
>>2134462
https://github.com/rby90/project-based-tutorials-in-c
https://github.com/tuvtran/project-based-learning#cc

>>2134573
>Before you start, please keep in mind that studying existing code is not necessarily the best way to learn programming. Programming, in the end, is about applied problem solving, and the best way to get better at problem solving is through lots of practice. Just reading existing snippets of code isn't likely to teach you as much. Usually, when people do study code, it's in a targeted and specific way. For example, if a dev was interested in writing a game using some engine, it would be helpful to see the source code for various demos using that engine.
Аноним 20/08/21 Птн 23:16:39 2134709280
>>2134689
Ну так то для англосаксов not necessarily.
А мы - самая читающая нация.
Аноним 20/08/21 Птн 23:45:05 2134744281
Аноним 20/08/21 Птн 23:57:52 2134758282
>>2134462
операционная система
Аноним 21/08/21 Суб 07:41:54 2134856283
>>2134709
Учеба = тунеядство.
Цитата из книжки.
Аноним 21/08/21 Суб 09:40:26 2134891284
>>2134709
Ну по существу, научиться програмировать можно программируя. Что понимается под программированием? Вот у меня есть мир. В этом мире есть некая задача. Я могу эту задачу решить вручную (это ВАЖНО, блядь, новички иногда часто забывают, что нельзя автоматизировать то, что ты не понимаешь как сделать вручную), но мне лень либо я не могу её решать достаточно быстро. К примеру я могу вручную рендерить кадры из 3д игры, но это мне мало что даст - моей скорости не хватит чтобы игра шла плавно и работала так, как было задумано. А компьютер может делать это быстро, поэтому приходим к программированию.
Решая подобные задачи, мы учимся программировать.
Читая же чужой код, можно понять, что хотел сказать автор той конкретной программы, которую ты читаешь. А можно не понять. Более важный вопрос - и чё дальше? Чукча, конечно читатель, и чукча может понять, как работает программа некоего дяди, которая делает то-то и то-то. Но что дальше чукча сделает с этими знаниями? Напрашивается ответ - чукча будет либо дебажить программу дяди, либо добавлять к ней фичи. Если чукче это нужно - то флаг ему в руки. Но если нет?
Аноним 21/08/21 Суб 10:04:39 2134906285
>>2134462
Прошивка для микроконтроллера.
Аноним 21/08/21 Суб 10:10:57 2134912286
Как же всё заебало. Понаделали кнопочек и умничают. Что нравиться тебе этот сайт, нравится полуанонимное общение с модерацией? Зато кнопочки есть.
У вас есть какая-то философия, принципы, для чего вы это делаете? Не только же для автоматизации, или только?
Слабо придумать систему в которой будут не нужны модераторы?
Конечно, тут ведь логику надо подключать, это вам не кнопочки делать.
Аноним 21/08/21 Суб 10:25:40 2134921287
Всё купили, всё продали.
>хочу вкатится
в этот оборот купли-продажи все хотят вкатится, а не в программирование.
Аноним 21/08/21 Суб 13:25:11 2135083288
>>2134891
>Ну по существу, научиться програмировать можно программируя.
Ну да, а научиться говорить можно только говоря, слушать необязательно. Или можно послушать негров каких-нить - и заговорить на правильном английском.
>Решая подобные задачи, мы учимся программировать.
Вот так и появляется индусский код, который решает задачи (как бы вручную, но быстрее), а значит все хорошо.
Аноним 21/08/21 Суб 13:57:23 2135123289
>>2134921
Что ты хочешь от нищих.
Аноним 21/08/21 Суб 18:44:38 2135460290
>>2135083
>Ну да, а научиться говорить можно только говоря, слушать необязательно
Эта аналогия тут для чего? Это аргумент в пользу твоей позиции?
Аноним 21/08/21 Суб 20:52:07 2135598291
Аноним 21/08/21 Суб 20:57:13 2135606292
Аноним 21/08/21 Суб 21:12:39 2135621293
Аноним 22/08/21 Вск 04:04:24 2135849294
Если я напишу средний/сложный компилятор в качестве портфолио меня возьмут на вакансию джуна по Си?
Аноним 22/08/21 Вск 08:20:59 2135878295
>>2135849
Если простой напишешь, то должны взять. Впрочем, можно так отформатировать код, что и не возьмут.
Аноним 24/08/21 Втр 14:09:00 2138687296
>>2119301 (OP)
Зачем нужны абсолютно все языки, если все в конце концов собирается в Си?
Аноним 24/08/21 Втр 14:46:25 2138727297
>>2138687
Зачем нужен Си, если все в конце концов собирается в машинный код?

Ответ: потому что программы на языках программирования пишут для людей, а не компом. Компы и битами/байтами прекрасно довольствуются. Различные языки позволяют программы понятными для людей, что облегчает и их (программ) создание и доработку.
Аноним 24/08/21 Втр 15:02:13 2138744298
>>2138727
Но тогда страдает производительность, а если программа непроизводительная, и неэффективная, и жирная, то зачем она нужна вообще. Языки это вообще тогда не языки, а просто трансляторы в Си. Это же тупо. Получается, что кроме Си ничего нет и Си это такой же фюрер как и жс, но в мире системного по. Я не могу просто сидеть, когда хеллоу ворды сейчас буквально 10ки мб весят. Это же тупо
Аноним 24/08/21 Втр 19:37:35 2139020299
>>2138744
что ты несешь? мало что транслируется в си

а про производительность открою тебе истину - железо стоит дешевле времени еба сеньера c/c++, тут как бы рыночек порешал. Да и в подавляющем большинстве итшных задач веб макакинг производительность конкретно твоего кода мало че решает, главное понятный код и sql запросы нормальные пиши, тут не нужен челик, который ебет байты
Аноним 24/08/21 Втр 19:50:23 2139034300
>>2138744
>Языки это вообще тогда не языки, а просто трансляторы в Си. Это же тупо. Получается, что кроме Си ничего нет и Си это такой же фюрер как и жс, но в мире системного по.
Metaprog, ты? Узнал тебя по шизоидной любви к си.

Есть колибри ос, традиционно помещается на дискету. А толку?

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

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

Но большинство не умеет писать код. Готовые решения, стандартные функции по мануалам, стандартные аргументы, стандартные подходы.

Так что ты пока очень далеко от своей цели, продолжай учиться и постигать Дзен и Дао.
Аноним 24/08/21 Втр 21:11:59 2139116301
Поступил в уник ездь два потока бутылки C/C++ и C#
Описание обоих в кратце:
➕Поток “плюсов”
Программа состоит из трех частей:
1. теория (базовая информация по алгоритмам)
2. Язык C
3. Архитектура ЭВМ и ассемблер

#️⃣Поток “шарпов”
Программа состоит из двух частей:
1. Первые три модуля изучается C#
2. В 4 модуле C++ в 4
Так вот то есть по сути выбор между C + asm и потом плюсы и C# и потом плюсы(чуть меньше видимо). Я насколько понимаю первый вариант более предпочтительный так как из C вкатываться в плюсы более естественно чем из шарпов? Че выбрать?
Аноним 25/08/21 Срд 01:13:01 2139290302
>>2139116
с шарпами проще работу будет найти
Аноним 25/08/21 Срд 11:28:45 2139544303
>>2139116
Первый вариант даст тебе базу, поэтому выбирай его. Шарпы сможешь сам потом выучить, если надо будет.
Аноним 25/08/21 Срд 13:57:20 2139671304
>>2139544
вот так и думаю, шарпы с винформами/другой хуйнёй по необходимости вполне можно самому освоить, а вот низкоуровневые вещи лучше под чьим то надзором учить
Аноним 25/08/21 Срд 16:29:55 2139851305
>>2139020
>железо стоит дешевле времени еба сеньера c/c++, тут как бы рыночек порешал
Эмм, если твой не-ёба джун посчитает скажем числа фибоначчи рекурсивно и эта процедура будет дохуя где использоваться и считать большие числа, то тебя никакое железо не спасёт, я прям сейчас могу показать насколько ощутимое время будет занимать процедура на твоём манятоповом железе. Правда это не проблема си-оптимизаций, а алгоритмическая недоработка, уровень абстракции повыше малёха, но и в мире машинных оптимизаций такого говна пруд пруди, как например разница между копированием массива построчно и постолбцово (один из способов в восемь раз медленнее другого). Всегда есть предел долбоебизму, после которого железо перестаёт спасать.
Аноним 25/08/21 Срд 16:30:43 2139852306
Аноним 25/08/21 Срд 19:02:35 2140006307
>>2139851
я говорил про основную часть задач, которые требует среднестатистический бизнес от среднестатистического программиста.
свои числа фибоначчи от большого числа можешь в универе на первом курсе в качестве лабы сдать либо засунуть себе в жопу.
В стандартной задаче взять откуда-то данные распарсить их и положить в другое место можно и питоном на не-еба джуне сделать. Только купи виртуалочку нормальную, а сдачу оставь джуну на тарелку риса за которую он работает.
25/08/21 Срд 20:20:17 2140146308
Аноним 26/08/21 Чтв 09:45:46 2140508309
>>2139671
Хуй знает, лично я их учил сам, так как в универе как раз были только шарп, джава и функции управления (учет, анализ, планирование), лол.
Аноним 26/08/21 Чтв 09:51:02 2140512310
Парни с ещё будет жить или лучше уже сразу в раст ударицо?
Аноним 26/08/21 Чтв 10:03:29 2140518311
>>2140512
Это все равно что сказать, что часы со стрелками умерли и больше не нужны, ведь есть цифровые. И потом принципиально избегать все случаи, где аналоговые и механические часы просто упоминаются.
То есть ты проводишь мысленно черту через условный 2022 год, когда раст станет популярнее си для новых проектов и говоришь: я работаю только с тем что написано после 22 года. Все остальное вне моей компетенции.
Аноним 26/08/21 Чтв 11:04:58 2140563312
>>2140518
>есть ты проводишь мысленно черту через условный 2022 год, когда раст станет популярнее си для новых проектов и говоришь:
Воу, что-то ты разогнался.
Аноним 26/08/21 Чтв 11:48:05 2140599313
>>2140518
> когда раст станет популярнее си
чет ору в голос
раст не станет популярным продакшн языком, сколько бы его не форсили разные дэлбики.
Аноним 26/08/21 Чтв 13:26:24 2140691314
>>2140599
Почему? Слишком сложный?
Аноним 26/08/21 Чтв 17:57:18 2140977315
>>2140691
если кратко то да

если не кратко, то раст - это просто сборник каких-то идей и подходов, которые сейчас будут обкатываться, какие-то удачные уйдут на вооружение в другие языки.

под удачными я понимаю соотношение головной боли самой проблемы к головной боли от решения на расте, которое решает эту проблему. Например борроу чекер - решает UB с памятью, но ценой того что тебя в жопу ебет компилятор, какая боль страшнее? править баги с памятью, или заниматься всякой дрочью типа описывать время жизни ссылки из-за чего код превращается в какую-то вырвиглазную хуиту?
Аноним 26/08/21 Чтв 18:01:14 2140980316
>>2140977
хорошие фичи раста появятся в других языках, но сам раст имхо не взлетит все-таки
Аноним 26/08/21 Чтв 18:33:00 2141019317
Аноним 26/08/21 Чтв 20:10:37 2141157318
>>2140563
>>2140599
Я пытался быть оптимистом. А так вы отбили человеку все желание учить раст. Сволочи!
Аноним 26/08/21 Чтв 21:29:07 2141231319
>>2140980
По рейтингам всегда на несколько пунктов уходит от goвна
Аноним 26/08/21 Чтв 21:52:04 2141262320
>>2141231
в tiobe 24 перед делфи кек
и то это рейтинг основанный на интересе пользователей,
а всяким смузиглотателям всегда нравлось поизощеренней покалупать себе эйнус, поэтому такие языки в подобных рейтингах обычно на плаву. Но по факту продакшн у него нулевой, да и не скоро появится
Аноним 27/08/21 Птн 23:20:12 2142266321
>>2120987
Где почитать про семафоры, пайпы, простым языком? Все что гуглил это либо абстрактная статья на вики, либо уже высокоуровневые реализации на с++ с абстракциями из стандартной либы.
Ну то есть я понял, что такое семафор в целом и для чего они используются в программирование, но как они работают в ОС и для чего нужны там, непонятно. Про прерывания тоже хотелось бы почитать.
Аноним 28/08/21 Суб 10:04:47 2142438322
Screenshot20210[...].jpg 259Кб, 720x1560
720x1560
Аноним 28/08/21 Суб 23:08:06 2143216323
>>2142438
Благодарю, добрчеловек
Аноним 28/08/21 Суб 23:08:15 2143217324
Неспешно ищу хорошего человека, который поможет c clang..
Нужен бакенд для PDP11. Собственно помощь нужна в написании этого бакэнда. За меня писать не надо, нужно подсказать как это сделать. Или кооперация.
Аноним 28/08/21 Суб 23:25:31 2143227325
>>2143217
>Нужен бакенд для PDP11
Ты веком не ошибся, странник?
Аноним 29/08/21 Вск 04:04:16 2143402326
пацаны, проревьюйте плиз имплементацию динамического массива
https://pastebin.com/bug8B3n5
рад любой критике
можете даже обоссать меня
Аноним 29/08/21 Вск 07:18:40 2143426327
>>2143227
Нет. Не ошибся. Вполне серьёзно. Очень логичная и простая система команд. Для изучения TableGen лучше ничего придумать невозможно.
Вопрос в силе.
Аноним 29/08/21 Вск 11:10:50 2143504328
>>2143402
Почему макросы вместо функций?
Аноним 29/08/21 Вск 12:44:58 2143587329
Аноним 30/08/21 Пнд 23:25:06 2145223330
>>2143217
Таки что, гениев тут не наблюдается? Нет богатырей, способных описать PDP11?
Аноним 30/08/21 Пнд 23:53:37 2145243331
31/08/21 Втр 00:54:05 2145269332
>>2143217
>нужна нянька
В детский сад.
Аноним 31/08/21 Втр 00:56:49 2145272333
>>2145243
Ты так решил?
Вот пожалуйста - https://pdp2011.sytse.net/wordpress/download/
Или вот - https://github.com/wfjm/w11
Живая, как видишь.

Преимущества:
1. Красивая и простая архитектура.
2. На 90-нм техпроцессе чип будет размером с блоху.
3. Батарейки от наручных часов хватит на год работы.
4. Идеальная архитектура для интернета вещей.
5. Красивая и простая система команд, чьи идеи не были подхвачены индустрией.
6. Оказал огромное влияние на язык Си.

Ничего лучше не придумаешь, чтобы научиться писать Backend для llvm.

Аноним 31/08/21 Втр 01:49:34 2145322334
>>2145272
>Ничего лучше не придумаешь, чтобы научиться писать Backend для llvm.
Ну так учись, нам то это говно зачем?
Аноним 31/08/21 Втр 09:17:31 2145443335
Аноним 31/08/21 Втр 15:49:36 2145774336
>>2145322
>нам
Кому "нам"? Ты за себя научись говорить.
Аноним 31/08/21 Втр 16:25:05 2145795337
>>2145774
>Кому "нам
Всем адекватам
Аноним 31/08/21 Втр 17:26:23 2145871338
>>2145795
>Всем
Ты не станешь человеком, пока не отучишься говорить за всех.
Аноним 31/08/21 Втр 19:04:48 2145936339
Аноним 01/09/21 Срд 00:02:24 2146234340
>>2143217
>Нужен бакенд для PDP11
>>2145223
>Нет богатырей, способных описать PDP11?
Как бы взять и открыть таблицу команд и написать по ней какую-нибудь фигню ничего не стоит, а вот разобраться с llvm...
Теоретически это было бы интересно, но я не программист и помимо этого у меня есть другие занятия.

>>2145272
Все преимущества ни о чем.
>1. Красивая и простая архитектура.
Фигня, можно еще проще.
>2. На 90-нм техпроцессе чип будет размером с блоху.
На всякой простой фигне в любом случае память занимает большую часть площади. А на совсем простой еще и умножитель весьма большой по сравнению с остальным.
>3. Батарейки от наручных часов хватит на год работы.
Нет. Берем MSP430G2203IPW20 в качестве примера наследника PDP-11. Ток потребления без учета токов портов ввода/вывода заявлен 230 µA на 1 MHz. Допустим тактовая частота будет 1 МГц (это при максимальной 16 МГц). Допустим батарейка CR2032 с емкостью 200 мАч, тогда батарейки хватит на 200/(24*0,23)=36 дней. Ну а если использовать режимы пониженного потребления, то от системы команд мало что будет зависеть.
>4. Идеальная архитектура для интернета вещей.
Не нужно. Да и сомнительно про идеальность.
>5. Красивая и простая система команд, чьи идеи не были подхвачены индустрией.
А мне не нравится, в FPGA оно как-то не очень, особенно учитывая возможности блочной памяти.
Аноним 01/09/21 Срд 01:31:59 2146274341
>>2146234
>а вот разобраться с llvm...
Вот та же беда. Дожить до пенсии и сесть за llvm.
Вижу тебе не интересна PDP-11, но интересна llvm.
Давай вместе разбираться?

>>1. Красивая и простая архитектура.
>Фигня, можно еще проще.
И красивее можно.

> На всякой простой фигне в любом случае память занимает большую часть площади.
Он 16-битный. Сколько мм2 64 Кб статической памяти займёт?

>Допустим тактовая частота будет 1 МГц (это при максимальной 16 МГц)
Допустим 16 МГц. Но с оборванным клоком, подключаемым по необходимости. И картина резко меняется.
Аноним 01/09/21 Срд 08:02:27 2146394342
.png 1199Кб, 994x785
994x785
>>2146274
>64 Кб статической памяти займёт?
Очевидно что зависит от технологии, но однозначно больше чем "ядро" у простенького микроконтроллера. Вот например внутренности простенького микроконтроллера, у которого всего лишь 256 байт памяти. Логично ожидать что при той же технологии 64 кб займут в 256 раз больше площади, что очевидно будет больше всего остального.

>Но с оборванным клоком, подключаемым по необходимости. И картина резко меняется.
И в таком случае, если не учитывать потребление в активном режиме (допустим его доля мала по сравнению с остальным), потребление в режиме "сна" толком не зависит от системы команд. В режиме standby у MSP430G2203IPW20 заявлено 0.5 μA, но нужно еще учесть потребление периферии. Так вот если микроконтроллер "бодрствует" меньше 0.1% времени, то потребление в активном режиме будет явно меньше остальных факторов и система команд тут не при чем.
Ну и у MSP430 показатель 230 µA/MHz не выдающийся, например у серии EFM32TG заявлено 150 μA/MHz, а это уже простенький ARM.
Аноним 01/09/21 Срд 13:04:48 2146715343
>>2146234
>>Батарейки от наручных часов хватит на год работы.
У меня были часы наручные, которые работали 2 года на одной тоненькой литиевой батарейке. Поэтому я тоже очень усомнился в этом утверждении.
Аноним 01/09/21 Срд 19:31:10 2147187344
>>2146394
>>64 Кб статической памяти займёт?
>Очевидно что зависит от технологии, но однозначно больше чем "ядро" у простенького микроконтроллера.
Не я начал эту войну. Пришось рыться в интернетах, дабы найти площадь 64 килобайта ОЗУ.

180 нм - https://www.ijert.org/research/sram-memory-layout-design-in-180nm-technology-IJERTV4IS080677.pdf

90 нм - https://sciendo.com/downloadpdf/journals/cjece/12/1/article-p29.pdf (но без усилителей и без декодера адреса)

https://www.citefactor.org/journal/pdf/Design-and-Analysis-of-8x8-Static-RAM.pdf



Аноним 01/09/21 Срд 20:31:57 2147265345
>>2146715
Дело не в том что хватит или нет. Как раз вероятно что хватит, только не благодаря системе команд, а из-за режимов пониженного потребления. Недостаточно просто "оборвать клок", нужно еще и включить его по внешнему сигналу, а в промежутке между этим время должно считаться каким-то счетчиком. В часах один только тактовый генератор вероятно будет потреблять больше "процессора", а еще в нормальных часах тактовый генератор должен быть не просто так, а с термокомпенсацией. В свою очередь термокомпенсация это не просто так, там и кварц специальный и отдельно отобранный и сама схема результат отдельного труда.
Для примера вот генератор JSO15B1TR потребляет 1.2 мкА, что уже больше чем потребляет MSP430 в режиме standby. Скажешь это я не тот генератор притащил, а попробуй найти с меньшим потреблением. Впрочем, этого уже хватит на несколько лет работы часов на MSP430, но вовсе не благодаря системе команд. Таким образом, сказки про высокую энергоэффективность системы команд PDP-11 это чушь, оно тут не при чем.
Остальные утверждения про PDP-11 тоже мимо, только о субъективной красоте системы команд не оспоришь, так как у всех разные вкусы.

>>2147187
И чем тебе та моя картинка не угодила? По моему вполне доказывает мое утверждение. И я писал только о том, что площадь 64 кБ статической памяти намного больше площади "ядра" простенького микроконтроллера/процессора. Как статьи, которые ты притащил, доказывают или опровергают это утверждение? Никак.
Ладно, тогда можно рассудить иначе. Простейший триггер требует уже два транзистора, а реально 6 транзисторов на бит по твоим ссылкам, соответственно 64 кБ памяти потребует явно больше 64к×8×6=3 млн. транзисторов. Сколько транзисторов займет сам PDP-11 без всего "лишнего"? В 8080 - 4758 транзисторов, в 6502 - 3510 транзисторов, в советском клоне PDP-11 К1801ВМ1 - 16646 транзисторов, если не врут. А 64 кБ памяти потребует в 200 раз больше транзисторов чем "ядро" PDP-11. Может в памяти оно упаковано лучше, не в 200 раз же "ядро" будет "рыхлее".
Аноним 01/09/21 Срд 20:33:41 2147269346
>>2147265
>64 кБ памяти
На всякий случай уточню что статической памяти, тем более ты сам первый написал о статической памяти.
Аноним 02/09/21 Чтв 01:17:36 2147593347
>>2147265
Насчёт картинки. С тем, что статическая память занимает больше ядра процессора, я не спорил. Я лишь утверждал что техпроцессе 90 нм всё это поместится на чипе, размеров с блоху. Условно 1-2 мм2 достаточно для простого чипа.

Конкретно за PDP-11 - двухадресная система команд, интересные режимы адресации, автоинкремент/автодекрмемент.
Оно конечно дико для любителей ARM.

Ладно, спорить дальше не вижу смысла. MSP 430 довольно близко к PDP-11, пойду изучать TableGen для него.

Кстати, ты чем занимаешься? Признался что не программист.


Аноним 02/09/21 Чтв 08:10:13 2147646348
>>2147593
>С тем, что статическая память занимает больше ядра процессора, я не спорил. Я лишь утверждал что техпроцессе 90 нм всё это поместится на чипе, размеров с блоху. Условно 1-2 мм2 достаточно для простого чипа.
Вот. PDP-11 тут не при чем, любой простенький процессор вместе с памятью займет примерно так же, даже 32-х разрядный.

>Оно конечно дико для любителей ARM.
Им оно без разницы, они не трогают ассемблер. Если речь про микроконтроллеры, а PDP-11 тянет только на микроконтроллер, то можно любить ARM за наличие на уровне ядра JTAG+SWD (хватит одного программатора на все армы), контроллера прерываний, а также MPU и системного таймера (а это упрощает дело с операционными системами). Ну и еще много их, можно выбрать наиболее подходящий к задаче.

>Кстати, ты чем занимаешься?
Какой-то ерундой в одном из московских НИИ. По большей части занимаюсь схемотехникой.
Аноним 04/09/21 Суб 14:38:10 2149927349
Вопрос, вероятно, больше к линуксоидам, но всё же.

Нужно работать через pty-tty пару псевдотерминалов. Предполагается, что клиент может когда угодно отключиться и подключиться.

Пару создал, имя/дескрипторы получил. Дальше жду через select поступления данных на входе мастера. Проблема в том, что если клиент подключится и затем отключится от созданного ttys'а, то select начнёт мгновенно выходит (возвращает >0), но при этом fd мастера в fd_set'е выставлен не будет. В итоге 100% нагрузка на процессор пока клиент не подключится назад.
То есть, пока никто не подключался он ждать может, а после одного раза что-то там у него ломается.

При этом если я в питоне сделаю то же самое — там всё работает хорошо, select как порядочный джентельмен-таки ждёт данных.
Заметил, наконец, что питоновский os.openpty() вовращает два дескриптора — и мастера, и слейва. Попробовал сделать то же самое в C и да, селект тоже стал спокойно ждать.

Код в питоне такой — https://ideone.com/JnYHTW , всё работает "хорошо"
И вот на C — https://ideone.com/iISYn1 без строки 15 будут проявлятся описанные мной проблемы. С ней, вроде, работает, но не может ли это что-то испортить, данные вдруг куда-то не туда "попадут"? Понятное дело, что из slave_fd я читать никогда не буду, но мало ли?
Плюс, хранить же его где-то ещё надо, чтобы закрыть потом. Или можно забить и, закрывая мастер, слейв сам закроется тоже?
Аноним 04/09/21 Суб 14:47:30 2149941350
>>2149927
>Или можно забить и, закрывая мастер, слейв сам закроется тоже?
Не, проверил, вроде ничего само не закрывается.
>m_fd = openpt() // 3
>s_fd = open(ptsname(m_fd)) // 4
>close(m_fd)
>m_fd = openpt() // 3
>m2_fd = openpt() // 5
Аноним 04/09/21 Суб 18:47:36 2150132351
Аноним 04/09/21 Суб 23:41:21 2150349352
Сап, аноны. Учусь на 2 курсе уника, в этом семе надо писать курсовую на C. Я вообще не знаю, какие есть возможности у этого языка. Поэтому хочу попросить помощи в выборе темы от просвещённых анонов. Заранее спасибо.
Аноним 05/09/21 Вск 07:48:49 2150452353
Аноним 05/09/21 Вск 11:32:55 2150520354
>>2150349
>Я вообще не знаю, какие есть возможности у этого языка.
Так узнай. Ты же учишься, вот и учись.
Аноним 05/09/21 Вск 12:37:11 2150583355
>>2150349
>Я вообще не знаю, какие есть возможности у этого языка.
The C programming Language By Brian W. Kernighan and Dennis M. Ritchie.
Аноним 05/09/21 Вск 14:43:28 2150657356
>>2150349
>Я вообще не знаю, какие есть возможности у этого языка.
Никаких. Си - мультиплатформенный язык. Такм образом, возможности есть у конкретных платформ. Берешь платформу и изучаешь её возможности.
Аноним 06/09/21 Пнд 11:09:56 2151339357
Как сделать
if (числа != числа с 1 по 10)?
Чтоб программа сравнивала число с рядом чисел 1-10 и если не совпадает с числами с 1 по 10 выполняло это самое if?
Искал в интернетах, но мне предлагает только распечатать числа с 1-10, но мне нужно лишь записать коротко набор чисел с 1 по 10 для условия.
Аноним 06/09/21 Пнд 12:48:40 2151446358
>>2151339
if (число >= 1 && число <= 10)
Аноним 06/09/21 Пнд 14:23:36 2151512359
>>2151446
Спасибо, твой вариант чутка логичнее моего изначального.
Но какого-то более короткого варианта указать набор чисел с 1 до 10 по типу 1->10 нету?
Аноним 06/09/21 Пнд 14:57:50 2151540360
>>2151512
Нет, такое только в питоне встроенное видел.
Аноним 06/09/21 Пнд 17:12:59 2151689361
Аноним 07/09/21 Втр 01:07:51 2151984362
>>2151339
>>2151446
>>2151512
>>2151540

> if (число >= 1 && число <= 10)
Это варождается в 4 (ЧЕТЫРЕ!!!) машинных инструкции!!! Это мало, никакме Пайтоны никогда не смогут это повторить.

>Но какого-то более короткого варианта указать набор чисел с 1 до 10 по типу 1->10 нету?

if( ((unsigned int) (i-1)) > 9 )

На х86 это три машинных инструкции, но работать будет работать быстрее, потому что один бранч вместо двух, а не потому что на одну инструкцию меньше

Если i изначально беззнаковое, то приводить к беззнаковому не нужно, если знаковое - то обязательно, иначе компилятор не поймёт чего от него хочешь.

Эх, детишки, ничего хорошего из вас не выйдет, если вы основ не понимаете. И да, я не проверял с компилятором - если ошибся, то сс компилятором в руках бы стразу это увидел и поправил.



Аноним 07/09/21 Втр 01:24:41 2151986363
Hp35Sjy-reM.jpg 30Кб, 327x489
327x489
Аноним 07/09/21 Втр 09:52:20 2152048364
>>2151986
>указатель на число и массив - суть одно и то же
>массив указателей - массив массивов
>т.е. двумерный массив
>т.е. двумерный массив
Пиздабольство. int array[][] и int* array[] - разные вещи. Ведут себя схоже, но компилятор их по-разному рассматривает.
Аноним 07/09/21 Втр 10:48:08 2152070365
>>2151984
>if( ((unsigned int) (i-1)) > 9 )

тут наверное инверсия надо, чувак же просит от 1-10 а не за пределами.
Аноним 07/09/21 Втр 10:51:15 2152075366
имеет ли смысл K&R читать?
это же как я понял старье пиздец
Аноним 07/09/21 Втр 10:54:24 2152081367
>>2152075
Си тоже старье пиздец.
Аноним 07/09/21 Втр 12:44:45 2152168368
>>2152081
си хоть и старый но новые сандарты появляются, хоть и редко
а эта книга вообще про самый первый стандарт
Аноним 07/09/21 Втр 12:44:57 2152169369
Как же заебал этот ебучий си везде и всюду, почему сука нельзя писать библиотеке на с++, вот например тот ффмпег, чтобы разобраться в этом говноси апи, нужно потратить сука неделю другую непрерывного ебания себя в жопу говносишкой.

мимо С++ боярин

Алсо, раньше тоже писал на си и думал это круто, когда был молодой.
Аноним 07/09/21 Втр 13:37:11 2152213370
>>2152168
Там изменения выходят косметические, а не посоны, давайте сделаем g 14.88 для прикола.
Аноним 07/09/21 Втр 13:47:44 2152222371
>>2152213
ну могли бы уже и норм изменения добавить тогда, пидоры
такой крутой язык, но морально устарел уже
Аноним 07/09/21 Втр 13:48:35 2152224372
>>2151984
>никакме Пайтоны никогда не смогут это повторить.
М-метапрограммирование.
На любом языке можно сгенерить твои три байта, дед. Чекни litex проект https://github.com/enjoy-digital/litex где на питоне генерируют верилог.

>Ряяя неэффективно это же Пайтон!!!!! ДОЛБОЕБ!1111
Повторяю для танкистов, python - это генератор. Ты же gcc не добавляешь в каждый проект, чтобы запустить его? Вот и пайтон нужен только на компе.
А качество кода по прежнему зависит только от тебя.
Аноним 08/09/21 Срд 00:42:49 2152741373
image.png 29Кб, 872x247
872x247
>>2152224
Ты путаешь байты и машинные инструкции.
Вот когда на Пайтоне сможешь показать подобное, как на картинке, тогда приходи.
А то, что теоретически возможно, а на практике не существует, то и смысла не имеет.

> Чекни litex проект https://github.com/enjoy-digital/litex
Чекнул. Нуууууу такое. Штука чтобы скомпоновать готовые корки. Просто более высокий уровень абстракции. Ничего серьёзного он не умеет.
Аноним 08/09/21 Срд 03:49:50 2152775374
>>2152224
>python - это генератор
Гне нужно отбивать табами и обмазанный ооп говном? Нинужна
Аноним 08/09/21 Срд 10:45:21 2152875375
>>2152741
>Он чекнул! и вынес экспертное мнение
>Поясняет человеку который написал на нем несколько ip ядер, что все это несерьёзно
Ой иди нахуй. Когда уже вайти придут профессионалы и вытеснят казуалов.
Аноним 08/09/21 Срд 13:09:23 2152951376
>>2152875
> который написал на нем несколько ip ядер
Не пизди. Или тащиц пруфы.
Аноним 08/09/21 Срд 19:29:05 2153244377
>>2152951
Резко разбежался, сделал реверанс, и выложил какой-то непонятной хуйне свои наработки, чтобы не дай бог она не подумала что я пизжу.

Да ради бога, можешь думать что я пиздабол. Скатертью дорога, твой долбоебизм исправлять и еще твою пацанскую риторику слушать? Сам ебись. Квота на вежливость исчерпана, соси баранку.
Аноним 08/09/21 Срд 23:00:03 2153367378
>>2153244
Жозенько он тя даванул кста
Аноним 09/09/21 Чтв 06:24:59 2153461379
>>2153244
Тебе, пиздаболу, достаточно было показать как этот тул генерит always@(posedge i_clk or posedge i_rst) и его внутреннисти на простейшем примере, и твой оппонент сдулся бы и промолчал.

Что? Не умеет? Тогда нахуй идёшь ты.
Но ещё не поздно доказать что умеет, если умеет.
Аноним 09/09/21 Чтв 10:14:45 2153521380

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

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

>как этот тул генерит
Молча генерит, когда нужно, ведь это типичный бойлер.



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

И пусть такой опус не вызовет ни у кого подозрение, что проект годнота, которую я пытаюсь скрыть. Нет, проект говно. Не гуглить.
Аноним 09/09/21 Чтв 17:47:59 2153880381
>>2153521
Я одного не пойму - у тебя осеннее обострение или очередной непризнанный гений? Или и то, и другое?

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

Так-то есть и C-to-Verilog конверторы, а толку?
Вот тебе - https://github.com/sabbaghm/c-ll-verilog
Обрати внимание на вот это замечание:
Only combinational logic with data modeling Verilog style is supported (no registers and clock)

Ну так что там с регистрами и клоками у "твоего" litex?
Аноним 09/09/21 Чтв 18:28:20 2153901382
>>2153880
Ты просто хочешь уломать меня все тебе разжевать, раз на понт не удалось взять, чтобы потом снова "обосрать".
Соси баранку.

Ситуация сейчас такая:
Я один владею информацией (пока что).
Я представляю одну сторону. Ты и тот анон представляете вторую сторону, которая враждебна ко мне.

Таким образом ты не имеешь права что-либо у меня просить, ты и не просишь, а включаешь разводки.
Очевидно, тебе не похуй на информацию, которой я владею, хоть она и общедоступна. Вот ты и начинаешь вертеться.

Так что мой ответ прост: гугли, изучай и расскажи всему треду о прекрасном мире метапрогинга

А у меня по ходу уже теневой бан за офтоп, тред пришлось искать поиском, хотя до бамплимита далёко.


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

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

>Так-то есть и C-to-Verilog конверторы, а толку?
Мда, ты прав, прав. Я же не спорю с тобой. Я уже признал что я пиздабол.

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

Кабаны, вам придется сменить интонации чтобы получать годноту на форумах, мир меняется. Ваш гоп-стоп стиль общения уже не будет работать.И вы перестанете получать бабло, ради которого живёте.
Мозгоёбус 10/09/21 Птн 23:28:57 2154785383
кек.jpg 113Кб, 407x604
407x604
@ Заходишь в Си тред с предвкушением обсуждения кусков кода вкатышей, джоуков от видавших ram-порно олдов

@ Видишь как новый-питонский поясняет за высокоуровневость Си

@ С улыбкой глотаешь чай и листаешь дальше

@ Познавшие Си-дзен мужики дают отпор набежавшим с змеиного треда порриджам с такой мощью что выстраивают из ячеек стека лестницу к богу

@ Довольно урча пододвигаешь свой старенький Thinkpad поближе и видишь что питонисты уже собрали все абстракции с питона и стреляют ими в щиты Си воинов.

@ Пока сие снаряды летели к цели Си бойцы уже адресовали свои "ячейки памяти" прямо в змеиное дупло

А всё потому что порриджи не могут в холодное оружие а дерутся дилдаками и доказывают что дилдаки режут лучше клинка
"
Аноним 11/09/21 Суб 10:08:53 2154881384
>>2152169
Потому что охуеешь от неочевидной ебанистики в крестах.
Аноним 11/09/21 Суб 11:41:43 2154928385
Аноним 11/09/21 Суб 11:47:43 2154932386
>>2154928
Неочевидной же.
SHIT ASS(NIGGA);
Определение объекта или объявление функции?
Аноним 11/09/21 Суб 11:59:43 2154940387
>>2154932
Функции, для объекта с фигурными скобками
Мимо
Аноним 11/09/21 Суб 12:07:06 2154946388
>>2154932
Хуйню высрал.
Даже если брать этот пример, то это далеко далеко явно не решающий фактор.
Алсо, >>2154940 прав.

Аноним 11/09/21 Суб 12:28:03 2154959389
>>2154940
>Syntax:
>ClassName ObjectName;
>>2154946
Ну да, я действительно высрал код на крестах, щито поделать.
>этот прав
Лев.
>аже если брать этот пример, то это далеко далеко явно не решающий фактор
Ну был бы это единственный пример, я бы конечно согласился. Ты просил именно пример привести, ты не просил на сто страниц начинать рассказ про всё-всё-всё, это ты и сам можешь погуглить, если не можешь в кресты, а если можешь то ты ещё красочнее меня про всю эту пиздаболию расскажешь.
Аноним 11/09/21 Суб 13:05:47 2154980390
>>2154959
Так я то на крестах уже давно пишу, и то что ты привел даже за пример нельзя рассматривать.
Просто си - это реально устаревшая, небезопасная, хуита, которая должна быть заменена либо на С++ либо на раст, максимум для чего может использоваться си это объявление интерфейсов к либам, которые прямо требуют совместимости с си или импорты в другие яп ( и то это тоже не безопасно ).
Но как язык, сам по себе си - кусок говна, где даже адекватных стандартизированных контейнеров еще не завезли и не завезут.
Как вообще можно расценивать язык где ты работаешь с голой памятью, и довольно слабой типизацией, где нету дженириков, и где чтобы даже написать какой-то общий объектно-подобный код напирмер контейнер аля std::vector ты этого не можеш сделать и тебе приходится приводить типы в void* чтобы хранить как-то указатели на структуры.
Короче хуита полная.
По скорости С++ не уступает Си, а в некоторых моментах даже превосходит ее из-за лучшей оптимизации, вместо кривых васяподелок имитирующих кострукции из нормальных языков.
Аноним 11/09/21 Суб 14:16:25 2155029391
>>2154980
Я не говорил будто си это новая хуита, но кресты вообще нихуя не лучше если именно с си сравнивать, там все детские болезни сишки на месте, плюс свои.
Дальше не читал.
Аноним 11/09/21 Суб 14:17:58 2155031392
И больше у меня никаких примеров для тебя не будет, если ты как говоришь давно на крестах пишешь то либо ты понимаешь какое говно ешь, либо ты травмирован крестами так что никакими примерами с тобой не совладать. Так-то у приведённого примера есть далеко идущие последствия, о которых ты должен бы знать, но о которых я уже забесплатно рассказывать не буду.
Аноним 11/09/21 Суб 14:33:26 2155040393
>>2155029
Да ты просто С++ не знаешь вообще, раз так считаешь.
Приведи пример какие это там детские болезни из си? С++ и Си это два разных языка уже давно, которые не совместимы друг с другом.
Аноним 11/09/21 Суб 14:37:06 2155044394
>>2155040
О, это как раз вытекает из уже сказанного. Могу привести, конечно. Если приведу, ты перестанешь сопротивляться и пойдёшь нахуй?
Аноним 11/09/21 Суб 14:37:26 2155045395
>>2155031
Лол, так кресты я не говорю что кресты идеал, но по крайней мере за последние годы они сильно улучшились и работа по их улучшению постоянно ведется, в отличие от богом забытого говно си, который нахуй ни кому не нужен и лучшее, что случалось с си это появление С++.
Но сравнивать си с с++ это либо надо быть полным нубом и в том и в другом, либо полным идиотом.
Аноним 11/09/21 Суб 14:38:49 2155047396
>>2155044
Давно бы уже привел и я бы это быстро и легко опроверг, чем сидеть тут и копротивляться правде.
Аноним 11/09/21 Суб 14:40:51 2155049397
>>2155047
То есть ты не настроен обучаться. Понятно. Тогда не смею задерживать.
Аноним 11/09/21 Суб 14:44:13 2155053398
>>2155049
Ты еблан? Че за хуйню ты несешь?
Ты мне тут затираешь что си лучше с++, я спрашиваю чем, ты по факту не можешь ответить и все что от тебя я слышу это "бэ-мэ эмм кхмм эээ" вот и все. Ты просто лох, который ни си не знает, ни с++ и все чем можешь ты оперировать - это твои иллюзии основанные на чужом мнении.
Аноним 11/09/21 Суб 14:45:13 2155054399
>>2155045
Что не улучшилось как это концепт — кресты были и остаются маркетинговым буллщитом, пытающимся сидеть на двух стульях — у нас с одной стороны типа ооп, с другой стороны язык типа как для неуправляемого окружения. В итоге у нас нет инкапсуляции как в компайл- так и в рантайме, т.е. нет ооп, но для неуправляемого окружения наш язык сложен и переполнен ненужным нерабочим дерьмом. Сишный код хотя бы реально дебажить.
Можно писать на крестах как на си, используя по минимуму возможности крестов, тогда будет получаться что-то рабочее. Собственно это и делается в геймдеве, где неоднократно признавались что пишут си-стайл код, но как бы формально проект на крестах, чтобы разрабов было проще найти.
Аноним 11/09/21 Суб 14:49:37 2155056400
>>2155053
Мань, я по факту привёл тебе пример, и всё что ты нашлась высрать в ответ это "мм ну это нищитово это хуйня пример мне он не нравиться". Никто к тебе, собаке с гонором, не подряжался учить тебя всему на свете, тебя подрядились обоссать и обоссали.
Ты мне лучше расскажи, каким именно ты образом определяешь бегло глядя на код, чем именно является НИГГА, чтобы понять что именно за синтаксическое недоразумение перед тобой? Как только ты начнёшь отвечать на этот вопрос, ты выудишь ещё пачку СЛОЖНОСТЕЙ языка, и одну широко известную не пофикшенную с сишки детскую болезнь, которую уже давно победили везде кроме си- и крестоговна. Назовёшь какую — с тобой будет разговор.
Аноним 11/09/21 Суб 14:55:17 2155059401
>>2155054
Ты хоть сам понял, что сказал? Что за неуправляемое окружение? С хуяли нет инкапсуляции? Ты о чем? Что тебе мешает дебажить с++ код?

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

>Собственно это и делается в геймдеве, где неоднократно признавались что пишут си-стайл код, но как бы формально проект на крестах, чтобы разрабов было проще найти
Лол, ты хоть раз открывал исходники анрила?

>>2155056
Ты че несешь, шизло? Что ты по факту привел? Нихуя. Ты нулина не знающая ни си ни с++, лучше нахуй съеби от сюда учить уроки или чем ты там занимаешься, в пятерочке кассиром работаешь и мечтаешь о вкате в айти? Это тебя тут я обоссал, недоносок сопливый.

>НИГГА
Ясно, и этому школьнику я еще что-то отвечаю, просто нахуй послан, тиктокерский выблядок.
Аноним 11/09/21 Суб 15:01:01 2155064402
>>2155059
Да, я понял, что сказал. А ты, судя по всему — нихуя. Ещё раз, для терминальных дегенератов — я не буду бесплатно объяснять почему 2+2 это четыре, а не пять.
>огда будет точно такое же говно аля си с классами.
Понятное дело, но это будет работать, а "по новым стандартам" превратится в помойное легаси ещё до того, как будет дописано.
>Лол, ты хоть раз открывал исходники анрила?
Нет, и что бы мне это дало? Ах да, в мире же нет ничего, кроме одобренного лично тобой.
Дальше уже вообще какое-то каканье ртом, не на что отвечать, научись мысли оформлять в предложения.
Аноним 11/09/21 Суб 15:09:15 2155070403
>>2155064
>Да, я понял, что сказал.
Конечно, твой делирий ясен только тебе.

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

>Понятное дело, но это будет работать, а "по новым стандартам" превратится в помойное легаси ещё до того, как будет дописано.
Хуйню не неси, урод интеллектуальный.

>Нет, и что бы мне это дало? Ах да, в мире же нет ничего, кроме одобренного лично тобой.
Дальше уже вообще какое-то каканье ртом, не на что отвечать, научись мысли оформлять в предложения.
Ставит под сомнение всемирно признанный топовый игровой движок на острие технологий.
Конечно, ты не читал, тебе бы это нихуя не дало, потому что ты бы нихуя не понял, потому что ты нулина ебаная, которую я тут обоссал с ног до головы и лучше бы тебе перестать мне отвечать во избежание дальнейших унижений и траты моего времени на бессмысленные разговоры с анскильным дауном не знающим хоть малейшей матчасти того, о чем он спорит.
Аноним 11/09/21 Суб 15:49:07 2155116404
>>2155070
Ага, уже читаю, чекай.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
Аноним 11/09/21 Суб 15:53:13 2155120405
>>2155059
> С хуяли нет инкапсуляции?
Когда ты меняешь код в приватном члене класса, приводит ли это к необходимости перекомпиляции всех, кто этот класс использует, ответ либо да либо нет.
Аноним 11/09/21 Суб 16:55:12 2155183406
>>2155116
Ты схуяли, дух анскильный, со мной в таком тоне разговариваешь? Это ты там за монитором такой смелый? Попробуй ебани что-нибудь подобное на реальном собесе по с++, если тебя оттуда ссаными тряпками сразу не прогонят, хотя бы посмеются. Хотя ты даже первоначальный отбор не пройдешь, чтобы тебя туда вызвали...

Ладно, я с тобой разговор уже закончил и тем более не буду отвечать на твои жалкие тупорылые примеры из учебников уровня beginner по с++98, тем более которые уже потеряли актуальность лет 10 назад.

Долбоеб, пойми, что си язык которому уже хуева туча лет, который создавался в другие времена, когда твой дед за пару килобайт памяти в жопу давал, и что тогда были совершенно другие возможности и требования да и языки особо не умели проектировать и это было реально лучше альтернативой, чем ебашить на фортране или ассемблере, с тех пор времена изменились и те ебучие метода и конструкции, что были в си уже сейчас в современном мире не нужны ни в какой сфере, все пытаются избавиться от си, потому что понимают что это устаревшее очень небезопасное говно, на котором стабильнй софт сделать довольно трудно. Даже в ядро линукс уже сейчас раст внедряют. Никто из адекватных людей не считает си пиздатым языком. Единственный верный шаг по искоренению этого говна из мира разработки по, был создание с++, который медленно из надстройки над си перерос в совершенно другой язык, из которого постепенно выкидывали этот ебучий мусор си наследия, и до сих пор продолжают этим заниматься, потому что невозможно было моментальной перейти на что-то другое, когда существует огромнейшая база кода написанного на си. Постепенно все это легаси дерьмище переписывают на нормальные языки, но лишь бы избавиться от злоебучего си. Да ты хоть открой рынок вакансий разработчика на чистом си вообще не найти, единственная работа оставшаяся на си это поддержание\перепиливание легаси говна на нем. Все давно уже пишется на С++, драйвера, ядра ОС, критические компоненты систем различных систем, HFT, автомобильная промышленность. Просто преимущество с++ в том что ты не платишь за то что не используешь, но в то же время имеешь скорость сравнимую с нативной к железу, такую же как на си, только код получается в разы более безопасным при условии использования концепций С++ типа RAII. Вот и все. И как бы ты не тужился, как бы ты не хотел, как бы у тебя не свербило в жопе от этого, си как был говном по современным меркам так им и останется.
Так что сейчас предлагаю тебе просто пойти нахуй и больше не возникать тут.
Аноним 11/09/21 Суб 17:16:09 2155199407
>>2155183
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
Аноним 11/09/21 Суб 17:37:57 2155222408
>>2155199
>пук от малолетнего шкета
Лол даже не читал, иди мамке своей права качай
Аноним 11/09/21 Суб 19:08:11 2155314409
>>2155222
Чё типа у меня подгореть должно от того что ты за мной повторяешь? Напротив, мне приятно видеть твою бессильную злость.
Аноним 11/09/21 Суб 19:20:16 2155330410
>>2154980
>Как вообще можно расценивать язык где ты работаешь с голой памятью, и довольно слабой типизацией, где нету дженириков, и где чтобы даже написать какой-то общий объектно-подобный код напирмер контейнер аля std::vector ты этого не можеш сделать и тебе приходится приводить типы в void* чтобы хранить как-то указатели на структуры.
>Короче хуита полная.

В голанге дженериков тоже нет, ну и что с того? Всякие поделия для клауд инфраструктуры на нем отлично заходят.
Все остальное в какой-то мере связано с тем, что Си - это доисторическая древность, его проектировали таким образом, чтобы получился язык пригодный для системного программирования и чтобы компилятор Си можно было очень быстро написать для любой архитектуры тех времен. Тогда из других языков был фортран, кобол и ассемблер, первые два для системного программирования не шибко годились, поэтому компиляторы деды писали на асме. Вот и подумай, каких усилий бы стоило им включить в язык дженерики? Ты бы еще начал жаловаться на то, что в начале 70-х деды не додумались до того, чтобы написать борроу-чекер.
В те времена на безопасность было всем тотально похуй, лишь бы работало кое-как и жрало относительно мало ресурсов, которые были на вес золота.
Аноним 11/09/21 Суб 20:02:37 2155378411
>>2155314
Омега-униженец, ты еще тут? Я думал уже ты совершил героический самовыпил и очистил этот мир от своих наивных шизоидных фантазий о языках программирования. Нет, же ты все просишь еще мочи себе лицо, снова и снова. Как только у тебя хватает терпения, выносить такое обращение к себе? Наверное ты какой-то мазохист извращенец который любит себе дергать анус и когда его макают в говно.
Пойми, ты просто тупая бездарность, которая никогда никем не станет и твой максимум это сидеть в этих тредах и кидаться чужим мнением без какого либо понимания сути, я это понял, кто ты только начал открывать свой рот и откуда стал выливаться этот бессмысленный шизойдный бред тупорылого школьника с синдромом дефицита внимания. Ты же просто больное животное, которое возможно еще и опасно для общества, я бы на месте твоих родителей вообще бы усыпил тебя, от греха подальше, чтобы не убил случаем никого, хотя ты скорее всего такое омежъе чмо, что в реальности вряд ли тебе хватает смелости даже открывать свой рот и отрывать взгляд от пола, лол.
Просто обдаю твою тупую физиономию измазанную в говне за все эти посты еще мощной струей своей мочи и пойду открою себе пива, а потом выебу свою топ тян, пока ты будешь с дрожащими руками набивать мне свой жалкий ответ, на то что тебе все равно, про свои бредовые ААА ССС БББ и прочий твой шизойдный бред который мне абсолютно не интересен.
Просто почувствуй разницу: я сеньор на высокооплачиваемой работе, а ты жалкий безработный анскил над которым я глумлюсь убивая пару мин своего свободного времени, в перерыве между важными делами. Харьк тфу на тебя, животное))


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

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

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

А вообще про голанг.

>golang
> Я только сегодня понял, что почти никто толком-то и не понимает, зачем вообще Go нужен. Если коротко, то Go нужен для того, чтобы проектировать robust software. Я не знаю, как правильно перевести это слово на русский, но это скорее всего что-то вроде «надежный». Так вот, Go сделали, потому что гуглу нужен был инструмент для написания надежного кода. На самом деле не сколько гуглу, сколько Робу Пайку, который последние две декады, как минумум, одержим идеей сделать сишку с каналами и зелеными потоками. Так получилось, что Роб Пайк попал в нормальную компашку с другими штрихами из Bell Labs, крутейшим Russ Cox, Фицпатриком и т.д. Этим ребятам несложно было убедить гугл, что им нужен новый язык и вобщем-то, бабосики они на него выбили.

> Так, это было небольшое лирическое отступление, давайте вернемся к теме. Да, зачем же все-таки гуглу был нужен новый язык? Ну, тут все понятно, давайте послушаем слова самого Роба Пайка:

> Фишка в том, что наши программисты гуглеры, а не ученые. Это обычно молодые, только выпустившиеся пацаны, которые возможно выучили Java, возможно даже C/C++ и может быть Python. Они не в состоянии понимать пробздетый язык, но мы все равно хотим, чтобы они делали хороший софт. Таким образом, мы даем им легкопонимаемый язык, к которому они быстро привыкнут.

> А теперь давайте попытаемся понять, что же он имел ввиду. Если грубо говоря, то он сказал, что в гугле работают не самые умные ребята («не способные понимать крутой язык»), так что они придумали такой язык, который просто невозможно не понять. Это на самом деле очень круто для менеджмента. Посудите: можно нанять 100 посредственных программистов, дать им в руки Go и эта армия обезьян будет генерить вам много «неплохого» и очень даже поддерживаемого кода! Go это фантастический инструмент для менеджмента, лучше не придумать: моментально загоняем всех программистов в рамки go-fmt (никто не сможет пропихнуть свой стиль форматирования), забираем у них любые абстракции сложнее интерфейса и получается такой конвеер кода, в котором developer is just another brick in the wall. По-моему, очень круто! Ну, программистам скорее всего такой расклад не очень понравится — мало кто любит быть винтиком в системе.

Аноним 11/09/21 Суб 20:16:31 2155398412
>>2154980
>Как вообще можно расценивать язык где ты работаешь с голой памятью
Самое смешное что в крестах ты точно так же работаешь с голой памятью, ровно с момента как в твоей программе появляется баг.
Всё, вася, нет тут больше твоих объектиков сраных, потому что кресты это язык для стрельбы в ногу, такой же как си, но только себя таковым в силу субъективных причин не считающий. Любой указатель в любой точке кода в любой момент позволяет взять и переписать любой участок твоей говнопрограммы, хоть всю её дерьмом залить, и ебал он в рот твои прайваты, и удачи тебе, когда ты писал объектики, но дебажишь ОПЕРАТИВНУЮ ПАМЯТЬ перемешанную с говном. Это тебе не джавы с питонами, где рантайм физически не позволит программе залезть и поменять приватный член класса, это кресты это хардкор, это не для слабых.
>где нету дженириков
А какие дженерики есть в крестах? Кривые и убогие. Они не являются кодом (но при этом они разворачиваются только во время компиляции и никогда иначе), они перекомпилируются по 100500 раз потому что в крестах, как и в си, нет возможности находить местоположение кода по его имени и т. д. и т. п.
В си, как и в крестах, есть макросы, поэтому говорить об отсутствии метапрограммирования в си просто смешно.
Аноним 11/09/21 Суб 20:16:54 2155399413
>>2155378
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
Аноним 11/09/21 Суб 20:33:21 2155415414
>>2155398
>крестах ты точно так же работаешь с голой памятью, ровно с момента как в твоей программе появляется баг.
Если ты криворукий уебок пишущий на си с классами то да, а если нормальный пацан, пишущий на с++ то нет.

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

>А какие дженерики есть в крестах?
Очень мощные, называется метапрограммирование.

>разворачиваются только во время компиляции
Да и предотвращают большинство ошибок еще на этапе компиляции. Круто же.

>они перекомпилируются по 100500 раз
Они инстанцируются один раз под каждый использованный в них тип.

>В си, как и в крестах, есть макросы
>метапрограммирования
Лол, макросы это не метапрограммирование, это текстовый препроцессор, и сравнивать их просто смешно.
И в С++ от этого говна постепенно избавляются.

>>2155399
>МАААААМ СКОЖИ ЕМУ МААААМ Я НЕ ДАУН
>ВЫБЕРУ СТРАТЕГИЮ ТУПОГО РЕФОРСА СООБЩЕНИЙ.
Аноним 11/09/21 Суб 20:36:42 2155417415
>>2155415
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
Аноним 11/09/21 Суб 20:42:18 2155429416
>>2155116
Я тут мимо проходил, но что-то странный вопрос какой-то.
>Чем является CCC, опиши алгоритм как это узнать, время пошло.
очевидно, нужно всего лишь нажать # (?\<word\>) и увидил, откуда этот CCC пришёл.
Ну, то есть, прочитать ранее идущий код, как ещё-то можно что-то узнать? Либо посмотреть, что такое BBB и что принимает на вход.
Или что ты услышать тут вообще хочешь?
Аноним 11/09/21 Суб 20:59:54 2155444417
>>2155429
На сколько я понял из его шизойдного делирия, он имеет ввиду типа чем является такое выражение: объявлением функции или инстанцированием объекта, в некоторых случаях компилятор это может не понять, чем из этих двух является такое выражение и вываливает ошибку, но ему уже десять раз тут сказали что в С++ давно уже пишут для объектов TYPE NAME{ARG} для объектов. Но этот даун видимо недавно прочитал кусок от десятилетней книжки Майерса где он разбирал такой пример и теперь козыряет своим единственным аргументом который он знает.
Аноним 11/09/21 Суб 21:38:59 2155467418
>>2155378
>Омега-униженец, ты еще тут? Я думал уже ты совершил героический самовыпил и очистил этот мир от своих наивных шизоидных фантазий о языках программирования. Нет, же ты все просишь еще мочи себе лицо, снова и снова. Как только у тебя хватает терпения, выносить такое обращение к себе? Наверное ты какой-то мазохист извращенец который любит себе дергать анус и когда его макают в говно.
>Пойми, ты просто тупая бездарность, которая никогда никем не станет и твой максимум это сидеть в этих тредах и кидаться чужим мнением без какого либо понимания сути, я это понял, кто ты только начал открывать свой рот и откуда стал выливаться этот бессмысленный шизойдный бред тупорылого школьника с синдромом дефицита внимания. Ты же просто больное животное, которое возможно еще и опасно для общества, я бы на месте твоих родителей вообще бы усыпил тебя, от греха подальше, чтобы не убил случаем никого, хотя ты скорее всего такое омежъе чмо, что в реальности вряд ли тебе хватает смелости даже открывать свой рот и отрывать взгляд от пола, лол.
>Просто обдаю твою тупую физиономию измазанную в говне за все эти посты еще мощной струей своей мочи и пойду открою себе пива, а потом выебу свою топ тян, пока ты будешь с дрожащими руками набивать мне свой жалкий ответ, на то что тебе все равно, про свои бредовые ААА ССС БББ и прочий твой шизойдный бред который мне абсолютно не интересен.
>Просто почувствуй разницу: я сеньор на высокооплачиваемой работе, а ты жалкий безработный анскил над которым я глумлюсь убивая пару мин своего свободного времени, в перерыве между важными делами. Харьк тфу на тебя, животное))


Ебать, наконец-то годнота, достойная олдов дотатреда. Схоронил.
Аноним 11/09/21 Суб 21:42:33 2155469419
>>2155467
>>2155444
>>2155429
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
Аноним 11/09/21 Суб 21:45:56 2155471420
Самый шизоидный тред из всех, которые я когда-либо видел в /pr за всю свою жизнь.
Аноним 11/09/21 Суб 23:30:22 2155559421
>>2155471
Как что-то плохое. Шизоиды как раз и меняют мир,остальные только потребляют ресурсы.
Аноним 12/09/21 Вск 02:34:11 2155609422
Не понял пример, который он привел.
При объявление функции нужно указывать тип параметра. При определение объекта нет.

объявление функции: Class foo(int n) или Class foo(int);
инициализация объекта: Class myObject(n) или Class myObject{n};

О чем речь вообще?
Аноним 12/09/21 Вск 09:15:41 2155657423
>>2155444
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
Аноним 12/09/21 Вск 09:28:44 2155658424
>>2155429
Речь о том, что ответ на этот вопрос вскрывает убогость крестов (и сишки, раз на то пошло, но сейчас речь о говнокрестах, которые в перформанс задачах сосут у си, которая в 100 раз проще а недостатков столько же, если не меньше, а в неперформанс задачах у любого динамического языка). Как узнать, чем является ССС, чтобы понять в итоге, что же за конструкция перед нами описана? Надо найти, где он объявлен. Как это выглядит в НОРМАЛЬНЫХ языках? В нормальных языках есть понятие модулей: нам нужно найти модуль, в котором определён ССС. Это либо тот же самый модуль (и тогда его надо скомпилить один раз), либо это какой-то другой модуль и ССС там объявлен как экспортный, и тогда тот модуль тоже надо скомпилить. Всё. Так это происходит в нормальных языках. Что же происходит в топовых-на-острие-прогресса крестах? Ну а в крестах у нас нет модулей, у нас есть препроцессор родом прямиком из си, который копипастит текст файлов прямо в наш компилящийся файл. Результатом этого является то, что каждый файл в нашей программе нужно скомпилировать столько раз, сколько раз он был включён в другие файлы.
Что-то подобное я хотел услышать, но блядина никогда этого не скажет, она будет жрать говно и нахваливать.
Аноним 12/09/21 Вск 09:31:07 2155659425
>>2155609
И сходу ясно, чем именно является n — типом или объектом?
Аноним 12/09/21 Вск 11:01:55 2155681426
>>2155657
>Учись в коммуникацию
У меня вышка по этой хуйне
Аноним 12/09/21 Вск 11:49:49 2155726427
old.jpg 61Кб, 512x512
512x512
>>2155658
Униженный шизофреник, ты все прододжаешь сглатывать мочу и просишь добавки?
Во-первых, ты больное животное, сначала научись формировать свои шизойдные мысли в нормальные предложения, прежде чем писать сюда что-то. Этот сумбур из маняфантазий шизофреника просто читать невозможно.
Во-вторых.
> крестах у нас нет модулей
Опять же ты сосешь, как жалкая дешевая шлюха, которую ебут таджики за пачку ролтона.
https://en.cppreference.com/w/cpp/language/modules
А все почему? Да потому, что, как я и раньше сказал, ты ничтожество не знающее ни си ни с++.

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

>которая в 100 раз проще а недостатков столько же
Ухх бляяя манюня опять выдает желаемое за действительное.

>а в неперформанс задачах у любого динамического языка
Просто орнул с этого.


Выебаная в жопу макака, перестань уже унижаться и просто заткни свой вонючий рот, полный говна, пока туда еще кто-нибудь не насрал, лол.
Аноним 12/09/21 Вск 13:22:40 2155806428
>>2155659
Да, никто не будет называть переменную int, char или Class. А если назовет, то уверен, что компилятор заорет, хотя бы варнингом, не проверял если честно, так как не встречался никогда с таким и даже мыслей не было о подобном изврате.
Аноним 12/09/21 Вск 22:32:03 2156177429
А чего вы тут срётесь с С++-шизиком? Вот когда рантайм крестовый с модулями, контейнерами и дженериками будет влезать в 10 кбайт, то тогда и поговорим с ним о необходимости Си.
Аноним 12/09/21 Вск 22:45:44 2156181430
>>2156177
Лол, мань, если ты микроконтрелер шизик, то можешь не подрубать stdlib и писать без шаблонов, всяко будет лучше чем на говноси.
Тем более
>10кб
Вспомнил времена когда твой дед в жопу за 10 килобайт давал.
Аноним 13/09/21 Пнд 00:31:16 2156237431
>>2156177
крестовая стандартная библиотека большей частью это шаблоны в хедерах, она будет занимать столько, сколько ты их нее используешь
Аноним 13/09/21 Пнд 15:51:31 2156577432
Ну и какой мудак забыл закрыть дверь в подъезд?
Проник с++ бомж чтобы погреться, завонял весь падик. Теперь сами и выгоняйте эту мразь, и проветрить не забудьте
Аноним 13/09/21 Пнд 20:40:06 2156873433
Я начинал с плюсов. Первое неудобство при переходе на си было отсутствие new и delete[], а также отсутствие горячо любимых компонентов библиотеки vcl и обвязки из борландской среды. Зато можно хватать байты голыми руками за минимальную себестоимость. )
Аноним 13/09/21 Пнд 20:44:32 2156879434
>>2156873
>отсутствие new и delete
Еще и классов нет, бидапичаль
Аноним 13/09/21 Пнд 23:54:50 2157134435
>>2156879
А точно; конструктор, деструктор... :'-(

А как там со всем этим в языке ДИ? Кстати интересно, что поначалу я допускал ошибку инициализации переменных.
int a, b;
Я считал, что создаю 2 указателя, а не 1. Однако с удивлением обнаружил только что, что в ДИ такая конструкция делает именно то, что я интуитивно предполагал ранее.

С того времени я в СИ пишу иначе.
int
a, *b;
Так логичнее. Однако такое написание можно встретить не всегда.
Аноним 13/09/21 Пнд 23:56:11 2157139436
int# a, b;
...
int #a, #b;
Аноним 14/09/21 Втр 00:17:31 2157159437
>>2156873
а че в си перекатился?
микроконтроллеры прогать начал?
Аноним 14/09/21 Втр 00:26:48 2157165438
>>2157139
>int# a, b;
Так только пориджная петушня пишет
Аноним 14/09/21 Втр 00:27:12 2157166439
>>2157159
>а че в си перекатился?
Волосы на лобке наверное выросли
Аноним 14/09/21 Втр 01:24:25 2157185440
>>2157165
а как надо?

>>2157166
хз, как по мне наоборот наверное выпали

оффтоп, книга из шапки "Си: грязные истории" не гуглится, кто вкурсе что за она, помогите найти ее
Аноним 14/09/21 Втр 01:35:46 2157187441
Аноним 14/09/21 Втр 01:49:07 2157190442
Минимализм то есть.

>>2132120
>Дишка лучше крестов, ржавого и говняшки.
У меня проект с разделяемой памятью, сигналами реального времени, возможно многопоточностью и внушительным препроцессором. Это всё поднимаемо на ДИ? Если учесть, что написаны только наброски на СИ, стоит ли переписывать всё на ДИ, попутно ещё его и изучая, и далее продолжить писать уже на нём?
Аноним 14/09/21 Втр 19:16:01 2157714443
>>2157185
Хорошим тоном является объявление поинтеров всегда на отдельной строчке.
Аноним 14/09/21 Втр 21:22:54 2157880444
>>2157714
>>2157165
Кстати об указателях. Можно ли как-нибудь в одну строку объявить статический объект и указатель на него же? Т.е. Вот это вот:
>static char buf[10] = {0}
>static char p_b = &buf;
Соединить в одну строку. Мне даже и и переменная "buf" как таковая нафиг не нужна, к объекту только по указателю обращаюсь.
Аноним 14/09/21 Втр 22:17:52 2157926445
Здравствуйте ребята. Есть тут, кто хорошо разбирается в Сишном компиляторстве? Не получается скомпилировать проект onionphone ставил mingw, cmake, cygwin на винду, пытался запустить в папках make.exe и mingw32-make.exe выходила ошибка, что файл не найден с разрешением .o и пишет что-то типа Error 2 (e=2). Пытался поставить eclipse и скомпилить разными способами в нем, но все никак не получилось. Поставил убунту, скачал на нее эклипс, mingw64, скомпилить так и не получилось в общем. В линуксе ошибка, что не видит make в PATH. Пошуршал в папках линуксовых, так и не нашел make, но если я ставил mingw то он же где-то должен быть?!
Аноним 14/09/21 Втр 22:52:39 2157949446
>>2157926
Коде блок не пробовал?
Аноним 14/09/21 Втр 22:59:12 2157954447
>>2157926
>к и не нашел make, но если я ставил mingw то он же где-то должен быть?!
Он там как mingw32-make переименуй его в make
Аноним 15/09/21 Срд 05:35:34 2158039448
>>2157954
Переименовывал. Выдает ошибку e=2.
Аноним 15/09/21 Срд 05:43:12 2158041449
>>2157949
Через саму программу нет. Пробовал в эклипсе выбирать разные компиляторы. Вечером попробую поставить кодблок и через него скомпилировать.
Аноним 15/09/21 Срд 12:20:04 2158233450
суп
двачик, я обосрался жиденько. суть: заебала вс студия, накатил clion. в нём какого то хуя не возбуждался компилятор/дебаг, я такой "ок" накатил minGW, нихуя не возбудилось ничего, я такой "ок", снёс minGW папку, снёс слион, переустановил слион, и... снова нихуя. докучи накатил кодблокс, но он тоже не возбуждается, типа мингв не обнаружен. мингв снизу справа выкидывает окошко с ошибкой, типа "файлы не найдены"( логично, лол, папку то я снёс для переустановки). в итоге что я имею? мёртвый кодблокс, мёртвый силион, фантомный минГВ (в PATH его нет, но он каким то раком выкидывает мне ехидное окошко ошибки). что я делаю не так помимо моего существования и как это исправить. ось вин10
Аноним 15/09/21 Срд 12:34:14 2158237451
>>2158233
так. я обосрался в квадрате. ошибку выдаёт кодблокс, что не найден компилятор.
Аноним 15/09/21 Срд 12:44:50 2158246452
>>2158233
> как это исправить
1. Накатить ЖМУ/Пинус
2. Минимально освоить пакетный менеджер, vim, make и git
3. Даже не притрагиваться к отладчику первый год
Аноним 15/09/21 Срд 13:19:00 2158274453
>>2158246
линукс поставить не могу, по причине собственной никчёмности, разумеется (нет, это никак не связано с ПО для работы, я просто днище, ага).
что такое вим, мейк, пакетный менеджер и гит первый раз слышу (нет)
отладчик мне и не нужен, по крайней мере в с/с++, ничего что требует отладки я на этих языках не пишу.
а знаешь что мне действительно нужно? понять что я блять наебнул в своём компе, что у меня не работает ранее работавший кодблокс хотя бы.
Аноним 15/09/21 Срд 13:33:24 2158290454
>>2158274
Так. я принял душ и пофиксил кодблокс. кажется не спать два дня было плохой идеей и я немного разнервничался. да и с мингв я разобрался. пожалуй пойду посплю, вопросов больше нет.
Аноним 15/09/21 Срд 18:38:47 2158563455
>>2158290
Ты ещё поспи - и Линукс поставишь.
Аноним 15/09/21 Срд 19:52:57 2158606456
16175598119650.png 10Кб, 960x104
960x104
Я уже не понимаю че надо делать. Пробовал через кодблокс, визуал студию поставил посмотреть может она что-нибудь сделает, пздц какой-то неделю не могу скомпилить проект.
Аноним 15/09/21 Срд 20:25:04 2158623457
>>2158606
Анонче, тебе уже посоветовали годноту в этом посте >>2158246.
Не ленись, попердолься пару дней и все у тебя наладится. По личному опыту скажу, что после линукса на окнах кодить не возможно.
Аноним 15/09/21 Срд 20:27:36 2158624458
16175598119650.png 4Кб, 1288x132
1288x132
>>2158606
Через кодблокс такая ошибка кстати, и что очень странно один файл с разрешением .h не находил в проекте хотя он там был пришлось тупо копипастнуть код вместо инклуда, но от ошибке в прикрепленной пикче уйти не получается.
Аноним 15/09/21 Срд 20:33:33 2158630459
>>2158623
Все бы ничего, но проект не мой и собран на мейкфайлах, мне лишь его скомпилировать нужно и достать от туда экзешники для своего диплома в уник. Но я все равно уже и линукс поставил и на нем попердолиться успел так ничего и не получив.
Аноним 15/09/21 Срд 21:05:13 2158643460
>>2158630
>мне лишь его скомпилировать нужно и достать от туда экзешники для своего диплома в уник.
Могу помочь, если исходники дашь.
Аноним 15/09/21 Срд 21:11:53 2158644461
Аноним 15/09/21 Срд 21:20:42 2158647462
>>2158644
Тебе весь проект компилировать или только libcodecs?
Аноним 15/09/21 Срд 21:22:21 2158649463
Аноним 15/09/21 Срд 22:08:09 2158674464
Аноним 15/09/21 Срд 22:17:08 2158677465
>>2158674
Ну впринципе да, спасибо большое анон!
Аноним 15/09/21 Срд 22:21:00 2158678466
>>2158677
Не за что. А что за тема у диплома, если не секрет?
Аноним 15/09/21 Срд 22:26:04 2158680467
>>2158678
Не секрет. Исследование методов передачи речи при наличии ошибок в канале связи. По сути хотел собрать .bat файлы которые вызывают экзешники кодеков и делают разные манипуляции с ними. Сжатие, перевод в блокбитовое состояние, добавление ошибки или без нее и потом разжатие. Все это на разных скоростях нужно проделать. Составить объективные и субъектинвные оценки, ну и быстроту каждого кодека оценить. Желательно было сделать это на распберри, чтобы скорость точнее определить, но мне бы пока что хотя бы на винде это все собрать.
Аноним 16/09/21 Чтв 04:26:03 2158810468
Может ли что-то пойти не так, если я в юнионе буду иметь только uint атрибут, но запишу туда число со знаком (чтобы и прочитать потом назад со знаком тоже)?
Или всё же лучше иметь два и в них писать в зависимости от типа переменной?

Вот примерно так: https://ideone.com/S3PttS
Можно ли иметь лишь data2_t (проще/меньше писать, и вроде работает), или строго лучше только data1_t? Не очень в курсе, как именно пройдёт конвертация переменной из возможно int32_t в uint64_t, наверняка же может знаковый бит где-то пропасть? Или будет int32_t -> int64_t -> uint64_t? Как-то спецификация это оговаривает?
Аноним 16/09/21 Чтв 11:44:00 2158949469
С AVR можно до вас доебаться? Или лучше пойти поискать ардуинщиков?
Аноним 16/09/21 Чтв 11:48:18 2158954470
Где еще этих ардуинщиков искать, вот в чем вопрос.
Аноним 16/09/21 Чтв 17:24:28 2159288471
>>2158810

ну во втором варианте тебе вообще не нужен юнион, если по правильному то почему бы, вот так не сделать:
https://ideone.com/2P6QAk

а так самому интересно, нет ли ub в касте отрицательного инта к беззнаковому?
Аноним 16/09/21 Чтв 17:53:15 2159310472
>>2159288
Я, очевидно, просто упростил и убрал все другие элементы юниона, чтобы лишним не засорять. Там как struct'ы, так и без них, поэтому сделать как в твоём коде не получится.

Просто уж очень не хочется фактически дублировать все комбинации для signed и unsigned.

Вроде все возможные переводы туда-сюда работают, как и при передаче в функции — https://ideone.com/3ME1uF, так что может и норм?

запускаться это всё будет, если что, на stm32
Аноним 16/09/21 Чтв 18:45:02 2159343473
>>2158949
>>2158954
У них, вроде бы, тред в /ra/ есть, посмотри там.
Если не найдешь, то в /hw/ зайди
Аноним 16/09/21 Чтв 19:38:34 2159390474
>>2159343
В радио уже пролистал, не нашел. Пойду в хард.
Аноним 16/09/21 Чтв 20:03:35 2159408475
>>2159390
Значит умер, раньше там всегда был. Можешь у СТМщиков спросить, всяко ближе, чем тут. Если только у тебя не по, собственно, коду вопросы.
Аноним 16/09/21 Чтв 21:45:29 2159465476
Первый раз воспользовался реаллоком... Оказалось, он плюхает, куда взбредёт; а у меня адресная арифметика. Переделал. А жаль, что нет таких флагов.

>>2159390
>В радио уже пролистал, не нашел. Пойду в хард.
https://www.linux.org.ru/tag/avr

Кстати, там на лоре можно 2 тега выставить? Иногда нужно бывает. Кто знает?
Аноним 17/09/21 Птн 04:01:31 2159620477
>>2159408
У меня-то по коду вопрос, но он про авр соответственно.

Допустим есть два микроконтроллера, нужно передать один байт данных от одного к дугому как можно быстрее.
Загвоздка в том, что доступны только четыре ноги из порта а (atmega32), то есть никакие серийные протоколы (uart, spi, i2c) передачи использовать не получится. Прерывания как на передатчике, так и на приемнике тоже использовать нежелательно, так как они могут замедлить основную программу.
Как это сделать наиболее оптимально?
Аноним 17/09/21 Птн 05:34:17 2159626478
>>2159620
Освобождаешь ноги на которых uart/i2c сидит, очевидно же. Либо пишешь программную реализацию какого-нибудь протокола для свободных ног.
Аноним 17/09/21 Птн 11:09:15 2159725479
>>2159626
> Освобождаешь ноги
Эй, программист, полегче. Плата уже спаяна, ничего там освободить не получится. Задача не в этом.
> Либо пишешь программную реализацию какого-нибудь протокола для свободных ног.
Вот в этом собственно задача.
Аноним 17/09/21 Птн 15:03:29 2159850480
>>2159620
>Прерывания как на передатчике, так и на приемнике тоже использовать нежелательно, так как они могут замедлить основную программу.
Ничего быстрее правильно написанного прерывания не существует.
Из других вариантов: постоянный опрос в цикле или по таймеру. Вот это легко замедлит основную программу.

>передать один байт как можно быстрее
Очень плохая постановка вопроса. А что 2-го байта не будет? Нужна частота передачи данных и периодичность, если данные передаются не постоянно.
Но на 4 пинах ничего быстрее spi все равно нет. Делай программный SPI. Если передача в одну сторону, делай 2 битный SPI, как в sd картах.
Аноним 18/09/21 Суб 08:57:59 2160456481
Я правильно понял, что в visual studio нет встроенного компилятора для С ?
Аноним 18/09/21 Суб 10:10:40 2160488482
>>2158630
>>2158644
Лол, так тебе надо было брать gstreamer и не ебать мозги.
>>2158680
Какой пиздец. Даже дауну должно быть очевидно, что победят SILK (потому что внутри самого кодека есть FEC) и Opus (потому что там внутри SILK для речи). Остальное же окаменелое говно эпохи GSM всосет, потому что их пускают уже поверх канала с какими-нибудь турбокодами, что у тебя даже не предполагается в сетапе. Пидорашье образование в своем репертуаре.
>>2159620
> доступны только четыре ноги из порта а (atmega32)
> то есть никакие серийные протоколы (uart, spi, i2c) передачи использовать не получится
Я в упор не понимаю каким образом ты сделал такой вывод. Вешай SPI на эти четыре ноги, как >>2159850 говорит и не еби мозги.
>>2160456
RTFM, блядь: https://docs.microsoft.com/en-us/cpp/build/reference/compiler-options Там внутри cl.exe, он собирает как крестовый код, так и просто сишный.
Аноним 18/09/21 Суб 19:08:14 2160756483
>>2160488
Аахахах, про пидорашье образование даже спорить не буду. Но за gstreamer почитаю, спасибо)
Аноним 18/09/21 Суб 22:15:55 2160819484
>>2119301 (OP)
От всего тредика проголосовал за Единую Россию.
Аноним 19/09/21 Вск 20:04:43 2161491485
>>2160819
от всего тредика закинул тебе защекоинов
Аноним 19/09/21 Вск 23:38:42 2161586486
>>2161491
Спасибо, ЕР опять выиграла, ура!
Аноним 20/09/21 Пнд 18:08:39 2162147487
1005667373[1].jpg 64Кб, 486x700
486x700
блять как у вас хватает терпение читать это говно?
и это по вашему лучший учебник по си? охуеть
Аноним 20/09/21 Пнд 18:12:11 2162150488
>>2162147
Че там читать? Тоненькая книжка половину который необязатеьный аппендикс.
Аноним 20/09/21 Пнд 18:23:06 2162159489
>>2162150
ну начнём с того что программы из этой книги не компилятся. просто копируешь вставляешь и нихуя. какого хера я сам должен догадываться методом тыка почему она не рабоатет??
во вторых абсолютно не объясняются некоторые термины, опять самому догадываться. приходится гуглить, хуюглить, короче пиздец, учебный процесс превращается в непойми что, повезёт если догадаешься, что имели в виду авторы

есть вообще в природе нормальный учебник по си?
Аноним 20/09/21 Пнд 18:34:28 2162168490
Аноним 20/09/21 Пнд 18:37:06 2162171491
Си для программ[...].png 2842Кб, 300x420
300x420
>>2162147
Вот еще хороший учебник.
Аноним 20/09/21 Пнд 19:53:51 2162206492
>>2162159
Дебич бери нативный вариант, в переводе дохера опечаток.
Аноним 21/09/21 Втр 07:13:52 2162500493
>>2162206
>нативный вариант
Не, сейчас Китай развивается - пусть поищет в китайской литературе.
Аноним 21/09/21 Втр 09:16:21 2162580494
>>2155378
>А вообще про голанг.

Когда я изучал его синтаксис, он мне показалася вроде так ниЧО. Можно пописать. Но когда увидел размер исполняемых файлов, то проклял его. Вы там совсем ебанулись, делая исполняемые файлы от чьи размеры кратными десяткам мегабайт?

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

Аноним 21/09/21 Втр 19:32:25 2163218495
>>2162580
Кстати вот попробовал скомпилить пустой проект на дланг. Очень удивился, когда увидел почти 10МБ-ный бинарник. Ну чушь же. Там не было даже стандартной библиотеки. Нашёл в нете совет воспользоваться утилитой стрип для сброса прилинкованного мусора, но та всё-равно пару мегов оставляет. А проект же абсолютно пустой, абсолютно. Это дланг - прямая надстройка над си.
Аноним 21/09/21 Втр 19:35:09 2163228496
Это важно хотя бы потому, что каждый раз при компиляже генерить 10МБ - заметная задержка, насилие диска и цпу; это даже помимо просто размера как такового.
Аноним 21/09/21 Втр 19:55:27 2163254497
>>2162580
Так это ж регулириется вроде, флагами какими-то. Можно в .so собирать зависимости, а не мегаебу.
Мимокрок
Аноним 21/09/21 Втр 23:31:18 2163430498
>>2163218
Если хочешь мелкие бинарники, то используй betterC - это урезанная дишка, практически сишка.
Аноним 22/09/21 Срд 05:34:29 2163529499
>>2163430
da posholo ono; vo-1, u menya tolko 'gdc' + linux, a vo-2, eto 'dmd' + win, kotorij toge tolsto kompilit; nu budet 1MB na pustoj main() - eto toge hren' kakaya-to... ya ne mogu etogo ponyat'

tam esho eti pontovie -
import stdlib: printf
- budto addskij minimalizm sha menya gdet

AGA, shas )))
Аноним 22/09/21 Срд 10:28:57 2163647500
>>2162147
Двачую. Прата намного лучше старается разжевывать.
Аноним 22/09/21 Срд 20:17:50 2164319501
image.png 92Кб, 442x444
442x444
Автор этого шедевра здесь?
Где вообще можно почитать о таких фишечках и хаков с языком?
мимо джун
Аноним 22/09/21 Срд 20:19:13 2164322502
>>2162147
Сейчас бы классику не осилить...
Аноним 23/09/21 Чтв 00:31:08 2164537503
>>2164319
мимо даже не джун, но нихуя не понял почему это шедевр?
это же херня какая-то, нахера вообще такое делать?
Аноним 23/09/21 Чтв 00:44:40 2164540504
>>2164537
На случай отсутствия инструкции сложения в процессоре, вероятно.
Аноним 23/09/21 Чтв 01:15:28 2164549505
>>2164540
чего блядь? это вообще как?
Аноним 23/09/21 Чтв 01:37:06 2164557506
>>2164540
и почему тогда компилятор не изъебывается?
по-моему в любом стандарте си есть сложение, а значит ты либо пиздобол, либо слишком тонко чтобы я понял что это тролинг
Аноним 23/09/21 Чтв 03:00:25 2164571507
Аноним 23/09/21 Чтв 04:31:57 2164579508
>>2164537
На картинку серьезного внимания не обращайте. Лучше на вопрос ответьте, есть ли какая нибудь книга с хаками и фишечками по Си?
Аноним 23/09/21 Чтв 05:13:58 2164581509
>>2139020
>главное понятный код и sql запросы нормальные пиши, тут не нужен челик, который ебет байты
не только это. ещё важно писать безглючный код, который верно работает. производительность да - не шибко критична
Аноним 23/09/21 Чтв 10:04:46 2164662510
>>2164579
Ричард Хэзфилд, Лоуренс Кирби и др.
Искусство программирования на С.
Фундаментальные алгоритмы, структуры данных и примеры приложений.
Может эта? Сам ещё на середине Праты, эту следующей хочу смотреть.
Аноним 23/09/21 Чтв 14:01:43 2164917511
>>2164322
да пошёл ты нахуй пидарас со своей классикой, индусы на ютубе и то лучше объясняют
Аноним 23/09/21 Чтв 17:38:27 2165113512
Аноним 23/09/21 Чтв 20:20:43 2165245513
>>2164917
>да пошёл ты нахуй пидарас со своей классикой, индусы на ютубе и то лучше объясняют
А что там обьяснять-то, блядь? Сам язык очень простой.
Аноним 23/09/21 Чтв 21:23:27 2165284514
>>2165245
>Сам язык очень простой.
Сколько лет программируешь на Си?
Попробуй написать синатксический анализатор, чтобы хавал 100% Си кода и охуеешь насколько он простой.

Вот тебе полностью корректное выражение на Си:

х = (у = 3, у + 1);

Только не говори что ты это знал.
Аноним 23/09/21 Чтв 22:35:36 2165347515
Чего не перекатываете?
Аноним 24/09/21 Птн 00:19:47 2165402516
>>2165284
даже я это знал

мимо другой анон, который вкатился в си по приколу пару месяцев назад, и еще когда-то давно на си писал в унике лабы
Аноним 24/09/21 Птн 02:37:37 2165437517
>>2165284
>Попробуй написать синатксический анализатор, чтобы хавал 100% Си кода и охуеешь насколько он простой.
Сложность самого языка и сложность программирования на нем - это разные вещи. Си - один из самых простых языков, в нем почти ничего нет, кроме основных конструкций и типов. Но чтобы писать на нем что-то годное, необходимы большие компетенции.
ПЕРЕКАТ Аноним # OP 24/09/21 Птн 06:28:48 2165467518
Аноним 17/10/21 Вск 13:05:09 2185811519
>>2162168
Я читал как-то Шилдта. Он хуйню пишет безграмотную порой. Надо Страуструпа читать.
Аноним 17/10/21 Вск 13:10:11 2185815520
>>2164579
Не знаю про хаки. Есть книжечка Hacker's Delight
автора Henry S. Warren Jr.
Вот там куча разных интересных трюков
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов