Двач.hk не отвечает.
Вы видите копию треда, сохраненную 20 января 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C Propaganda.jpg1,9 Мб, 2000x2610
C Programming Language #70 /clang/ # OP 2119301 В конец треда | Веб
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь 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)
2 2119350
>>19301 (OP)
Первыйнах
3 2119366
зачем перекат?
4 2119509
>>19366
А сколько бамлимит в /пр/?
5 2119758
>>2118158 →
лол, так у сишников же очевидно вниз среднюю зарплату тянет кузьмич из оборонного нии, кодящий за банку перловки
16272887723910.png56 Кб, 553x703
6 2119868
void ((($$$))) () {{{}}}
7 2119915
>>19758
думаю кузмич из оборонного нии не участвует в подобных опросах
8 2120028
>>19509
1000 же,
нет?
9 2120033
>>20028
а хотя посмотрел в архиваче
всегда с 500 перекатывали, ну ладн, чет я ебу значит дал
10 2120041
>>19758
лол, как будто у сишников есть другая работа кроме как прогать микрики за еду в нии или прогать микрики за еду у кабанчиков
11 2120042
>>19915
Тем не менее зарплату сишникам понизил
12 2120045
>>19915
Мимолетом участвуют. А потом узнают что у них не зарплата, а посмешище - и начинают ливать со своих нии в какой-то аутсорс.

Мимосам такой путь прошел.
13 2120054
>>19301 (OP)
А я напоминаю.
Язык Си - самый низкооплачиваемый язык программирования в России.
https://habr.com/ru/article/569026/
https://hh.ru/
инбифо: вы всё врети
14 2120060
>>20054
да иди уже нахуй отсюда, шиз.
15 2120065
>>20045

>А потом узнают что у них не зарплата, а посмешище


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

>- и начинают ливать со своих нии в какой-то аутсорс.


Плез. Даже на последней галере если узнают, что к ним идет устраиваться "программист" из нии, его ливанут. Любой фирме лучше нанять новичка без опыта(самоучку или с курсов), чем переучивать недопрограммиста из нии, который (проектировал хуи) прогал микрики в нии за еду.

>в какой-то аутсорс.


Но не на Си же, а на js, javascript и прочих востребованные языках, на Си аутсорса быть не может по логике вещей.
16 2120067
>>20060
Сам иди нахуй.
Новички должны знать, что их ждет, если будут учить этот язык: работать за гроши в России и нулевая возможность релокейта в норм страну в принципе.
17 2120137
>>20067

>если будут учить этот язык


То не вырастут долбоеба и смогут без труда вкатиться в C++ или чего повыше.

>в норм страну


либераха, плез
18 2120229
>>20137
Лахта НЕ рвётся
19 2120236
>>20229
Свинка из укр зарабатывает на мивину.
Инженер-программист.png78 Кб, 1064x1006
20 2120240
>>20054

>100 000 р.


Что-то слишком многовато.
21 2120250
>>20240

>фреймворком Qt


Ебать дауны.
22 2120251
>>20236
Блядь, как же вы заебали своими свиньями. Что то говно, что это.
23 2120259
>>20137

>То не вырастут долбоеба и смогут без труда вкатиться в C++


В приниципе тоже самое что и Си, тоже копейки получают.

>или чего повыше.


Так в чем и суть. Нахуя учить Си, чтобы потом учить другой язык? Лишняя трата времени, только и всего. Почему не учить сразу же нормальный язык, чтобы потом же найти нормальную работу, прогая на нем?
А если уж для развития навыков программирования надо, то лучше тогда читать книгу SICP и решать задачки на языке Scheme, язык же си может научить разве что байтоебить указатели. Для работы байтоебом это конечно несомненно нужный навык, а для работы программистом нужны другие навыки, если что.
24 2120271
>>20067
во первых какая тебе разница что какой-то хер без специализации вдруг выберет не максимально выгоный путь? или ты из тех хитрых дядек который перенасыщает рынок джуниор-специалистов в веб-макакерстве чтобы те вообще за тарелку борща работали?

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

>В приниципе тоже самое что и Си, тоже копейки получают.


Видать, твои представления о крестовых вакансиях ограничиваются поддержкой на 99-м стандарте. Мань, в серьезных высонагруженных промышленных проектах вроде 3d-движков и операционных систем никакой нОрМаЛьНыЙ яЗыК не придет на замену, а коммитет успешно старается, чтоб никому от этого не было больно. ПоБаЙтОеБиТь же уКаЗаТеЛьЧиКи немножко полезно, чтоб научиться уважать кучу, когда имеешь дело с RAII, perfect forwarding и тому подобными вещами.

>или чего повыше


это я действительно хуйню написал, там уже нельзя провести вертикальное сравнение уровня абстракции, особенно если умеешь в темплейты. Но начинать, имхо, надо с Сишки, потому что это классика. Если тебе не доступна вся глубина значения слова классика, нет смысла продолжать.
26 2120296
>>20065
Ух, захотелось в нии устроиться. Но меня туда не возьмут
27 2120333
>>20271
Во-первых, ты мелкобуквенный, неграмотный даун и твоё мнение может не учитываться.
Во-вторых, на этом и закончим.
28 2120335
>>20281

>вроде 3d-движков и операционных систем


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

>ПоБаЙтОеБиТь же уКаЗаТеЛьЧиКи немножко полезно, чтоб научиться уважать кучу


Зачем, если во всех современных языках уже есть сборщик мусора? Давай еще на ассемблере прогать, чтобы уважать процессор.

> Но начинать, имхо, надо с Сишки, потому что это классика.


Потому что ты так сказал?
Фронтенд-девелоперу, например, Сишка точно нафиг не сдалась. И большинству программистов точно. Учить надо то, что имеет хотя бы отдаленное отношение к твоей работе и может пригодится в работе, как тому же веб-разработчику в работе пригодится сишка?
29 2120398
>>20281

>3d-движков


Их делают 2.5 конторы в мире, мань

>операционных систем


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

>в серьезных высонагруженных промышленны


В высоконагруженном бекенде отлично справляется го и даже жаба.
30 2120404
>>20067

>Новички должны знать, что их ждет, если будут учить этот язык


Их ждёт довольно лёгкое, приятное и, что немаловажно, БЫСТРОЕ обучение с использованием топовых бесплатных курсов вроде cs50, они не захлебнутся особенностями языка и не растеряют мотивацию на первых порах, им будет легко учить другой язык для работы, потому что
раз у многих языков си-подобный синтаксис
два многие языки для зарабатывания денег заточены под императивщину, как и си
>>20054
Клован, охуенный у тебя там поиск на хх, надеюсь ты в курсе что буква "С" встречается в выдаче несколько чаще, чем слово "JAVA", и отражает скорее ситуацию по всем языкам и ещё по куче вообще не программистских вакух, ведь буква "С" входит в состав слова "С++", "С#" и ещё миллиона слов, а так же широко используется в описаниях не-сишных вакансий. Тебя объём выдачи не смутил? Автор статьи на хабре видимо твой брат по разуму.
31 2120409
>>20404

> лёгкое, приятное


До первого 1 << 31.
32 2120416
>>20259
Ты просто еблан ньюфаг корчащий из себя погромиста, за плечами у тебя джаваскрипт интенсив с гикбрейнс, а в голове, в том месте где должна быть такая дисциплина как "архитектура эвм" — пустота. Это довольно легко определить — если человек утверждает, что не знает си, то это совершенно точно указывает на то, что он не знает архитектуру, потому что при изучении архитектуры сишка всегда идёт в нагрузку и чтобы не изучить её в процессе это надо избегать её осознанно. А если ты не знаешь архитектуру, и я не говорю глубоко, я говорю на уровне "прерывания и адресация памяти", то ты не вполне образован как программист. А если знаешь, то и сишку ты тоже знаешь и не прибегаешь срать в сишный тред — тебе прекрасно известны достоинства и недостатки языка и желания толсто набрасывать у тебя просто не может возникнуть, разве что по сильной пьянке.
33 2120419
>>20259
>>20416
Точнее за плечами у тебя сикп, брошенный на упражнении 1.13 (с обязательным выплёскиванием ведра помоев по этому поводу в сикпотред).
34 2120423
>>20409
Что "до первого 1 << 31"?
35 2120437
>>20423
2 ^ 31 зачастую может легко превраиться в -2 ^ 31
36 2120449
>>20437
И как именно это делает обучение программированию с использованием сишки тяжёлым и неприятным, потрудишься объяснить?
37 2120472
>>20449

>обучение программированию


Для этого черепашку в Лого придумали
38 2120474
>>20472
Черепашка в лого не даёт почувствовать студенту почувствовать контроль над машиной.
39 2120484
>>20335

>будут прогать какую-то фигню за еду первые лет 10 точно


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

>уже есть сборщик мусора


Да что ты говоришь? В системах реального времени тоже будешь срать аллоками с асинхронной очисткой памяти?

>Фронтенд-девелоперу с верхом амбиций пориджа, например, Сишка точно нафиг не сдалась


пофикисл. Я, конечно, тоже не сын маминой подруги, но и со своей мамкой уже не живу. Год проработал фронтендщиком, т.к. больше никуда брать не спешили, а укатываться с кормящей шеи торопился. Набрался полезного опыта, не зависящего от стека и направления, заебался, уволился и устроился C++ бэкендщиком. Хуй бы я новую работу потянул, если бы еще до первой работы не увлекался олдскульными материями, а слушал одногруппников с их НИНУЖНА и типичным смузихлебским имиджем, который уже на 3 курсе начинал проявляться, фубля. А мог, будь больше терпения, желания и запаса денег, таки вкатиться в разработку охуевшего 3d-движка, который не игровой, а для промышленных нужд с дохуиллионами полигонов. После собеса попросили запилить пет-прожектом какой-нибудь редактор, чтоб подтвердить понимание паттернов проектирования, но суть в том, что в плане DirectX реально инвестировали в девственников, и з/п, очевидно, отличаются от начальных фронтендерских не вниз, а вверх. Еще лично знаю пару человек, которые тоже вкатились без опыта сразу в кресты, при чем один из них практически на Си с классами пишет под что-то unix-подобное, с сетями работает, ебу, сложно короче. Ну, а второй вообще олимпиадник, криптографию какую-то хуячит за нехилые килобаксы. Такие з/п пориджам не снились.
>>20398
Тебя это тоже касается, а то съебался куда-то, знаю я вас подпездышей. Обнял.
39 2120484
>>20335

>будут прогать какую-то фигню за еду первые лет 10 точно


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

>уже есть сборщик мусора


Да что ты говоришь? В системах реального времени тоже будешь срать аллоками с асинхронной очисткой памяти?

>Фронтенд-девелоперу с верхом амбиций пориджа, например, Сишка точно нафиг не сдалась


пофикисл. Я, конечно, тоже не сын маминой подруги, но и со своей мамкой уже не живу. Год проработал фронтендщиком, т.к. больше никуда брать не спешили, а укатываться с кормящей шеи торопился. Набрался полезного опыта, не зависящего от стека и направления, заебался, уволился и устроился C++ бэкендщиком. Хуй бы я новую работу потянул, если бы еще до первой работы не увлекался олдскульными материями, а слушал одногруппников с их НИНУЖНА и типичным смузихлебским имиджем, который уже на 3 курсе начинал проявляться, фубля. А мог, будь больше терпения, желания и запаса денег, таки вкатиться в разработку охуевшего 3d-движка, который не игровой, а для промышленных нужд с дохуиллионами полигонов. После собеса попросили запилить пет-прожектом какой-нибудь редактор, чтоб подтвердить понимание паттернов проектирования, но суть в том, что в плане DirectX реально инвестировали в девственников, и з/п, очевидно, отличаются от начальных фронтендерских не вниз, а вверх. Еще лично знаю пару человек, которые тоже вкатились без опыта сразу в кресты, при чем один из них практически на Си с классами пишет под что-то unix-подобное, с сетями работает, ебу, сложно короче. Ну, а второй вообще олимпиадник, криптографию какую-то хуячит за нехилые килобаксы. Такие з/п пориджам не снились.
>>20398
Тебя это тоже касается, а то съебался куда-то, знаю я вас подпездышей. Обнял.
40 2120490
>>20335
Кстати, например, в нашей шараге олимпиадники через зав.кафедры с его связями на весьма неплохую работку пробивались, и там, как ни странно, почти всегда C++. Пару лет назад один выпускник, еще далеко моложе 30 лет, расчехлял у доски какие-то жутко пиздатые вещи, отлучившись из Германии, где скромненько делал 70000 евро в месяц не крестах.
41 2120499
>>20449

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


Да очень просто - сишка целиком состоит из вещей, на которые можно напороться. Среди них есть вещи, на которые можно напороться даже когда кажется, что все ок.
42 2120503
>>20499
Но это все старые, как мир, грабли, и новобранцу только приятно в десятитысячный раз на них наступить, исследовать причину через gdb или давно адекватно написанные книжки, крепче причаститься к мозолям дедов и ощутить себя чуть больше и сильнее. А когда напарываешься на очередную криворукость разработчиков новомодной либы, исследовать в каких версиях какая содомия водится как-то опускаются руки, ведь ты все таки не говно чистить хочешь в лучшие годы, а из автомата стрелять, пусть и по ногам.
43 2120525
>>20484

>разработку охуевшего 3d-движка, который не игровой, а для промышленных нужд с дохуиллионами полигонов



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

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



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

>пишет под что-то unix-подобное, с сетями работает


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

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



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

>одногруппников с их НИНУЖНА и типичным смузихлебским имиджем, который уже на 3 курсе начинал проявляться, фубля


В чем-то они правы. Программирование в конечном итоге превращается в обычную работу. В 35 лет ты вряд ли будешь сильно в восторге от того факта, что ты пилишь какой-то 3д движок, в то время как твой одногруппник вася делает быдлосайты на пхп. Тебе будет просто похуй. Поэтому одногруппники тоже не долбоебы - зачем себе намеренно усложнять жизнь ради нихуя? Я вот после тех самых попыток устройства в графику и сети решил бросить это дело и вкатиться в ГОвно, пока что всем +- доволен.
43 2120525
>>20484

>разработку охуевшего 3d-движка, который не игровой, а для промышленных нужд с дохуиллионами полигонов



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

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



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

>пишет под что-то unix-подобное, с сетями работает


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

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



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

>одногруппников с их НИНУЖНА и типичным смузихлебским имиджем, который уже на 3 курсе начинал проявляться, фубля


В чем-то они правы. Программирование в конечном итоге превращается в обычную работу. В 35 лет ты вряд ли будешь сильно в восторге от того факта, что ты пилишь какой-то 3д движок, в то время как твой одногруппник вася делает быдлосайты на пхп. Тебе будет просто похуй. Поэтому одногруппники тоже не долбоебы - зачем себе намеренно усложнять жизнь ради нихуя? Я вот после тех самых попыток устройства в графику и сети решил бросить это дело и вкатиться в ГОвно, пока что всем +- доволен.
44 2120544
>>20499

>Да очень просто - сишка целиком состоит из вещей, на которые можно напороться.


Как и любой язык, было бы желание.

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


А вот и приведи-ка пример, пока что только была попытка пукнуть 1 << 31, но выяснилось что во-первых никакой вкатун не двигает биты в сишке (как и никогда не пишет слова volatile, auto, goto, continue и так далее), тем более в знаковых переменных, а во-вторых и в главных, те кто двигают, прекрасно осведомлены о последствиях ведь в стандарте это прописано чёрным по белому. А ты вот дай мне недокументированную особенность сишки, на которую мог бы напороться ньюфаг.
45 2120589
Доброго времени суток, гуру программирования/байтоебства. На связи студент 4 курса МухГУ. Еще на 3 курсе я успел поработать 4 месяца на веб галере и понял, что веб - это точно не мое. Пусть говноеды сами этим занимаются. Сейчас читаю умные книги по алгоритмам, сетям и ОС. В общем, решил начать с самых низов и также неплохо поковырял ассемблер. И вот пришло время перейти к няшной Сишечке, но есть пару проблем, и именно из-за них я пришел сюда за советом. Через год мне нужно будет искать работу, поэтому какова вероятность того, что после ВУЗа я вкачусь в работу на Си? Или же мне сразу стоит учить плюсы? Два языка на должном уровне за год не смогу осилить, по этой причине, нужно выбрать что-то одно. Советы по изучению Си и напутствия также приветствуются.
46 2120608
>>20589
Кресты ты и одни за год не осилишь, туда надо жизнь положить.
47 2120616
>>20608

>Кресты ты и одни за год не осилишь, туда надо жизнь положить.


Это понятно. Я же имел ввиду освоение необходимых навыков для вката.
48 2120630
>>20544

> недокументированную особенность сишки


Про недокументированную речи не шло. Языку полвека. Все, что можно было, уже миллион раз обсосано. Но ньюфаги стандарт не читают, и свои собственные грабли еще не собрали.

> но выяснилось что во-первых никакой вкатун не двигает биты в сишке (как и никогда не пишет слова 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])); .... }.

> Как и любой язык


Нет. Хуже только жс, но разница заключается в том, что в жс для того, чтобы получить по ебалу, нужно делать страннные вещи, а в си - обычные.
49 2120632
>>20630
memcpy(array, array + 1, sizeof(array) / sizeof(array[0]) - 1)
быстрофикс
50 2120636
>>20632
лол, вот примерно об этом я и говорю. sizeof(array) - sizeof(array[0]) надо больше спать и перечитывать сообщения перед отравкой
51 2120654
>>20333
ты все еще тут?
тебя попросили съебаться нахуй, будь добр, пожалуйста.
я понимаю, что обидно такое услышать в свой адрес. но можно же уйти с достоинством, а не как истеричка, обматерив всех и хлопнув дверью
52 2120722
>>20630

>Но ньюфаги стандарт не читают


Ньюфаги и биты не двигают, об этом и сказал, читай внимательнее.

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


А вот тут-то я уже проиграл. Двигают биты значит, ньюфаги, биты двигают, а до беззнакового не дорастают? Охуенные истории конечно, вот только все вкатунские курсы что я видел разъясняют за типы данных и знаковость (но не за endianness), а сдвиги в лучшем случае упоминают.
Ещё раз — для разработки чего-то высокоуровневого сдвиги не нужны, твёрдо и чётко, они юзаются в коде который очень плотно работает с железом (не ньюфажная тема), там же где и волатайлы с инлайн ассемблером.

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


Нет. В си тоже нужно делать странные вещи, обычные делаются без проблем.

>Классика: char array[5]; int j; for (j = 0; j <= 5; j++) array[j] = 1;


Я просил привести пример — где пример? Мне нужна

>недокументированную особенность сишки, на которую мог бы напороться ньюфаг


Где она? То, что при попытке доступа в чужую память поведение неопределено — это недокументированная особенность? Да это БАЗА.
Вот ты говоришь делать надо обычные вещи, а сам делаешь странную.
53 2120807
>>20630
>>20632
>>20636

>for (j = 0; j <= 5; j++)


При чем тут Си? Во множестве языка нумерация с нуля и half-open range в циклах используется, потому что это математически удобно, блядь, а не потому что "ряяяяяя, старперы байтоебы носилуют мозг амбициозных пориджей адресами и оффсетами"

>memcpy


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

>memset


надо понимать, что приходит указатель и никакой больше инфы, как stl контейнере. Если нюфаня пытается в Си по опыту питона в школе, а не открывает K&R, земля ему пухом не только в Си, но и по жизни
54 2120842
>>20807

> При чем тут Си? Во множестве языка нумерация с нуля и half-open range в циклах используется


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

> надо понимать, что приходит указатель


Тут надо понимать, там надо понимать, везде надо понимать, о чем я и писал >>20499. Проебал строчку в книжке и уже не понимаешь. Это называется

> довольно лёгкое, приятное и, что немаловажно, БЫСТРОЕ обучение

55 2120887
>>20842
Пушто рантайм проверки хуета. Если не смотреть через призму современных умных структур данных, а учить с нуля, как средство работы с байтиками, то не так уж и много инфы придется освоить. А потом логическим продолжать осваивать штуки, которые эту работу упрощают, и вырастешь нормальным человеком. В этом прелесть bottom-up подхода, если не перегибать палку и не начинать с asm. Да, как минусы top-down в том, что больше срача в голове, так минуса bottom-up, что больше месяцев надо на чистой силе воли убить, пока не получится что-то прикольное. Но Си как раз золотая середина, потому что за пару месяцев вполне себе освоишься, а если и на то не готов, то нахуй такие на рынке не нужны, демпингуют еще сука.
56 2120987
>>20842

>А какие из этих языков после этого рандомно выбирают


Любые языки, предназначенные для работы в неуправляемой среде.
В этом и соль — ты не можешь получить контроль над железом, не неся при этом ответственности за последствия своих действий.
Остальное уже субъективно — ты топишь за то, что управляемая среда лучше, поскольку она запрещает НЕКОТОРЫЕ способы выстрелить себе в ногу (но подвозит ещё тележку других), и типа ньюфагу нельзя разрешать стрелять себе в ногу сишными способами, а надо разрешать только питоньими (почему? а хуй знает), я топлю за то, что написал ещё в самом первом посте и на что ты так ничего не возразил
1. Многие языки имеют схожий синтаксис
2. Многие языки подразумевают ту же самую парадигму в качестве основной (а именно — императивное программирование: когда мы пишем чёткий алгоритм и делаем это с помощью манипуляции стейтом)
3. Без си не вникнешь в работу интерпретатора своего любимого языка (а значит по дисциплине "языки и компиляторы" соснёшь хуй)
4. Без си сломаешь жопу в попытках изучить и воплотить некоторые структуры данных, которые требует плотной работы с памятью (хэшмепы, динамические массивы и т.д.), а значит соснёшь хуй уже по дисциплине "алгоритмы и структуры данных"
5. Соснёшь хуй по дисциплине "операционные системы" (пайпы семафоры блаблабла), стандартная либа си крепко связана с системными вызовами.
6. Соснёшь по архитектуре, конечно же, тут даже комментировать нечего.
7. Немножко соснёшь по сетям
8. Ну и ещё немного по БД и прочим таким вещам, где важна производительность.

Я ж сам таким был, раньше тоже воевал с сишкой кричал пердуны, а потом оно оказалось так что когда нужно будет конкретно начинать работать, а не борщи хлебать — везде си.
57 2121033
>>20987

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


Предатель
58 2121042
>>20887

> если не перегибать палку и не начинать с asm


Асм довольно-таки полезен. Как минимум хотя бы потому, что сишные указатели будут досконально поняты примерно через 30 секунд после прочтения что это за хуйня и пары примеров.
59 2121072
>>21042
Вообще, да. Это я слабак с Си начал и только потом поинтересовался ASM, сразу развеяв для себя кучу сишной магии.
sage 60 2121085
>>20987

> ты топишь за то, что управляемая среда лучше


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

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


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

> хэшмепы, динамические массивы


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

> пайпы семафоры блаблабла


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

> Соснёшь по архитектуре,


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

> Немножко соснёшь по сетям


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

> Ну и ещё немного по БД


Дергать query и cursor_next можно хоть из жс.

> производительность


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

> раньше тоже воевал с сишкой кричал пердуны


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

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


Везде кресты, ты хотел сказать.

>>21072
Я наоборот начинал с асма. И после этого примерно лет десять Си мне очень нравился, и я не замечал недостатков. А потом вырос.
sage 60 2121085
>>20987

> ты топишь за то, что управляемая среда лучше


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

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


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

> хэшмепы, динамические массивы


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

> пайпы семафоры блаблабла


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

> Соснёшь по архитектуре,


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

> Немножко соснёшь по сетям


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

> Ну и ещё немного по БД


Дергать query и cursor_next можно хоть из жс.

> производительность


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

> раньше тоже воевал с сишкой кричал пердуны


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

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


Везде кресты, ты хотел сказать.

>>21072
Я наоборот начинал с асма. И после этого примерно лет десять Си мне очень нравился, и я не замечал недостатков. А потом вырос.
61 2121107
>>21085

>А кстати, расскажи нам, как выстрелить себе в ногу питоньим способом?


Точно так же — забыть отступ поставить, попробовать прочитать несуществующего члена списка.

>Для новичка - да. Для того, чтобы быстро наговнякать, концентрируясь на алгоритме


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

>Писал на питоне эмулятор x86 и пару интерпретаторов.


Жопочтец, пожалуйста.

>Которые любой вменяемый язык предоставляет из коробки.


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

>никто не мешает для обучения городить это хоть на жс


Никто не мешает и большие проекты целиком на асме писать, однако никто так не делает.

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


Очень хорошо ты обучишься дисциплине "операционные системы", не изучая сию дисциплину, ага-ага.
Дальше не читал, слишком толсто пошло.
62 2121109
>>21085

>Если что, Си - мой основной язык.


А твоя основная задача — стоять на страже своего стека, чтоб ньюфаги не демпинговали тебе зп.
63 2121112
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).
sage 64 2121142
>>21109
Лол, и поэтому я в этом итт отвечаю этим самым ньюфагам с их ньюфагопроблемами, да?
65 2121223
>>21142
И поэтому ты требуешь от ньюфагов держаться подальше от си, да.
66 2121254
>>21085

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


А остальные промышленные языки - кривые куски говна, построенные на принципах, которые были известны еще в 70е и которыми пытаются решать задачи 10х-20х. Это относится и к C++, и к Java, и к Python.
sage 67 2121326
>>21223
Ньюфаг в программировании != ньюфаг в Си. И я ничего не требую. Я не рекомендую.

>>21254

> Это относится и к C++, и к Java, и к Python.


Давай сравним то, как изменился Си под требования времени с тем, как изменились джава, кресты и питон. Вот многопоточность завезли, которой никто уже не пользуется, потому что везде свои костыли. Что там еще? Два раза пытались добавить юникод, получилось не очень. Вот _Generic еще, мы его как раз в прошлом треде обсуждали, какой он удобный и нужный. Попутно проебали основную идею C takes the point of view that the programmer is always right, получился небезопасный язык, где программист не доверяет компилятору, а тот, в свою очередь, не доверяет программисту. Так и живем. Ну да и хуй с ним, в С23 доломают.
68 2121383
Подниму свой вопрос, ежжи, >>20589
Кратко: На раскачку имею всего год, но хочется выучить БАЗУ. Собственно вопрос, как обстоят дела с вакансиями Си-джуниора? Или же стоит сразу начать учить плюсы?
69 2121409
>>21383

>Или же стоит сразу начать учить плюсы?


Да
70 2121500
>>20608

> Кресты ты и одни за год не осилишь


Маньчкин, плиз.
За полгода выучил С++ по самоучителю, еще за полгода сделал пет-прджект на Qt.
Устроился джуном за 100к.
А ты и даьше сиди у мамши на шее и учи кресты всю жизнь.
71 2121503
>>21383
С вакансиями на си дела так себе: >>20054
Кроме как писать прошивки на микрики за миску риса работы на Си нет.
С++ это тоже в основном работа за еду, потому что либо таже встраиваемка, либо работа на заводе или в госпараше.
72 2121521
>>21500

>еще за полгода сделал пет-прджект на Qt


Кьют к С++ такое себе отношение имеет, реальные кресты это пиздец тащемто. QML освоил?
73 2121562
>>20054
Капртинка - чушь собачья. Нет данных по количесиву ваканчий. Что толку от говноязыка в топе с космической зарплатой, но рабочих мест - 2 штуки на всю страну.
74 2121563
>>20630

>Классика... (бла-бла)


Это сам язык, а вовсе никакая не "классика". Прямой доступ к памяти - это и есть язык Си. А ты чего хотел? Оберток с защитой, запрещающих доступ к памяти? Ты придурок или даун? Си для этого и существует - делать эти вещи, которые ты называешь "косяками". Откуда такие дебилы вообще лезут. А я скажу откуда, как раз из других языков, а точнее не языков, а сраной скриптовой параши вроде той же жс, из которой ты и вылез. Кто учится параше, навечно становится имбецилом с парашным мышлением, что ты и продемонстрировал.
75 2121784
>>21521

>Кьют к С++ такое себе отношение имеет, реальные кресты


Что в твоем понимании реальные кресты?

>QML освоил?


html и css в qt почти 1 к 1 как в вебе, ничего сложного, языки разметки.
логика вся на плюсах
76 2121790
>>21563

> Си для этого и существует - делать эти вещи, которые ты называешь "косяками".


Си существует для работы на низком уровне, а не для того, чтобы делать косяки, косяки как раз лучше не делать.
Поэтому тот же Rust лучше, так как также позволяет работать на низком уровне, но не делать косяков как в С/С++ где есть миллион способов выстрелить себе в ногу.
77 2121826
>>21784

> Что в твоем понимании реальные кресты?


STL и boost.
78 2121876
>>21790
раст получше, понял, вызываю бригаду санитаров

мимо другой анон
79 2121880
>>21826
Вакансий на Qt в два раза больше, чем вакансий на boost на hh.ru.
80 2121891
>>21880

> вакансий на boost


Чего, блядь? Ты ебанутый? Буст сейчас практически на той же позиции, что в свое время был TR1, они идут рука об руку с комитетом, это считай что часть стандартной библиотеки, только неофициально.
81 2122002
>>21563
Лол, си оперирует с абстрактной машиной фон неймана, похожей на pdp-11, что давно не соответствует реальности. Сидебилы думают, что программируют на """низком уровне""", но на самом деле большинство работы за них делает компилятор и процессор.
82 2122028
>>22002

>фон неймана


Фон хуеймана.

>Сидебилы думают


Назови альтернативу не обмазанну ООП говном
83 2122332
>>21563

>Прямой доступ к памяти - это и есть язык Си.


>сраной скриптовой параши вроде той же жс,


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

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

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

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

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

Мимо
84 2122458
>>22332
Говно твои скрипты, скрипты используют в аппаратах ивл? В управлении боеголовками? В эбу автомобиля? Нет, там Си. А скрипты это только для браузерных игр и сайтиков магазина дилдаков.
85 2122462
>>22002

> Лол, си оперирует с абстрактной машиной фон неймана


Лол ору с дебики.
Си компилируется и на машины с гарвардской ахитектурой в том числе.
sage 86 2122472
>>22028

> Назови альтернативу не обмазанну ООП говном


"Я хочу альтернативу коболу, но чтобы страдать точно так же как в коболе, современные языки не нужны" а альтернатив-то и нет

>>22462
Все правильно. Стандарт предполагает нечто подобное гарвардской архитектуре. Указатели на функции нельзя кастить в указатели на данные (точнее, кастить-то можно, но разыменовывать нельзя).
87 2122564
>>22458
Скрипты используются, чтобы все перечисленное тобой собрать, протестировать, прошить, отладить и ещё много-много всего узкоспециализированного.

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

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

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

А может ты пишешь для каждого частного случая консольную программу на си?
Нужно переименовать файлы - пишешь утилиту. И так далее?
Или вообще все готовое используешь?
1628531486948.png14 Кб, 801x158
88 2122568
>>22028
Альтернативу чтобы программировать на хуй пойми каком уровне абстракций?
>>22458
там может быть и ада
>>22462
Потому что вы используете компиляторные расширения, а не стандартный си.
>>22472
пик C99, в 6.3.2.3 о касте функций в данные ничего нет
sage 89 2122592
>>22568

> о касте функций в данные ничего нет


Да, я обосрался, можно кастить только в указатель на функцию другого типа. Но тем более. Функции и данные не пересекаются = гарвард.

> там может быть и ада


Это все редкие или очень узкоспециализированные железки. А вот баш в фотоаппарате не хочешь? И питон с луа дохуя где, причем иногда одновременно.
90 2122942
>>22002

>на """низком уровне"""


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

>В Micropython есть прямой доступ к памяти контроллера


В батниках тоже есть (думаю можно сделать), и что, дебил? Дело не в доступе (через анальные жопы), а в том, чем является сам язык. Язык Си сам по себе работает на уровне железа, на уровне прямой памяти, прямо в ней, а не имеет доступ через говняные пуповины, сам будучи парашным скриптом в виртуальной говномашине как другие языки.
92 2122947
>>22942

>Так вот, ниже Си только ассемблер. Не суцществует кроме ассемблера ничего ниже Си и даже ничего равного Си нет, только выше.


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

Потому что, повторяю для дебилов, программирование это понятие относительное. не бывает просто программирования, бывает только программирование чего-то. И вот это самое то, что ты программируешь и разделяет программистов с программированием от макак со скриптами, хороший софт, от жирной, тормозящей и разваливающейся блевотины, техников-специалистов от индусского свинобыдла с улицы, "вкатывающегося" ради моды и бабла.
94 2122951
>>22950
И в чём заключается нахождение на низком уровне конкретно, а не абстрактно и метафорично? Я тебе назвал конкретные вещи, которые делают язык низкоуровневым.
95 2122952
>>22951
В том и заключается, что не абстрактно и метафорично, а буквально, на самом деле. Скриптомакаке, у которой мышление в принципе застряло на высоком уровне, осмыслить сие будет сложно.
96 2122954
>>22952
Ну вот зачем ты жопой вертишь? Я же нормально спросил, и примеры привёл. Что такого низкоуровнего умеет си, что не умеют другие языки? Напрямую управлять кэшлайнами, может?
97 2122973
>>22954
Ну вот зачем ты жопой вертишь? Я же нормально ответил. Си находится на уровне железа - устройства, чтобы программировать это устройство. Это и есть программирование. Другие языки не такие, они висят на высоком уровне виртуальной параши и программируют эту парашу. Это не программирование, а имитация для даунов.
98 2122974
>>22973

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


Это делают все языки, компилируемые в нативный ассемблер. Таких немало.
99 2122977
>>22973
Профан детектед. Си не находится на уровне железа. На уровне железа позволяют работать ассемблерные вставки в Си. Но если ты юзаешь синтаксис Си - это уже высокоуровневое программирование.
100 2123022
>>22943

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


Это программирование на основе структур. Так бы и сказал сразу, и не горела бы твоя жопа.
А прямой доступ к памяти есть везде. Запезделся ты короче, с кем не бывает.
101 2123024
>>22950
Ну давай по частям тобою написанное.

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


Это всего лишь твое имхо, далёкое от реальности и размытое

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


Не бесконечно, а всего лишь на один уровень абстракции выше. Вместо твоих любимых структур там ассоциативные массивы, реализованные на тех же структурах. Все остальное Такое же.

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


Ассоциативный массив для тебя что?

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


Это твое субъективное отношение к людям, а не характеристика языка.
102 2123030
>>23022
>>23024
Весь букет демагогии, прямо по мануалу "Как илиоты ведут споры в интернете". Вот они, скриптомакаки. Не программисты, даже не люди, просто уличный сброд.
103 2123043
>>23030
Это про тебя скорее. Оттого что ты написал это первым, ничего не изменится. Все прекрасно видят, кто сообщает факты, а кто жонглирует агрессией.
104 2123133
ну когда уже там придем к выводу что все скриптопарашники - макаки, и пусть пиздуют с треда обсасывать свои синглпэйдж сайты на реакте и бэком на петухоне в каком-нибудь другом треде?

мимо рандомный анон, не понимающий, какого хуя влетел какой-то рандомный черт погонять что си - параша, не хочешь не пиши на нем, делов-то
105 2123278
>>22942

>Не суцществует кроме ассемблера ничего ниже Си и даже ничего равного Си нет, только выше.



С--? Forth?
106 2123340
Мертвым этот тред мне нравился куда больше. умирайте
107 2123404
>>23340
Питухонщик, уходи
108 2123422
>>22564
Имелось ввиду скриптовые языки программирования вроде жс, а не скрипты как таковые.
109 2123546
>>23422
Можно список хороших скриптов? Можно узнать, почему плохие скрипты плохие как таковые?
110 2123585
>>21790
Ой блядь, лучше бы ты не пытался оправдаться, а просто молчал бы сидел.
111 2123587
>>22002

>Сидебилы думают, что программируют на """низком уровне"""


Ведь на самом деле содержание указателей в си это не реальные адреса в памяти
112 2123590
>>22564

>Вот скажи, что makefile не скрипт. Скажи что баш


Ни то ни другое не претендует на звание ЕЗЫКА ПРАГРАМИРАВАНИЯ
113 2123593
>>22942

>Не суцществует кроме ассемблера ничего ниже Си


Форт.
114 2123596
>>22977

>вместо прямых адресов в памяти у нас переменная, которая при компиляции превратится в адрес


>ойойойой пацаны ВЫСОКИЙ УРОВЕНЬ


>>23133
Недостаточно просто не писать на си, надо постоянно поддерживать манямир, в котором си — говно.
115 2123689
Я даже рад тому что твёрдые лбы не пробить. Дауны не умеющие находить компромиссы не нужны. Пускай сидят в своей отрасли, и не лезут больше никуда. Тот случай когда все эти понятия зашквара и некошерности работают как защита от дурака. Умный взвесит и выберет что ему нужно, дурак не полезет и правильно, зачем палить быдлу годноту? Тем более доказывать что-то. Понаедут и все поломают, ну его нафиг.
116 2123721
>>23596

>>вместо прямых адресов в памяти у нас переменная, которая при компиляции превратится в адрес


А может в регистр, а может во время выполнения попадёт в кэш, нельзя точно сказать, что произойдёт. Также как нельзя сказать, вставит ли компилятор выравнивание.
>>22973
Обычно для программирования устройств на си производитель предоставляет компилятор и hal/api. Тоже самое можно было бы проделать с любым другим языком. Си использует просто потому что он требует минимальный рантайм.
Си это высокоуровневый язык, всегда им был, поэтому рассматривая его как высокоуровневый он действительно говно.
117 2123731
>>23689
Я думаю, эти люди не поймут, что это им адресовано.
118 2123783
>>23721

>Си это высокоуровневый язык


Какие же языки низкоуровневые по-твоему кроме ассемблера?
119 2123892
дебики называют си "низкоуровневым" изза высокой нативности трансляции. дебики правда забыли что такая нативность не часть штондарта, потому компелятор волен хуевертить как хочет. ну и волатилы с асм-инлайнами тоже вводят в заблуждашки
120 2123899
>>23587

>Ведь на самом деле содержание указателей в си это не реальные адреса в памяти



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

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

Так что на си не гоните, пожалуйста. Это самый низкий, самый тупой и прямой доступ к железу.
122 2123923
сори за головоеблю, я опять с тупым вопросом
чет не понял 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 аргументы. Или вообще поебать и я черезчур загоняюсь?
123 2123924
>>23923
бля сри, чет про форматирование не подумал
там указатели проебались str dst
124 2123928
>>23910
Еще одной и той же машинной команде может соответствовать несколько разных команд ассемблера (и наоборот). Это позволяет утверждать, что команды ассемблера являются вовсе не мнемоническими именами, а самыми настоящими абстракциями.
Мимо дилетант
125 2123929
>>23910

>Ассемблер тоже высокоуровневый. Вот в любом ассемблере есть циклический сдвиг через флаг переноса (ror, rol), проверка, сброс, инверсия флага в любом регистре по номеру, а в си нету.



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

>>23910

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



ну ты точно зеленый. сравниваешь ЯП с языком верификации и описания аппаратуры
126 2123933
>>23923
ptrdiff_t это чтобы кастить указатели к интам вроде. size_t безнаковый платформозависимый тип.
127 2123943
>>23933
ну пос у меня смещение
src + pos = получается указатель на подстроку где len ее длинна
ну т е эт норм что pos имеет тип ptrdiff_t

> size_t безнаковый платформозависимый


а бля, pos знаковый, мб лучше тогда туда size_t втопить? мне не надо чтобы отрицательный pos в функцию залетал
128 2123974
>>23721
А может в регистр, а может твоей матери в очко, сути дела не меняет, си это не особо навороченная надстройка над асмом.
129 2123978
>>23892
Да ты сам дебик если не осознаешь отсутствие четких критериев уровневости.
130 2123982
>>23899
И поэтому си это лисп
sage 131 2123999
>>23910

> fasm с высокоуровневыми макросами


Казалось бы, треду было уже некуда катиться, но нет!

> гораздо проще программировать


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

> И препроцессор там настоящий, а не ебаные текстовые замены из 50х годов.


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

>>23929

> каждая мнемоника взаимнооднозначно отображается в отдельный опкод со значениями


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

> и откуда црц в х86?


Интел принес, очевидно же.

>>23943

> а бля, pos знаковый, мб лучше тогда туда size_t втопить?


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

>>23933

> ptrdiff_t это чтобы кастить указатели к интам вроде


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

>>23899
Fat pointers и еще tagged pointers в AArch64 смотрят на тебя с недоумением. Указатель в Си может быть чем угодно. То, что там случайно оказалось что-то, похожее на адрес - это всего лишь совпадение.
sage 131 2123999
>>23910

> fasm с высокоуровневыми макросами


Казалось бы, треду было уже некуда катиться, но нет!

> гораздо проще программировать


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

> И препроцессор там настоящий, а не ебаные текстовые замены из 50х годов.


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

>>23929

> каждая мнемоника взаимнооднозначно отображается в отдельный опкод со значениями


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

> и откуда црц в х86?


Интел принес, очевидно же.

>>23943

> а бля, pos знаковый, мб лучше тогда туда size_t втопить?


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

>>23933

> ptrdiff_t это чтобы кастить указатели к интам вроде


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

>>23899
Fat pointers и еще tagged pointers в AArch64 смотрят на тебя с недоумением. Указатель в Си может быть чем угодно. То, что там случайно оказалось что-то, похожее на адрес - это всего лишь совпадение.
132 2124047
>>23999

> Казалось бы, треду было уже некуда катиться, но нет!


Это ты ещё не видел т.н. HLA от упоротого дида. https://en.wikipedia.org/wiki/High_Level_Assembly
Книгу вроде не переводили, так что в рунете она не так известна, а у них вполне.
133 2124144
>>24047
Лучше быть упоротым чем до конца своих дней компенсировать нищету из детства, продавая свое время жирному начальнику.
134 2124507
>>20065

>на Си аутсорса быть не может по логике вещей


Вообще есть. Либо олдовые проекты и поддержка. Либо написание прошивок для всяких устройств.
Untitled.jpg62 Кб, 1067x315
135 2124773
>>23721

>Си это высокоуровневый язык


Я несогласен.
sage 136 2124825
>>24773
Все классификации по определению ущербны. Примерно до середины 90-х Си считался языком высокого уровня, потом потихоньку мнение изменилось. Поищи старые книги, изданные в этой или прошлой стране.

>>24047

> Это ты ещё не видел


Видел. Обсуждали на всех тематических форумах в начале 2000х, когда книжка вышла. Да и Рэндел сам по себе известный дядька.
137 2124869
>>24825

>Примерно до середины 90-х Си считался языком высокого уровня, потом потихоньку мнение изменилось.


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

>а не в 90-ом


Да хоть в -90-е. Тот пиздюк просто пиздит.
Си никогда не был высокого уровня, всегда был низкого. Нужно только не пиздеть, а понимать что это значит.
Как пример, в 80-х был компьютер с бейсиком и машинными кодами. Бейсик, хоть и структурно повторял синтаксис ассемблера, имел вставки машинного кода и доступ к памяти, и всяким регистрам железа, эти фичи были отдельными спец-фичами, а сам язык бейсик был высокого уровня, потому что он абстрактный. Когда пишешь на бейсике, о железе думать не нужно, так же как на жс или питоне. А вот на Си - нужно знать железо и думать о нем, просто по дефолту необходимо, даже если ты специально не собираешься с железом взаимодействовать, всё равно нужно, иначе никак, ведь сам Си - это и есть железо.

На практике это выражается в банальном отсутствии проверок на выход из массива. В бейсике и прочих языках высокого уровня эти проверки есть, а в Си - нет, потому что в Си нет никаких массивов, как нет и переменных, ведь ты можешь спокойно из одной переменной попасть в другую, просто так, "случайно", т.е. по дизайну языка. Си даже не пытается тебя огородить, ведь в этом нет смысла когда ты сидишь голой жопой на железе.
Или возьми простое определение переменной: A=1 (в бейсике) и int a=1; (в Си). В бейсике всё просто, как и в любом языке высокого уровня - абстрактном. Концепция переменной везде одинаковая. А вот в Си - нихуя, в Си ты создаешь на стеке, а стек это не абстракция, стек существует, это железо, нужно понимать что это такое и сто ты этим делаешь в Си. Например, простой и очевидный массив из 100500 элементов, в Си будет нелегальной хуйнёй. И то, что компилятор умный и это может быть не стек, а маня-оптимизации в регистрах, ничепго не значит, необходимость понимания железа от этого не только не уходит, но скорее добавляется.
sage 139 2125126
>>25113

> Да хоть в -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 элементов, в Си будет нелегальной хуйнёй


Абсолютно нормальная практика. Например, если пишешь под десктопы. Никак не запрещено и работает.
140 2125129
в общем смотрю пример как сжимать разжимать данные с помощью zlib. https://zlib.net/zpipe.c
этот пример сжимает вроде, потом скармливаю сжатые данные на разжатие, получаю изначальную строку. норм значит

но почему я не могу распоковать файл стандартными утилитами? это не gzip?
sage 141 2125130
>>25129
У gzip еще заголовок. И gzip (в теории) может быть пожат чем-то другим.
142 2125133
>>25130
не понял
а как он тогда разжимает, если заголовка нет?
143 2125141
>>25133
Твоя программа? Он просто разжимает, что ты ей на вход подашь, даже если это не сжатые данные.
sage 144 2125146
>>25133
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

>>25141
Нет. Если на входе не будет валидного zlib-потока, оно не будет знать, чем это упаковано и пошлет тебя нахуй.
145 2125147
>>25146

>Нет. Если на входе не будет валидного zlib-потока, оно не будет знать, чем это упаковано и пошлет тебя нахуй.


Я имл в виду, что она попытается stdin разжать, подразумевая, что там сжатые данные. Как она обрабатывает ошибки я не читал.
146 2125198
>>25113

>На практике это выражается в банальном отсутствии проверок на выход из массива.


Скажи проще что есть языки для неуправляемого окружения, а есть для управляемого. Просто способ понять, где ты — задать вопрос "а что происходит, если программа пытается в рантайме сделать хуйню?" Если ответ "вылетит исключение", то ты в управляемой среде, если ответ "а хуй его знает, всё что угодно" — в неуправляемой.
Понятно что везде, где это возможно, лучше работать в управляемой среде. Где же это невозможно? Там где высокие требования к производительности заставляют рвать уровень абстракции и приблизиться к железу, либо там, где не на что ставить управляемую среду (ОС, драйвер, загрузчик, биос, прошивки для микриков)
А так со всем согласен.
147 2125202
>>25126

>В стандарте Си нет стека вообще.


Ты его не понял. Нет разницы, если ли стек в стандарте или нет, если ситуация такова, что на бумаге у тебя вроде как более высокий уровень абстракции, но на деле ты всё время видишь через него более низкий, то по факту никакой абстракции у тебя нет и ты сидишь на железе. Вот если бы в сишке не надо было бы помнить про стек, то уровень абстракции существовал бы.
148 2125399
>>25146
Где прочитать об этих форматах?
149 2125440
>>25198

>не на что ставить управляемую среду (ОС, драйвер, загрузчик, биос, прошивки для микриков)


Не совсем понятно, что значит "делать хуйню" и "не на что".
Исключения везде есть и везде их можно обработать. ,В контроллерах - прерывания, а в Винде SEH. В википедии пишут что даже свои try блоки для си под Винду есть.

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

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

На уровне функций в принципе разницы нет. На контроллере можно все проверить внутри функции и вызывать при нужде программное прерывание с обработкой исключений.
sage 150 2125466
>>25399
https://datatracker.ietf.org/doc/html/rfc1950 zlib
https://datatracker.ietf.org/doc/html/rfc1950 deflate
https://datatracker.ietf.org/doc/html/rfc1950 gzip

>>25202

> если бы в сишке не надо было бы помнить про стек


Скажи, в питоне или жс надо помнить про стек или нет?
sage 151 2125476
152 2125508

>стэк


>не стандарт



вот скажите, знатоки, если в теории конпелятор начнет запрашивать кучу для array[], или/и наоборот кидать mallocи в стэк, будет ли противоречить какому-то из стандартов?
153 2125514
>>25508
бтв слышал звон про то что alloca() попал в один из последних стандартов. если так, то это разве не "стэк в Си"?
image.png60 Кб, 1065x48
154 2125522
>>25146
хмм вроде понял,
тип 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)


заработало
sage 155 2125531
>>25508
Кучу для array[] - не противоречит, лишь бы при выходе из блока free не забывал. Маллоки на стеке невозможны принципиально, потому что время жизни объекта не должно зависеть от времени жизни стекфрейма. Даже если ты не будешь привязываться к стекфрейму и сделашь void ∗stack_malloc(size_t n) { uint8_t obj[n]; return obj; }, то оно, конечно, будет выглядеть, как будто работает, но следующий же вызов любой функции затрет все нахуй.

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

>>25514

> alloca() попал в один из последних стандартов


Нет, оно по-прежнему нестандартное. Есть только VLA, которые делают что-то похожее.
156 2125600
>>25466

>Скажи, в питоне или жс надо помнить про стек или нет?


Гораздо меньше.
157 2125637
>>25202
Хоть кто-то понял.
И помнить нужно не только о стеке, но и о памяти. Вот код:
int a=1;
int b=2;
a[1]=3;
С точки зрения языка высокого уровня это абсурд, ошибка синтаксиса, но в Си это нормальный рабочий код. А всё потому, что, повторяю: в Си нет переменных и массивов, это фальшивка лишь на вид похожая, а на самом деле это лишь сахарок голой памяти и арифметики указателей. Поэтому в Си это нормальный код, хотя выглядит как бред, потому что Си это нихуя не то, чем он кажется дауну с жаваскрипта, где типа тоже похожий синтаксис. Авотхуй.
158 2125716
Аноны, поясните за программирование микроконтроллеров. Легко ли джуну вкатываться в эту область? Есть ли в этом смысл, или сфера вымирает? Хочу заниматься программированием под фитнес-браслеты, умные холодильники и микроволновки, вот это все. Худо-бедно паять умею, программировать на С тоже (хоть и не на уровне бородатого сурового сеньора), в электронике почти не шарю, разве что знаю законы Ома и Кирхгофа, а также имею примерное понимание того, как работают диод и транзистор. У меня есть пара плат с stm32f103c8t6, которые blue pill, я подавал данные на логический анализатор через UART и I2C, принимал их через контроллер прерываний и обрабатывал эти события. Однако, я не пилил какие-либо крутые проекты, да и идей нет
159 2125735
>>20065

> постоянно учиться новому, ходить на конференции, участвовать в митапах, следить за качеством кода, соблюдать code-style принятый в фирме, делать таски в сжатые сроки


Разве в embedded-сфере не то же самое? Там тоже дохуя документации под различную периферию (команды, схемотехника) а также камни, на один stm32f103c8t6 много даташитов, считай, целых книг, которые надо осиливать. К тому же, embedded-разработчик помимо программирования (будь то С, С++, Rust, Go) должен знать физику (по крайней мере, один ее раздел - электротехнику).

> Даже на последней галере если узнают, что к ним идет устраиваться "программист" из нии, его ливанут


Даже если в "элитной" галере занимаются тупорылым формошлепством и CRUD'ами, а в сфере микроконтроллеров - наука, прогресс, космос. Из рабсиянского НИИ можно в перспективе уехать работать в SpaceX и заколачивать бабло.
160 2125750
>>25637

>Поэтому в Си это нормальный код,


Пиздабол в треде.

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

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

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

> но в Си это нормальный рабочий код


error: subscripted value is not an array, pointer, or vector
Попизди мне тут.
sage 162 2125816
>>25716

> Легко ли джуну вкатываться в эту область


Не сложнее, чем писать под десктопы на той же сишке.

>>25735

> должен знать физику


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

>>25600

> Гораздо меньше.


Ну хоть не сказал, что не нужно, уже прогресс. Единственная ситуация, когда мы вспоминаем о стеке - это когда мерзкие детали реализации лезут наружу при рекурсии. В любом языке лезут, будь то жабка или си. А в остальном сишные автоматичкские переменные от локальных переменных в других языках не отличаются совершенно ничем. И пока ты остаешься в рамках, заданных абстрактной машиной Си (== пишешь нормальный, валидный код без UB), помнить про стек не нужно.
163 2125838
>>25816

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


А если я начну пилить собственный проект? Мне ведь так или иначе придется сталкиваться с другими разделами физики, если я буду делать своего робота, например.
164 2125879
>>25531

>Кучу для array[] - не противоречит, лишь бы при выходе из блока free не забывал



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

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



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

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



ну речь об условном экзотическом компеляторе, а не костылях программиста. мне было просто интересно предусматривает ли стандарт определенную работу трансляторов со стэковыми ресурсами (регистры, селекторы) или он в общем случае он волен кидать объекты куда хочет
165 2125884
>>25879

>в таком случае деаллокации - уже задача конпелятора



сам себя пофикшу (только-только доперло). согласно стандарту деалокации - забота программиста в любом случае. а это значит попытка вызвать free() приведет к динамике стэку, что вапщет пиздец. так что стэк в Си есть, шах и мат
sage 166 2125916
>>25884

> забота программиста в любом случае


Нет, локальные переменные автоматические, и компилятор сам о них заботится. А что конкретно он будет делать: add $sp, N или free() - стандарт не регламентирует.

> это значит попытка вызвать free() приведет к динамике стэку


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

>>25879

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


Без разницы, кто это будет делать. Хотя в принципе поддержка компилятором тут не нужна. Алсо, я придумал чрезвычайно тормозной и слегка ограниченный способ делать malloc() на стеке, выделяя объекты в текущем стекфрейме, но обо мне тут и без моих ненормальных идей плохо думают.
167 2126046
>>25916
Я вот свой недоязык делаю, пытаюсь понять как раз, какие способы распределения памяти существуют и какая у них иерархия.
До этого момента у меня все адреса и переменные были статические. Но уже сил нет без объектов все делать. А объекты невозможно сделать без вычисления адресов, даже статический объект нужно на этапе компиляции куда-то разместить.
Структуры имеют фиксированный размер и их легко было считать.

Короче я к тому, что можешь рассказывать, я все читаю и анализирую, даже если не отвечаю.
168 2126078
>>25916

>локальные переменные автоматические,


посмотри логи разговора. речь об объектах, аллоцированных с помощью стандартных malloc(), которые транслятор записал, как мы допустили, в стэк. это никакие не автоматические переменные согласно стандарту. следовательно сам стандарт требует, чтобы эти ресурсы были высвобождены кодерком. и

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



речь о том, как в данном случае в твоём глобальном стэке от мэйна free() будет реализовано. если после деалокации не трогать наш объект в стэке (хуй с ним, пусть полежит), то это будет пустая функция; или маппинг стэк-фрейма (чтобы кто-то бтв, кто именно, лол? знал о доступных ресурсах); и самый худший вариант - уменьшать фрейм с релокацией других объектов.
по-моему это всё полный бред и стало быть каноны Си строго подчёркивают разницу между стэком и остальной памятью.
да, возможно речь шла об организации памяти (то есть никаких push()/pop() в Си), а не просто специфическом куске памяти. но разница есть потому я всех разгромил в этой демагогии
sage 169 2126159
>>26078
А, так ты про кучу в стеке, а не локальные переменные в куче? Что мы вообще обсуждаем, лол? Я запутался.

> как в данном случае в твоём глобальном стэке от мэйна free() будет реализовано


Как обычно кучу делают. Простейший вариант: связный список (free-list или block-list), блок помечаем как свободный, объединяем с предыдущим или следующим, если они свободны.
170 2126764
>>25440
Не понял ты меня.

>Управляемый код (англ. managed code) — термин, введённый фирмой Microsoft, для обозначения кода программы, исполняемой под «управлением» виртуальной машины .NET[1][2][3] — Common Language Runtime или Mono. При этом машинный код называется неуправляемым кодом (англ. unmanaged code).


>Слово «управляемый» (англ. managed) здесь относится к методу обмена информацией между программой и исполняющей средой. Оно означает, что в любой точке исполнения управляющая среда может приостановить исполнение и получить информацию, специфичную для текущего состояния.


Я об вот этом. "Добавить свои исключения через проверки" это не совсем то же самое, что "иметь возможность в любой момент остановить выполнение при нелегитимном поведении и показать что именно пыталась делать программа". Одно дело когда у тебя приложуха работает в виртуалке, и виртуалка всегда сможет корректно завершить падающий процесс и подробно показать, что там с ним было не так, другое — когда программа контролируется только осью, а ось максимум что сделает это скажет "сегфолт карочи ебать", и тем более когда оси вообще нет и там ты вообще один на один со своей писаниной и никто не подскажет, что же ты там такого нахуевертил от чело всё ложится.
171 2126769
>>25816

>Единственная ситуация, когда мы вспоминаем о стеке - это когда мерзкие детали реализации лезут наружу при рекурсии.


Ну в сишке у тебя дихотомия на стек и кучу, поэтому ты помнишь о нём постоянно, посколько постоянно решает вопрос "а куда это лучше положить?" В питоне про стек действительно вспоминаешь только при его переполнении, ведь там выделением памяти занимается интерпретатор/виртуалка/что-там-этим-в-питоне-занимается
172 2126863
Вопрос по 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'овский тоже до подключения клиента не пишет почему-то).

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

Собственно, можете ли что-нибудь посоветовать? Куда копать, что можно поменять ли попробовать?
ec716fa987ba1a30c986f2907fe4d6e3.jpg22 Кб, 480x360
173 2127013
Кажите а двумерный массив можно в функцию передать?
174 2127027
>>26863
lsof -i:PORT показывает что? такое ощущение что сокет не открылся
175 2127032
>>27013
конюшня, указатель на указтель жы
sage 176 2127038
>>26769

> посколько постоянно решает вопрос "а куда это лучше положить?"


Нет, я решаю вопрос, нужна ли мне переменная за пределами определившей ее функции. То же самое я делаю и в питоне. Только там я не указатель возвращаю, а в dict, tuple или класс заворачиваю.

>>27032
Я попросил бы! int array[n][m] в аргументах деградирует до указателя на массив из m интов, а не до указателя на указатель на int.
177 2127098
>>27038
Смысле? ты просто передаешь в ф-ю где указатель на указатель array и усе
sage 178 2127110
>>27098

> ты просто передаешь в ф-ю где указатель на указатель 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)
179 2127115
>>27027
Ничего не показывает, так что и правда не открылся.
Вероятнее всего, проблема либо в одном из этих двух (далее уже просто 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 меняется как до него плата достучится.
180 2127117
>>27115

>так что и правда не открылся.


Ну и nmap это тоже подтверждал.
181 2127126
>>27110
Так ты чо едреныть, надо же так инициализирровать
https://pastebin.com/zsGycNkU
182 2127134
>>27110
Или так!
#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);
}
sage 183 2127139
>>27115
sin_port = htons(port). От души возблагодарим дидов за хорошие, годные интерфейсы к сокетам.
sage 184 2127144
>>27126

> надо же так


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

>>27134
А вот про это я и писал: >>27038 Так можно. Еще можно VLA притащить, если второе измерение массива не фиксированное.
185 2127226
>>27139
Мда. Спасибо, заработало.
186 2127905
C котаны, как думаете каковы топ 5 причин по которым Сишечка - это фактически бессмертный ЯП? или хотя бы будет дить еще ближайшие лет 50 Несмотря на существование более продвинутого С++ и более современного и хипстерского Раста, Сишечка как была актуальна, так и остаётся таковой. Буду рад версиям анонов.
187 2127935
>>27905

>каковы топ 5 причин по которым Сишечка - это фактически бессмертный ЯП?



Потому что новых языков для низкого уровня не придумали. Просто потому что никому это не нужно. У сишки есть компиляторы для всех возможные в мире платформ и устройств. У нового языка такой фичи не будет, увы
188 2127947
>>19301 (OP)
Сисюны, реквистирую стайлгайд!!!!

Ворочаю байтики и выделяю мэлоком а указать чар. Так вот
как лучше, везде считать их указателями ⚝(data + 1) или массивами data[1]?
189 2127992
>>27935
Перейдут на квантовые компьютеры, и все сишники отправятся на помойку.
Или пойдут чистить сортиры в поместьях хаскелистов.
190 2128008
>>27992

>квантовые компьютеры


Такого не случится. Максимум что-нибудь для вычислений сделают, что-то типа GPU.

> все сишники отправятся на помойку.


Или пойдут чистить сортиры в поместьях хаскелистов.
Что мешает перейти на хаскель?
191 2128009
А существуют ли числа в Си?
192 2128023
>>27935

>Потому что новых языков для низкого уровня не придумали


Чем тебе С++ не язык низкого уровня? Это ведь некий суперсет языка С. Хотя, как видим, плюсы сишечку не убили, а лишь дополнили. Интересно как во всю эту движуху впишется ржавый (Rust).
193 2128096
>>28009

>числа


Нет, есть байты и их последовательность
194 2128216
>>28023

>>новых языков для низкого уровня не придумали


>Это ведь некий суперсет языка С


Сам спросил, сам ответил. Что еще ожидать от хрюсто-дебила.
195 2128431
>>28216
Ыксперт с попеннета не палится.
196 2128644
>>27992

>Перейдут на квантовые компьютеры


https://youtu.be/qrOjPM15wwo
197 2130424
Как с работой, байтослесари?
198 2130450
>>30424
Перекладываю пакеты за 200к, хочу повышения.
199 2130545
>>30450
Как добился этого? Возможно ли джуну без опыта устроиться сишником? Я потихоньку под микрики программирую.
200 2130748
>>25716
F103 не актуален, тем более с алика, если хочешь стать ембдерром запили свою библу на сложное и актуальное устройство(датчик, дисплей и тд), все протоколы и ядро кортекс ты должен знать и ещё дохуя чего, поэтому лучше оставь как хобби и занимайся чем нибудь другим
201 2130752
>>30748

> F103 не актуален, тем более с алика


Я знаю, но выбрал его для старта, т.к. под него очень много гайдов.

> если хочешь стать ембдерром запили свою библу на сложное и актуальное устройство(датчик, дисплей и тд)


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

> все протоколы и ядро кортекс ты должен знать и ещё дохуя чего


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

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


Не хочется заниматься ебанными сайтами или чем-то близким к этому, но работу искать надо. Я долгое время увлекаюсь реверс-инжинирингом, пентестом, поиском уязвимостей, но, к сожалению, не могу сделать это источником заработка.
202 2130760
>>30545
Просто повезло ))
На первую сишную работу устраивался с опытом программирования PIC16 и показал сишный код, который писал для себя, в том числе ядерный. А там как раз требовалось такое для поддержки самопальных железок.
203 2130764
>>30760
Неплохо.
204 2130865
>>30752

>ssd1306



Как делал я.
Нашел код на питоне.
Запустил через esp32/8266 или black pill через mycropython.
Прочитал исходник.
Нашел инициализацию.
Выписал в строку байт (там чтение не нужно, всегда запись).
Отправил их прямо строкой через i2c на питоне без либы.
Прочитал смысл каждой команды в даташите.
Собрал те функции которые мне нужны уже в ассемблере.
Сохранил. Закрыл. Разъебал экран. Забыл.
205 2130890
>>30885 (Del)
Вышмат обязателен для всех инженеров, т.к. он мозги формирует.
206 2130895
>>30890
И что, у тебя сформировались?
207 2130905
>>30895
Я сдал его долгом на тройки и жалею об этом. Самое главное - это фундаментальное образование, а языки и фреймворки - уже второстепенно
208 2130922
>>30905
У меня такая хрень с ЦОС. Препод мудак попался и теперь травма на всю жизнь.
А ведь тема интересная.

>>30752
Вспомнил ссылку
https://github.com/micropython/micropython/blob/master/drivers/display/ssd1306.py
209 2130947
>>30922

> ЦОС


В моей шараге не было ни цифровой электроники/схемотехники, ни системного программирования, ни просто сишки.
210 2131075
>>30450
А что за проект? обработка трафика в провайдерах?
211 2131080
>>30764
Неплохо? JS макаки рубят по 300к, зная сраный реакт... Рыночек решает...
Screenshot20210817-213037Samsung Internet.jpg300 Кб, 1080x2400
212 2131089
Че за херня происходит в disp_stdin? Почему читают с нулевого указателя и пишут в первый?
sage 213 2131113
>>31089
Привет, школа 42 как же вы заебали.Никаких указателей там нет, есть дескрипторы и традиция написания нечитаемого когда с магическими числами, которая до сих пор тянется к нам из 80х. Поэтому тебе стоит сначала man read и потом загуглить STDIN_FILENO, дальше сам.
214 2131120
>>31113

> Привет, школа 42


С чего ты взял?

> Никаких указателей там нет, есть дескрипторы и традиция написания нечитаемого когда с магическими числами, которая до сих пор тянется к нам из 80х. Поэтому тебе стоит сначала man read и потом загуглить STDIN_FILENO, дальше сам.


Спасибо большое
sage 215 2131123
>>31120

> С чего ты взял?


> ft_cat


> ft_putstr


С того, что это ихние уебищные либы.
216 2131131
>>31123
Код может и оттуда, но не я
217 2131155
>>31075
Не в провайдере, но обработка трафика. Для ткаих задач С как раз хватает, хотя иногда хочется владеть плюсами.
218 2131966
а может нахуй си, если не собираюсь микрики кодить? лучше уже плюсы дрочить?
219 2131991
>>31966
Плюсы это пиздец, там надо очень много знать, ведь разработчики высрали множество различных стандартов. Да и перспектив у этого языка нет, там одно легаси.
220 2132011
>>31991
мб тогда раст? бля, но там педики позасовывали в язык того, что и нахуй не надо, дебилы. хуй знает, как по мне лучше уже плюсы

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

обоссыте, но не бейте
221 2132026
>>32011
А чего тебе именно не хватает? Он наоборот является языком, предоставляющим тебе максимальные возможности в пределах выделенной твоей программе памяти (разве что после ассемблера).

> раст


Сам думаю выучить его.
222 2132072
>>32011
Я вот попробовал Го учить, но это просто лютый пиздец а не язык... Лучше кресты выучить, на крайний случай есть ПХП если совсем жрать нечего
223 2132120
Дишка лучше крестов, ржавого и говняшки.
224 2132141
>>30752
Гайды хуяйды, изучи даташит, изучи программирование. Программирование это твой стиль написания кода. На хуй брать говно f103(каюсь сам раньше грешил по незнанию сейчас это говно валяется, потому что нормальную купил) китайцы продают самопал ёбаный за счет вас хомячков кормяться, бери нормальный девборд(если не в терпеж адаптируй гайды под нее)
На производстве никто f103 не юзает, залезь лучше в форум стм и почитай
225 2132143
>>30752
Знай как работает spi, i2c, 1wire, can, uart, usart
Знай cortex почитай книгу, взвесь все за и против хватит ли времени, у тебя должно быть дохуя мотивации вкатиться, у ембдеров нету джунов, сеньоров
226 2132146
>>32143
Реквестирую потенциальную литературу по embedded.
мимо
227 2132220
>>32026
абстракций не хватает, процедурная парадигма очень скудна.

>>32072

> Я вот попробовал Го


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

> есть ПХП


да я и так уже рубист

хотя с си я больше профита поимею, нативные экстеншены для рубей смогу клепать.
228 2132281
Зацените ats. Встроенный прувер, безопаснее раста, адресная арифметика, мл-лайк синтаксис, фичи мл(автовывод типов, алгебраические типы и т.д.), линейные типы, зависимые типы, компиляция в си и много чего ещё.
229 2132306
>>32281
сори, но залупа какая-то
230 2132313
>>32306
Это нормально, язык появился где-то в конце нулевых, вышло две версии, на подходе третья, более простая. До сих пор о нём знает очень мало людей.
sage 231 2132314
>>32281
Низкоуровневому языку нужна не ебля с какими-то там абстрактными типами, а возможность memory ordering задавать указателю без костылей.
232 2132338
>>32314
абстрактные типы нужны для удобства и безопасности. Никто не мешает вызывать сишные функции, которые, вроде, можно верифицировать с помощью ats.
233 2132360
Является ли C++ говном для даунов?
234 2132386
Имеет ли смысл компилировать (небольшие) части своего проекта в статические либы и линковать с ними? Допустим, если у меня под stm проект, а там hal, freertos и несколько файлов с собственно юзер кодом. Я как-то вот сделал, чтобы hal и freertos компилировались, собирались ar'ом ну и лежали себе готовенькие. Зачем только?
Изначально я туда полез, потому что где-то писали, что поможет уменьшить размер бинарника (типа, возьмёт из либы только использумые функции), но с -ffunction-setions и --gc-sections разницы никакой нет (а без этих флагов компиляция в либу мало чего даёт). Разве что makefile может читабельней выходит, когда не всё в кучу накладывается.
235 2132442
>>27905
для многих системных задач, нужен максимально тупой язык
это с
236 2132545
>>32146
Ни одной книги полезнее даташита или app note не встречал. Все что нужно знать об интерфейсах, есть в даташитах на чипы, которые этот интерфейс имеют.
С ПЛИС ситуация точно такая же, и даже более характерная.
Не понимаешь один даташит - возьми другой. Совсем плохо - гугли.
237 2132558
>>32386
Готовые либы хороши если вдруг их старые проверенные исходники перестанут собираться по какой-то причине. У меня есть короткая полезная функция на ассемблере, которую я вставляю как массив байт и вызываю где хочу. Не нужно ебаться с поддержкой ассемблера.
238 2132608
>>32386
быстрее соберется еще наверн, когда ты перекомпиливашь только часть проекта, там где изменения
239 2132790
>>32558

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


В исходниках на турбо паскале такого говна было полно. Ты оттуда вылез?
240 2132800
>>32790
У тебя комплекс неполноценности?
241 2132826
>>32608
Так он же в любом случае перекомпилирует только те объекты, в исходниках которых были изменения (у меня по крайней мере каждый .c в .o делается по-отдельности).
Скорее наборот, без либы было бы быстрее (если миллисекунды считать), так как не нужно дополнительно архивировать это всё потом.
242 2132869
Статические либы придумали только для того, чтобы объектники (один на функцию, в идеале) не лежали россыпью. Потом туда присобачили индексы, чтобы собирать быстрее.
image.png48 Кб, 530x195
243 2132871
>>32558

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



ТАК ТАК ТАК, ЧТО ТАМ У НАС
244 2132963
чому нету була?
245 2133022
А если в h файле писать только имя структуры а в c файле писать имя и поля, это правильно? Или структуры надо обязательно писать в h файлах?
246 2133025
>>32963
Тому що вызовет клэши.
Поэтому есть _Bool
247 2133032
>>33022
Это правильно с т.з. теории (сокрытие деталей реализации), но вынуждает выделять струку динамически. А нормальные сишники не спешат маллочить.

struct foo;
struct foo alloc_foo(void);
void free_foo(struct foo
);
sage 248 2133035
>>32826
Это в идеале так. А в жизни ты поправил CMakeLists, и оно опять пересобирается. Дописал комментарий в хедере либы, и пересобирается твоя либа, и твои приложения, которые ее используют. Так что да, статические либы в большом проекте - спасение.

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

>>33022
Публичная структура - имя и поля в хедере, можно определять переменные такого типа. Приватная структура - в хедере только имя, переменные определять может только реализация, которая объявила полноценную версию структуры, а внешний код будет довольствоваться только непрозрачными указателями.
249 2133039
>>32220

>абстракций не хватает, процедурная парадигма очень скудна


Ты на С можешь программировать хоть объектно-ориентированно, хоть функционально. Например, свои классы можно пилить из структур, в которых содержатся указатели на функции.
250 2133074
>>33039
да я начал читать https://www.cs.rit.edu/~ats/books/ooc.pdf

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

А про функциональщину интерестно, каким это боком на си можно?
251 2133093
>>33039
ФП на Си в конечном счете вырождается в ООП, ибо для захвата каждого отдельного окружения придется объявлять структуру, а при захвате вручную инициализировать эту структуру.
252 2133105
>>33035

>А в жизни ты поправил CMakeLists, и оно опять пересобирается


Так это же всё будет зависеть от того, как у тебя зависимости настроены. Откуда ему знать, может ты там убрал или добавил каких-то объектов, ясное дело, что нужно перекомпилировать. А если никакие объекты от мейкфайла не зависят (я в cmake не очень, пользуюсь обычным gnu'шным makefile'ом, но полагаю, что там примерно то же самое всё), то изменения внутри этого файла необходимость перекомпиляции не возбудят.

>Дописал комментарий в хедере либы, и пересобирается твоя либа


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

Не очень понимаю, как именно статическая либа тут что-то изменит-то? Были изменения, затронувшие файлы "либы" — нужно бует перекомпилировать. Линковаться со всеми этими объектами или предварительно собрать всё в архив, какая разница-то?
253 2133199
>>33105

>если никакие объекты от мейкфайла не зависят (я в cmake не очень, пользуюсь обычным gnu'шным makefile'ом, но полагаю, что там примерно то же самое всё), то изменения внутри этого файла необходимость перекомпиляции не возбудят.



⛧.o: Makefile
254 2133281
>>32871
То stm32, и это самое безобидное что я делаю с ним.
255 2133315
>>32360
нет
256 2133381
>>19301 (OP)
пишу tui под линуксами без сторонних библиотек .Проблема заключается в том,что операционная система отправляет сигнал SIGWINCH только когда в UI-цикле задержка между записями в stdout составляет порядка 200 миллисекунд .Если понижать задержку ,при изменении размера терминала сигнал начинает приходить не всегда , а то вообще не приходит в 100% случаев.

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

что делать?
sage 257 2133386
>>33105

> Не очень понимаю, как именно статическая либа тут что-то изменит-то?


Считаешь, что функциональность заморожена @ уберешь либу и ее хедеры из зависимостей остального проекта @ ребилдишь либу, если нужно, явным способом make mylib.a @ профит, если правки не влияют на интерфейс либы. Экономишь кучу времени на ребилдах.
258 2133397
>>33381
Хз, телепаты в отпуске.
image.png207 Кб, 474x338
259 2133405
>>33397
по-моему вопрос описан нормально,я не понимаю к чему ты это написал
260 2133409
>>33405
Покажи коде, анимешная аватарка.
image.png288 Кб, 682x1023
261 2133412
>>33409
код плюсовый, вот 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 какой-то нужен.Я собственно к сишникам на ковер пришел потому что плюсовики вряд ли про такие тонкости оси знают
image.png288 Кб, 682x1023
261 2133412
>>33409
код плюсовый, вот 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 какой-то нужен.Я собственно к сишникам на ковер пришел потому что плюсовики вряд ли про такие тонкости оси знают
262 2133462
>>33412
Возможно, твоему терминальному эмулятору становится хуево от того, что ты пишешь каждый байт отдельным вызовом. И оно не посылает тебе сигнал. Буферизуй записи или поменяй терминал.
image.png106 Кб, 474x266
263 2133473
>>33462
Ну поменяй терминал точно не вариант т.к программа должна работать везде,даже в нативном линупс терминале,без иксов.

Я не могу чисто теоретически записывать например построчно ,потому что каждая клеточка терминала должна иметь свой цвет,который я ,перед тем как положить char ,должен записать в stdout в виде esc-кода .То есть от посимвольной записи уйти невозможно.
264 2133497
>>33473
Просто сложи все байтики в буфер хоть на одну строку, потом делай один write.
А вообще тебе стоит ознакомиться с внутренностями curses.
265 2133547
>>33497
попробовал построчный 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 }
266 2133557
>>33199
Я в курсе, про это и писал, что если мейкфайл вот так вот не указан как зависимость, то ничего не произойдёт.

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

То есть, что у тебя будет

>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 не удет пересобираться. Понятное дело, что с либой удобнее, когда много файлов, вопрос-то в другом. Либа это лишь возможность более удобно организовать всё, как говорил >>32869 (и как мне кажется), или всё же есть какая-то функциональная разница?
sage 267 2133628
>>33557

> есть какая-то функциональная разница


Принципиальной разницы нет. Это всегда вопрос удобства.
image.png490 Кб, 570x736
268 2133936
photo2021-08-2013-22-00.jpg15 Кб, 350x336
269 2133958
270 2133961
>>33958

>photo2021-08-20[...].jpg


Зачем ты выложил своё фото? Я не просил тебя этого делать.
271 2134278
>>33547
анон,который писал про то что терминал перегружен записями ,судя по всему, прав потому что пустой while(1) все прекрасно ловит , а если добавить туда запись даже одного байтика в stdout все идет пиздой.

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

Вопрос закрыт.
272 2134425
>>33958
Свинья же некошерное животное, она не может быть маскотом еврейской расовой энциклопедии.
273 2134462
Планирую изучать C. Какой пет-проект можно запилить?
274 2134485
>>34462
Удваиваю реквест.
мимо
275 2134547
>>34462
Веб-фреймворк, на сишке их пока не видел.
Хотя бы просто контроллеры для REST сервиса.
276 2134550
>>34462
Рогалик. Это классика!.

>>34547
Зануда, плиз!
277 2134559
>>34462
Интересно сделать что-нибудь с алгоритмами
278 2134573
>>34462
Чукча, читать научись сначала. И почитай хорошо оформленный код. Потом сам придумаешь себе педопроект.
279 2134689
>>34462
https://github.com/rby90/project-based-tutorials-in-c
https://github.com/tuvtran/project-based-learning#cc

>>34573

>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.

280 2134709
>>34689
Ну так то для англосаксов not necessarily.
А мы - самая читающая нация.
281 2134744
>>34709
Оно и видно
282 2134758
>>34462
операционная система
283 2134856
>>34709
Учеба = тунеядство.
Цитата из книжки.
284 2134891
>>34709
Ну по существу, научиться програмировать можно программируя. Что понимается под программированием? Вот у меня есть мир. В этом мире есть некая задача. Я могу эту задачу решить вручную (это ВАЖНО, блядь, новички иногда часто забывают, что нельзя автоматизировать то, что ты не понимаешь как сделать вручную), но мне лень либо я не могу её решать достаточно быстро. К примеру я могу вручную рендерить кадры из 3д игры, но это мне мало что даст - моей скорости не хватит чтобы игра шла плавно и работала так, как было задумано. А компьютер может делать это быстро, поэтому приходим к программированию.
Решая подобные задачи, мы учимся программировать.
Читая же чужой код, можно понять, что хотел сказать автор той конкретной программы, которую ты читаешь. А можно не понять. Более важный вопрос - и чё дальше? Чукча, конечно читатель, и чукча может понять, как работает программа некоего дяди, которая делает то-то и то-то. Но что дальше чукча сделает с этими знаниями? Напрашивается ответ - чукча будет либо дебажить программу дяди, либо добавлять к ней фичи. Если чукче это нужно - то флаг ему в руки. Но если нет?
285 2134906
>>34462
Прошивка для микроконтроллера.
286 2134912
Как же всё заебало. Понаделали кнопочек и умничают. Что нравиться тебе этот сайт, нравится полуанонимное общение с модерацией? Зато кнопочки есть.
У вас есть какая-то философия, принципы, для чего вы это делаете? Не только же для автоматизации, или только?
Слабо придумать систему в которой будут не нужны модераторы?
Конечно, тут ведь логику надо подключать, это вам не кнопочки делать.
287 2134921
Всё купили, всё продали.

>хочу вкатится


в этот оборот купли-продажи все хотят вкатится, а не в программирование.
288 2135083
>>34891

>Ну по существу, научиться програмировать можно программируя.


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

>Решая подобные задачи, мы учимся программировать.


Вот так и появляется индусский код, который решает задачи (как бы вручную, но быстрее), а значит все хорошо.
289 2135123
>>34921
Что ты хочешь от нищих.
290 2135460
>>35083

>Ну да, а научиться говорить можно только говоря, слушать необязательно


Эта аналогия тут для чего? Это аргумент в пользу твоей позиции?
291 2135598
292 2135606
>>32360
возможно
293 2135621
>>33936
проиграл
294 2135849
Если я напишу средний/сложный компилятор в качестве портфолио меня возьмут на вакансию джуна по Си?
295 2135878
>>35849
Если простой напишешь, то должны взять. Впрочем, можно так отформатировать код, что и не возьмут.
296 2138687
>>19301 (OP)
Зачем нужны абсолютно все языки, если все в конце концов собирается в Си?
297 2138727
>>38687
Зачем нужен Си, если все в конце концов собирается в машинный код?

Ответ: потому что программы на языках программирования пишут для людей, а не компом. Компы и битами/байтами прекрасно довольствуются. Различные языки позволяют программы понятными для людей, что облегчает и их (программ) создание и доработку.
298 2138744
>>38727
Но тогда страдает производительность, а если программа непроизводительная, и неэффективная, и жирная, то зачем она нужна вообще. Языки это вообще тогда не языки, а просто трансляторы в Си. Это же тупо. Получается, что кроме Си ничего нет и Си это такой же фюрер как и жс, но в мире системного по. Я не могу просто сидеть, когда хеллоу ворды сейчас буквально 10ки мб весят. Это же тупо
299 2139020
>>38744
что ты несешь? мало что транслируется в си

а про производительность открою тебе истину - железо стоит дешевле времени еба сеньера c/c++, тут как бы рыночек порешал. Да и в подавляющем большинстве итшных задач веб макакинг производительность конкретно твоего кода мало че решает, главное понятный код и sql запросы нормальные пиши, тут не нужен челик, который ебет байты
300 2139034
>>38744

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


Metaprog, ты? Узнал тебя по шизоидной любви к си.

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

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

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

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

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

#️⃣Поток “шарпов”
Программа состоит из двух частей:
1. Первые три модуля изучается C#
2. В 4 модуле C++ в 4
Так вот то есть по сути выбор между C + asm и потом плюсы и C# и потом плюсы(чуть меньше видимо). Я насколько понимаю первый вариант более предпочтительный так как из C вкатываться в плюсы более естественно чем из шарпов? Че выбрать?
302 2139290
>>39116
с шарпами проще работу будет найти
303 2139544
>>39116
Первый вариант даст тебе базу, поэтому выбирай его. Шарпы сможешь сам потом выучить, если надо будет.
304 2139671
>>39544
вот так и думаю, шарпы с винформами/другой хуйнёй по необходимости вполне можно самому освоить, а вот низкоуровневые вещи лучше под чьим то надзором учить
305 2139851
>>39020

>железо стоит дешевле времени еба сеньера c/c++, тут как бы рыночек порешал


Эмм, если твой не-ёба джун посчитает скажем числа фибоначчи рекурсивно и эта процедура будет дохуя где использоваться и считать большие числа, то тебя никакое железо не спасёт, я прям сейчас могу показать насколько ощутимое время будет занимать процедура на твоём манятоповом железе. Правда это не проблема си-оптимизаций, а алгоритмическая недоработка, уровень абстракции повыше малёха, но и в мире машинных оптимизаций такого говна пруд пруди, как например разница между копированием массива построчно и постолбцово (один из способов в восемь раз медленнее другого). Всегда есть предел долбоебизму, после которого железо перестаёт спасать.
306 2139852
>>39544
Два чаю.
307 2140006
>>39851
я говорил про основную часть задач, которые требует среднестатистический бизнес от среднестатистического программиста.
свои числа фибоначчи от большого числа можешь в универе на первом курсе в качестве лабы сдать либо засунуть себе в жопу.
В стандартной задаче взять откуда-то данные распарсить их и положить в другое место можно и питоном на не-еба джуне сделать. Только купи виртуалочку нормальную, а сдачу оставь джуну на тарелку риса за которую он работает.
sage 308 2140146
>>40006
Соси хуй, быдло
309 2140508
>>39671
Хуй знает, лично я их учил сам, так как в универе как раз были только шарп, джава и функции управления (учет, анализ, планирование), лол.
310 2140512
Парни с ещё будет жить или лучше уже сразу в раст ударицо?
311 2140518
>>40512
Это все равно что сказать, что часы со стрелками умерли и больше не нужны, ведь есть цифровые. И потом принципиально избегать все случаи, где аналоговые и механические часы просто упоминаются.
То есть ты проводишь мысленно черту через условный 2022 год, когда раст станет популярнее си для новых проектов и говоришь: я работаю только с тем что написано после 22 года. Все остальное вне моей компетенции.
312 2140563
>>40518

>есть ты проводишь мысленно черту через условный 2022 год, когда раст станет популярнее си для новых проектов и говоришь:


Воу, что-то ты разогнался.
313 2140599
>>40518

> когда раст станет популярнее си


чет ору в голос
раст не станет популярным продакшн языком, сколько бы его не форсили разные дэлбики.
314 2140691
>>40599
Почему? Слишком сложный?
315 2140977
>>40691
если кратко то да

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

под удачными я понимаю соотношение головной боли самой проблемы к головной боли от решения на расте, которое решает эту проблему. Например борроу чекер - решает UB с памятью, но ценой того что тебя в жопу ебет компилятор, какая боль страшнее? править баги с памятью, или заниматься всякой дрочью типа описывать время жизни ссылки из-за чего код превращается в какую-то вырвиглазную хуиту?
316 2140980
>>40977
хорошие фичи раста появятся в других языках, но сам раст имхо не взлетит все-таки
317 2141019
>>40563

>условный

318 2141157
>>40563
>>40599
Я пытался быть оптимистом. А так вы отбили человеку все желание учить раст. Сволочи!
319 2141231
>>40980
По рейтингам всегда на несколько пунктов уходит от goвна
320 2141262
>>41231
в tiobe 24 перед делфи кек
и то это рейтинг основанный на интересе пользователей,
а всяким смузиглотателям всегда нравлось поизощеренней покалупать себе эйнус, поэтому такие языки в подобных рейтингах обычно на плаву. Но по факту продакшн у него нулевой, да и не скоро появится
321 2142266
>>20987
Где почитать про семафоры, пайпы, простым языком? Все что гуглил это либо абстрактная статья на вики, либо уже высокоуровневые реализации на с++ с абстракциями из стандартной либы.
Ну то есть я понял, что такое семафор в целом и для чего они используются в программирование, но как они работают в ОС и для чего нужны там, непонятно. Про прерывания тоже хотелось бы почитать.
Screenshot20210828-100345Via.jpg259 Кб, 720x1560
322 2142438
323 2143216
>>42438
Благодарю, добрчеловек
324 2143217
Неспешно ищу хорошего человека, который поможет c clang..
Нужен бакенд для PDP11. Собственно помощь нужна в написании этого бакэнда. За меня писать не надо, нужно подсказать как это сделать. Или кооперация.
325 2143227
>>43217

>Нужен бакенд для PDP11


Ты веком не ошибся, странник?
326 2143402
пацаны, проревьюйте плиз имплементацию динамического массива
https://pastebin.com/bug8B3n5
рад любой критике
можете даже обоссать меня
327 2143426
>>43227
Нет. Не ошибся. Вполне серьёзно. Очень логичная и простая система команд. Для изучения TableGen лучше ничего придумать невозможно.
Вопрос в силе.
328 2143504
>>43402
Почему макросы вместо функций?
329 2143587
>>43504
хз
у меня же для любого типа массивы, а на макросах типо как дженерики.
а как на функциях? void dynarray_push(void arr, void value)? и все на указателях?
или как надо?

я за основу брал вот эту статью
https://solarianprogrammer.com/2017/01/08/c99-c11-dynamic-array-mimics-cpp-vector-api-improvements/
330 2145223
>>43217
Таки что, гениев тут не наблюдается? Нет богатырей, способных описать PDP11?
331 2145243
>>45223
Оно на хуй нинужно
sage 332 2145269
>>43217

>нужна нянька


В детский сад.
333 2145272
>>45243
Ты так решил?
Вот пожалуйста - https://pdp2011.sytse.net/wordpress/download/
Или вот - https://github.com/wfjm/w11
Живая, как видишь.

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

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

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


Ну так учись, нам то это говно зачем?
335 2145443
>>43227
>>45243
A вот вы нахуй идите, граждане
336 2145774
>>45322

>нам


Кому "нам"? Ты за себя научись говорить.
337 2145795
>>45774

>Кому "нам


Всем адекватам
338 2145871
>>45795

>Всем


Ты не станешь человеком, пока не отучишься говорить за всех.
339 2145936
>>45871
Нам по хуй, уходи
340 2146234
>>43217

>Нужен бакенд для PDP11


>>45223

>Нет богатырей, способных описать PDP11?


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

>>45272
Все преимущества ни о чем.

>1. Красивая и простая архитектура.


Фигня, можно еще проще.

>2. На 90-нм техпроцессе чип будет размером с блоху.


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

>3. Батарейки от наручных часов хватит на год работы.


Нет. Берем MSP430G2203IPW20 в качестве примера наследника PDP-11. Ток потребления без учета токов портов ввода/вывода заявлен 230 µA на 1 MHz. Допустим тактовая частота будет 1 МГц (это при максимальной 16 МГц). Допустим батарейка CR2032 с емкостью 200 мАч, тогда батарейки хватит на 200/(24*0,23)=36 дней. Ну а если использовать режимы пониженного потребления, то от системы команд мало что будет зависеть.

>4. Идеальная архитектура для интернета вещей.


Не нужно. Да и сомнительно про идеальность.

>5. Красивая и простая система команд, чьи идеи не были подхвачены индустрией.


А мне не нравится, в FPGA оно как-то не очень, особенно учитывая возможности блочной памяти.
341 2146274
>>46234

>а вот разобраться с llvm...


Вот та же беда. Дожить до пенсии и сесть за llvm.
Вижу тебе не интересна PDP-11, но интересна llvm.
Давай вместе разбираться?

>>1. Красивая и простая архитектура.


>Фигня, можно еще проще.


И красивее можно.

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


Он 16-битный. Сколько мм2 64 Кб статической памяти займёт?

>Допустим тактовая частота будет 1 МГц (это при максимальной 16 МГц)


Допустим 16 МГц. Но с оборванным клоком, подключаемым по необходимости. И картина резко меняется.
.png1,2 Мб, 994x785
342 2146394
>>46274

>64 Кб статической памяти займёт?


Очевидно что зависит от технологии, но однозначно больше чем "ядро" у простенького микроконтроллера. Вот например внутренности простенького микроконтроллера, у которого всего лишь 256 байт памяти. Логично ожидать что при той же технологии 64 кб займут в 256 раз больше площади, что очевидно будет больше всего остального.

>Но с оборванным клоком, подключаемым по необходимости. И картина резко меняется.


И в таком случае, если не учитывать потребление в активном режиме (допустим его доля мала по сравнению с остальным), потребление в режиме "сна" толком не зависит от системы команд. В режиме standby у MSP430G2203IPW20 заявлено 0.5 μA, но нужно еще учесть потребление периферии. Так вот если микроконтроллер "бодрствует" меньше 0.1% времени, то потребление в активном режиме будет явно меньше остальных факторов и система команд тут не при чем.
Ну и у MSP430 показатель 230 µA/MHz не выдающийся, например у серии EFM32TG заявлено 150 μA/MHz, а это уже простенький ARM.
343 2146715
>>46234

>>Батарейки от наручных часов хватит на год работы.


У меня были часы наручные, которые работали 2 года на одной тоненькой литиевой батарейке. Поэтому я тоже очень усомнился в этом утверждении.
344 2147187
>>46394

>>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
345 2147265
>>46715
Дело не в том что хватит или нет. Как раз вероятно что хватит, только не благодаря системе команд, а из-за режимов пониженного потребления. Недостаточно просто "оборвать клок", нужно еще и включить его по внешнему сигналу, а в промежутке между этим время должно считаться каким-то счетчиком. В часах один только тактовый генератор вероятно будет потреблять больше "процессора", а еще в нормальных часах тактовый генератор должен быть не просто так, а с термокомпенсацией. В свою очередь термокомпенсация это не просто так, там и кварц специальный и отдельно отобранный и сама схема результат отдельного труда.
Для примера вот генератор JSO15B1TR потребляет 1.2 мкА, что уже больше чем потребляет MSP430 в режиме standby. Скажешь это я не тот генератор притащил, а попробуй найти с меньшим потреблением. Впрочем, этого уже хватит на несколько лет работы часов на MSP430, но вовсе не благодаря системе команд. Таким образом, сказки про высокую энергоэффективность системы команд PDP-11 это чушь, оно тут не при чем.
Остальные утверждения про PDP-11 тоже мимо, только о субъективной красоте системы команд не оспоришь, так как у всех разные вкусы.

>>47187
И чем тебе та моя картинка не угодила? По моему вполне доказывает мое утверждение. И я писал только о том, что площадь 64 кБ статической памяти намного больше площади "ядра" простенького микроконтроллера/процессора. Как статьи, которые ты притащил, доказывают или опровергают это утверждение? Никак.
Ладно, тогда можно рассудить иначе. Простейший триггер требует уже два транзистора, а реально 6 транзисторов на бит по твоим ссылкам, соответственно 64 кБ памяти потребует явно больше 64к×8×6=3 млн. транзисторов. Сколько транзисторов займет сам PDP-11 без всего "лишнего"? В 8080 - 4758 транзисторов, в 6502 - 3510 транзисторов, в советском клоне PDP-11 К1801ВМ1 - 16646 транзисторов, если не врут. А 64 кБ памяти потребует в 200 раз больше транзисторов чем "ядро" PDP-11. Может в памяти оно упаковано лучше, не в 200 раз же "ядро" будет "рыхлее".
345 2147265
>>46715
Дело не в том что хватит или нет. Как раз вероятно что хватит, только не благодаря системе команд, а из-за режимов пониженного потребления. Недостаточно просто "оборвать клок", нужно еще и включить его по внешнему сигналу, а в промежутке между этим время должно считаться каким-то счетчиком. В часах один только тактовый генератор вероятно будет потреблять больше "процессора", а еще в нормальных часах тактовый генератор должен быть не просто так, а с термокомпенсацией. В свою очередь термокомпенсация это не просто так, там и кварц специальный и отдельно отобранный и сама схема результат отдельного труда.
Для примера вот генератор JSO15B1TR потребляет 1.2 мкА, что уже больше чем потребляет MSP430 в режиме standby. Скажешь это я не тот генератор притащил, а попробуй найти с меньшим потреблением. Впрочем, этого уже хватит на несколько лет работы часов на MSP430, но вовсе не благодаря системе команд. Таким образом, сказки про высокую энергоэффективность системы команд PDP-11 это чушь, оно тут не при чем.
Остальные утверждения про PDP-11 тоже мимо, только о субъективной красоте системы команд не оспоришь, так как у всех разные вкусы.

>>47187
И чем тебе та моя картинка не угодила? По моему вполне доказывает мое утверждение. И я писал только о том, что площадь 64 кБ статической памяти намного больше площади "ядра" простенького микроконтроллера/процессора. Как статьи, которые ты притащил, доказывают или опровергают это утверждение? Никак.
Ладно, тогда можно рассудить иначе. Простейший триггер требует уже два транзистора, а реально 6 транзисторов на бит по твоим ссылкам, соответственно 64 кБ памяти потребует явно больше 64к×8×6=3 млн. транзисторов. Сколько транзисторов займет сам PDP-11 без всего "лишнего"? В 8080 - 4758 транзисторов, в 6502 - 3510 транзисторов, в советском клоне PDP-11 К1801ВМ1 - 16646 транзисторов, если не врут. А 64 кБ памяти потребует в 200 раз больше транзисторов чем "ядро" PDP-11. Может в памяти оно упаковано лучше, не в 200 раз же "ядро" будет "рыхлее".
346 2147269
>>47265

>64 кБ памяти


На всякий случай уточню что статической памяти, тем более ты сам первый написал о статической памяти.
347 2147593
>>47265
Насчёт картинки. С тем, что статическая память занимает больше ядра процессора, я не спорил. Я лишь утверждал что техпроцессе 90 нм всё это поместится на чипе, размеров с блоху. Условно 1-2 мм2 достаточно для простого чипа.

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

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

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

>С тем, что статическая память занимает больше ядра процессора, я не спорил. Я лишь утверждал что техпроцессе 90 нм всё это поместится на чипе, размеров с блоху. Условно 1-2 мм2 достаточно для простого чипа.


Вот. PDP-11 тут не при чем, любой простенький процессор вместе с памятью займет примерно так же, даже 32-х разрядный.

>Оно конечно дико для любителей ARM.


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

>Кстати, ты чем занимаешься?


Какой-то ерундой в одном из московских НИИ. По большей части занимаюсь схемотехникой.
349 2149927
Вопрос, вероятно, больше к линуксоидам, но всё же.

Нужно работать через 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 я читать никогда не буду, но мало ли?
Плюс, хранить же его где-то ещё надо, чтобы закрыть потом. Или можно забить и, закрывая мастер, слейв сам закроется тоже?
350 2149941
>>49927

>Или можно забить и, закрывая мастер, слейв сам закроется тоже?


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

>m_fd = openpt() // 3


>s_fd = open(ptsname(m_fd)) // 4


>close(m_fd)


>m_fd = openpt() // 3


>m2_fd = openpt() // 5

351 2150132
>>43217
Вот лучшее руководство для вката. Начинать с этого - https://opus4.kobv.de/opus4-fau/files/1108/tricore_llvm.pdf
После него и остальные доки станут понятнее.
352 2150349
Сап, аноны. Учусь на 2 курсе уника, в этом семе надо писать курсовую на C. Я вообще не знаю, какие есть возможности у этого языка. Поэтому хочу попросить помощи в выборе темы от просвещённых анонов. Заранее спасибо.
353 2150452
>>50349
Операционка.
354 2150520
>>50349

>Я вообще не знаю, какие есть возможности у этого языка.


Так узнай. Ты же учишься, вот и учись.
355 2150583
>>50349

>Я вообще не знаю, какие есть возможности у этого языка.


The C programming Language By Brian W. Kernighan and Dennis M. Ritchie.
356 2150657
>>50349

>Я вообще не знаю, какие есть возможности у этого языка.


Никаких. Си - мультиплатформенный язык. Такм образом, возможности есть у конкретных платформ. Берешь платформу и изучаешь её возможности.
357 2151339
Как сделать
if (числа != числа с 1 по 10)?
Чтоб программа сравнивала число с рядом чисел 1-10 и если не совпадает с числами с 1 по 10 выполняло это самое if?
Искал в интернетах, но мне предлагает только распечатать числа с 1-10, но мне нужно лишь записать коротко набор чисел с 1 по 10 для условия.
358 2151446
>>51339
if (число >= 1 && число <= 10)
359 2151512
>>51446
Спасибо, твой вариант чутка логичнее моего изначального.
Но какого-то более короткого варианта указать набор чисел с 1 до 10 по типу 1->10 нету?
360 2151540
>>51512
Нет, такое только в питоне встроенное видел.
362 2151984
>>51339
>>51446
>>51512
>>51540

> if (число >= 1 && число <= 10)


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

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



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

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

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

Эх, детишки, ничего хорошего из вас не выйдет, если вы основ не понимаете. И да, я не проверял с компилятором - если ошибся, то сс компилятором в руках бы стразу это увидел и поправил.
Hp35Sjy-reM.jpg30 Кб, 327x489
363 2151986
364 2152048
>>51986

>указатель на число и массив - суть одно и то же


>массив указателей - массив массивов


>т.е. двумерный массив


>т.е. двумерный массив


Пиздабольство. int array[][] и int* array[] - разные вещи. Ведут себя схоже, но компилятор их по-разному рассматривает.
365 2152070
>>51984

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



тут наверное инверсия надо, чувак же просит от 1-10 а не за пределами.
366 2152075
имеет ли смысл K&R читать?
это же как я понял старье пиздец
367 2152081
>>52075
Си тоже старье пиздец.
368 2152168
>>52081
си хоть и старый но новые сандарты появляются, хоть и редко
а эта книга вообще про самый первый стандарт
369 2152169
Как же заебал этот ебучий си везде и всюду, почему сука нельзя писать библиотеке на с++, вот например тот ффмпег, чтобы разобраться в этом говноси апи, нужно потратить сука неделю другую непрерывного ебания себя в жопу говносишкой.

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

Алсо, раньше тоже писал на си и думал это круто, когда был молодой.
370 2152213
>>52168
Там изменения выходят косметические, а не посоны, давайте сделаем g 14.88 для прикола.
371 2152222
>>52213
ну могли бы уже и норм изменения добавить тогда, пидоры
такой крутой язык, но морально устарел уже
372 2152224
>>51984

>никакме Пайтоны никогда не смогут это повторить.


М-метапрограммирование.
На любом языке можно сгенерить твои три байта, дед. Чекни litex проект https://github.com/enjoy-digital/litex где на питоне генерируют верилог.

>Ряяя неэффективно это же Пайтон!!!!! ДОЛБОЕБ!1111


Повторяю для танкистов, python - это генератор. Ты же gcc не добавляешь в каждый проект, чтобы запустить его? Вот и пайтон нужен только на компе.
А качество кода по прежнему зависит только от тебя.
image.png29 Кб, 872x247
373 2152741
>>52224
Ты путаешь байты и машинные инструкции.
Вот когда на Пайтоне сможешь показать подобное, как на картинке, тогда приходи.
А то, что теоретически возможно, а на практике не существует, то и смысла не имеет.

> Чекни litex проект https://github.com/enjoy-digital/litex


Чекнул. Нуууууу такое. Штука чтобы скомпоновать готовые корки. Просто более высокий уровень абстракции. Ничего серьёзного он не умеет.
374 2152775
>>52224

>python - это генератор


Гне нужно отбивать табами и обмазанный ооп говном? Нинужна
375 2152875
>>52741

>Он чекнул! и вынес экспертное мнение


>Поясняет человеку который написал на нем несколько ip ядер, что все это несерьёзно


Ой иди нахуй. Когда уже вайти придут профессионалы и вытеснят казуалов.
376 2152951
>>52875

> который написал на нем несколько ip ядер


Не пизди. Или тащиц пруфы.
377 2153244
>>52951
Резко разбежался, сделал реверанс, и выложил какой-то непонятной хуйне свои наработки, чтобы не дай бог она не подумала что я пизжу.

Да ради бога, можешь думать что я пиздабол. Скатертью дорога, твой долбоебизм исправлять и еще твою пацанскую риторику слушать? Сам ебись. Квота на вежливость исчерпана, соси баранку.
378 2153367
>>53244
Жозенько он тя даванул кста
379 2153461
>>53244
Тебе, пиздаболу, достаточно было показать как этот тул генерит always@(posedge i_clk or posedge i_rst) и его внутреннисти на простейшем примере, и твой оппонент сдулся бы и промолчал.

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

>>53461

>твой оппонент сдулся бы и промолчал.


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

>как этот тул генерит


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

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

И пусть такой опус не вызовет ни у кого подозрение, что проект годнота, которую я пытаюсь скрыть. Нет, проект говно. Не гуглить.
381 2153880
>>53521
Я одного не пойму - у тебя осеннее обострение или очередной непризнанный гений? Или и то, и другое?

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

Так-то есть и 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?
382 2153901
>>53880
Ты просто хочешь уломать меня все тебе разжевать, раз на понт не удалось взять, чтобы потом снова "обосрать".
Соси баранку.

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

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

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

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

>Я одного не пойму


Перевод темы. Напоминаю, что я уже пошел нахуй и пиздабол. Не общайся с пиздаболом.

>- у тебя осеннее обострение или очередной непризнанный гений? Или и то, и другое?


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

> Всё! Вопросы сразу отпали бы.


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

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


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

>Так-то есть и C-to-Verilog конверторы, а толку?


Мда, ты прав, прав. Я же не спорю с тобой. Я уже признал что я пиздабол.

>Ну так что с регистрами и клоками


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

Кабаны, вам придется сменить интонации чтобы получать годноту на форумах, мир меняется. Ваш гоп-стоп стиль общения уже не будет работать.И вы перестанете получать бабло, ради которого живёте.
382 2153901
>>53880
Ты просто хочешь уломать меня все тебе разжевать, раз на понт не удалось взять, чтобы потом снова "обосрать".
Соси баранку.

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

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

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

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

>Я одного не пойму


Перевод темы. Напоминаю, что я уже пошел нахуй и пиздабол. Не общайся с пиздаболом.

>- у тебя осеннее обострение или очередной непризнанный гений? Или и то, и другое?


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

> Всё! Вопросы сразу отпали бы.


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

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


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

>Так-то есть и C-to-Verilog конверторы, а толку?


Мда, ты прав, прав. Я же не спорю с тобой. Я уже признал что я пиздабол.

>Ну так что с регистрами и клоками


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

Кабаны, вам придется сменить интонации чтобы получать годноту на форумах, мир меняется. Ваш гоп-стоп стиль общения уже не будет работать.И вы перестанете получать бабло, ради которого живёте.
кек.jpg113 Кб, 407x604
Мозгоёбус 383 2154785
@ Заходишь в Си тред с предвкушением обсуждения кусков кода вкатышей, джоуков от видавших ram-порно олдов

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

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

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

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

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

А всё потому что порриджи не могут в холодное оружие а дерутся дилдаками и доказывают что дилдаки режут лучше клинка
"
384 2154881
>>52169
Потому что охуеешь от неочевидной ебанистики в крестах.
385 2154928
>>54881
Это еще какой?
386 2154932
>>54928
Неочевидной же.
SHIT ASS(NIGGA);
Определение объекта или объявление функции?
387 2154940
>>54932
Функции, для объекта с фигурными скобками
Мимо
388 2154946
>>54932
Хуйню высрал.
Даже если брать этот пример, то это далеко далеко явно не решающий фактор.
Алсо, >>54940 прав.
389 2154959
>>54940

>Syntax:


>ClassName ObjectName;


>>54946
Ну да, я действительно высрал код на крестах, щито поделать.

>этот прав


Лев.

>аже если брать этот пример, то это далеко далеко явно не решающий фактор


Ну был бы это единственный пример, я бы конечно согласился. Ты просил именно пример привести, ты не просил на сто страниц начинать рассказ про всё-всё-всё, это ты и сам можешь погуглить, если не можешь в кресты, а если можешь то ты ещё красочнее меня про всю эту пиздаболию расскажешь.
390 2154980
>>54959
Так я то на крестах уже давно пишу, и то что ты привел даже за пример нельзя рассматривать.
Просто си - это реально устаревшая, небезопасная, хуита, которая должна быть заменена либо на С++ либо на раст, максимум для чего может использоваться си это объявление интерфейсов к либам, которые прямо требуют совместимости с си или импорты в другие яп ( и то это тоже не безопасно ).
Но как язык, сам по себе си - кусок говна, где даже адекватных стандартизированных контейнеров еще не завезли и не завезут.
Как вообще можно расценивать язык где ты работаешь с голой памятью, и довольно слабой типизацией, где нету дженириков, и где чтобы даже написать какой-то общий объектно-подобный код напирмер контейнер аля std::vector ты этого не можеш сделать и тебе приходится приводить типы в void* чтобы хранить как-то указатели на структуры.
Короче хуита полная.
По скорости С++ не уступает Си, а в некоторых моментах даже превосходит ее из-за лучшей оптимизации, вместо кривых васяподелок имитирующих кострукции из нормальных языков.
391 2155029
>>54980
Я не говорил будто си это новая хуита, но кресты вообще нихуя не лучше если именно с си сравнивать, там все детские болезни сишки на месте, плюс свои.
Дальше не читал.
392 2155031
И больше у меня никаких примеров для тебя не будет, если ты как говоришь давно на крестах пишешь то либо ты понимаешь какое говно ешь, либо ты травмирован крестами так что никакими примерами с тобой не совладать. Так-то у приведённого примера есть далеко идущие последствия, о которых ты должен бы знать, но о которых я уже забесплатно рассказывать не буду.
393 2155040
>>55029
Да ты просто С++ не знаешь вообще, раз так считаешь.
Приведи пример какие это там детские болезни из си? С++ и Си это два разных языка уже давно, которые не совместимы друг с другом.
394 2155044
>>55040
О, это как раз вытекает из уже сказанного. Могу привести, конечно. Если приведу, ты перестанешь сопротивляться и пойдёшь нахуй?
395 2155045
>>55031
Лол, так кресты я не говорю что кресты идеал, но по крайней мере за последние годы они сильно улучшились и работа по их улучшению постоянно ведется, в отличие от богом забытого говно си, который нахуй ни кому не нужен и лучшее, что случалось с си это появление С++.
Но сравнивать си с с++ это либо надо быть полным нубом и в том и в другом, либо полным идиотом.
396 2155047
>>55044
Давно бы уже привел и я бы это быстро и легко опроверг, чем сидеть тут и копротивляться правде.
397 2155049
>>55047
То есть ты не настроен обучаться. Понятно. Тогда не смею задерживать.
398 2155053
>>55049
Ты еблан? Че за хуйню ты несешь?
Ты мне тут затираешь что си лучше с++, я спрашиваю чем, ты по факту не можешь ответить и все что от тебя я слышу это "бэ-мэ эмм кхмм эээ" вот и все. Ты просто лох, который ни си не знает, ни с++ и все чем можешь ты оперировать - это твои иллюзии основанные на чужом мнении.
399 2155054
>>55045
Что не улучшилось как это концепт — кресты были и остаются маркетинговым буллщитом, пытающимся сидеть на двух стульях — у нас с одной стороны типа ооп, с другой стороны язык типа как для неуправляемого окружения. В итоге у нас нет инкапсуляции как в компайл- так и в рантайме, т.е. нет ооп, но для неуправляемого окружения наш язык сложен и переполнен ненужным нерабочим дерьмом. Сишный код хотя бы реально дебажить.
Можно писать на крестах как на си, используя по минимуму возможности крестов, тогда будет получаться что-то рабочее. Собственно это и делается в геймдеве, где неоднократно признавались что пишут си-стайл код, но как бы формально проект на крестах, чтобы разрабов было проще найти.
400 2155056
>>55053
Мань, я по факту привёл тебе пример, и всё что ты нашлась высрать в ответ это "мм ну это нищитово это хуйня пример мне он не нравиться". Никто к тебе, собаке с гонором, не подряжался учить тебя всему на свете, тебя подрядились обоссать и обоссали.
Ты мне лучше расскажи, каким именно ты образом определяешь бегло глядя на код, чем именно является НИГГА, чтобы понять что именно за синтаксическое недоразумение перед тобой? Как только ты начнёшь отвечать на этот вопрос, ты выудишь ещё пачку СЛОЖНОСТЕЙ языка, и одну широко известную не пофикшенную с сишки детскую болезнь, которую уже давно победили везде кроме си- и крестоговна. Назовёшь какую — с тобой будет разговор.
401 2155059
>>55054
Ты хоть сам понял, что сказал? Что за неуправляемое окружение? С хуяли нет инкапсуляции? Ты о чем? Что тебе мешает дебажить с++ код?

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


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

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


Лол, ты хоть раз открывал исходники анрила?

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

>НИГГА
Ясно, и этому школьнику я еще что-то отвечаю, просто нахуй послан, тиктокерский выблядок.
402 2155064
>>55059
Да, я понял, что сказал. А ты, судя по всему — нихуя. Ещё раз, для терминальных дегенератов — я не буду бесплатно объяснять почему 2+2 это четыре, а не пять.

>огда будет точно такое же говно аля си с классами.


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

>Лол, ты хоть раз открывал исходники анрила?


Нет, и что бы мне это дало? Ах да, в мире же нет ничего, кроме одобренного лично тобой.
Дальше уже вообще какое-то каканье ртом, не на что отвечать, научись мысли оформлять в предложения.
403 2155070
>>55064

>Да, я понял, что сказал.


Конечно, твой делирий ясен только тебе.

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



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


Хуйню не неси, урод интеллектуальный.

>Нет, и что бы мне это дало? Ах да, в мире же нет ничего, кроме одобренного лично тобой.


Дальше уже вообще какое-то каканье ртом, не на что отвечать, научись мысли оформлять в предложения.
Ставит под сомнение всемирно признанный топовый игровой движок на острие технологий.
Конечно, ты не читал, тебе бы это нихуя не дало, потому что ты бы нихуя не понял, потому что ты нулина ебаная, которую я тут обоссал с ног до головы и лучше бы тебе перестать мне отвечать во избежание дальнейших унижений и траты моего времени на бессмысленные разговоры с анскильным дауном не знающим хоть малейшей матчасти того, о чем он спорит.
404 2155116
>>55070
Ага, уже читаю, чекай.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
405 2155120
>>55059

> С хуяли нет инкапсуляции?


Когда ты меняешь код в приватном члене класса, приводит ли это к необходимости перекомпиляции всех, кто этот класс использует, ответ либо да либо нет.
406 2155183
>>55116
Ты схуяли, дух анскильный, со мной в таком тоне разговариваешь? Это ты там за монитором такой смелый? Попробуй ебани что-нибудь подобное на реальном собесе по с++, если тебя оттуда ссаными тряпками сразу не прогонят, хотя бы посмеются. Хотя ты даже первоначальный отбор не пройдешь, чтобы тебя туда вызвали...

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

Долбоеб, пойми, что си язык которому уже хуева туча лет, который создавался в другие времена, когда твой дед за пару килобайт памяти в жопу давал, и что тогда были совершенно другие возможности и требования да и языки особо не умели проектировать и это было реально лучше альтернативой, чем ебашить на фортране или ассемблере, с тех пор времена изменились и те ебучие метода и конструкции, что были в си уже сейчас в современном мире не нужны ни в какой сфере, все пытаются избавиться от си, потому что понимают что это устаревшее очень небезопасное говно, на котором стабильнй софт сделать довольно трудно. Даже в ядро линукс уже сейчас раст внедряют. Никто из адекватных людей не считает си пиздатым языком. Единственный верный шаг по искоренению этого говна из мира разработки по, был создание с++, который медленно из надстройки над си перерос в совершенно другой язык, из которого постепенно выкидывали этот ебучий мусор си наследия, и до сих пор продолжают этим заниматься, потому что невозможно было моментальной перейти на что-то другое, когда существует огромнейшая база кода написанного на си. Постепенно все это легаси дерьмище переписывают на нормальные языки, но лишь бы избавиться от злоебучего си. Да ты хоть открой рынок вакансий разработчика на чистом си вообще не найти, единственная работа оставшаяся на си это поддержание\перепиливание легаси говна на нем. Все давно уже пишется на С++, драйвера, ядра ОС, критические компоненты систем различных систем, HFT, автомобильная промышленность. Просто преимущество с++ в том что ты не платишь за то что не используешь, но в то же время имеешь скорость сравнимую с нативной к железу, такую же как на си, только код получается в разы более безопасным при условии использования концепций С++ типа RAII. Вот и все. И как бы ты не тужился, как бы ты не хотел, как бы у тебя не свербило в жопе от этого, си как был говном по современным меркам так им и останется.
Так что сейчас предлагаю тебе просто пойти нахуй и больше не возникать тут.
406 2155183
>>55116
Ты схуяли, дух анскильный, со мной в таком тоне разговариваешь? Это ты там за монитором такой смелый? Попробуй ебани что-нибудь подобное на реальном собесе по с++, если тебя оттуда ссаными тряпками сразу не прогонят, хотя бы посмеются. Хотя ты даже первоначальный отбор не пройдешь, чтобы тебя туда вызвали...

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

Долбоеб, пойми, что си язык которому уже хуева туча лет, который создавался в другие времена, когда твой дед за пару килобайт памяти в жопу давал, и что тогда были совершенно другие возможности и требования да и языки особо не умели проектировать и это было реально лучше альтернативой, чем ебашить на фортране или ассемблере, с тех пор времена изменились и те ебучие метода и конструкции, что были в си уже сейчас в современном мире не нужны ни в какой сфере, все пытаются избавиться от си, потому что понимают что это устаревшее очень небезопасное говно, на котором стабильнй софт сделать довольно трудно. Даже в ядро линукс уже сейчас раст внедряют. Никто из адекватных людей не считает си пиздатым языком. Единственный верный шаг по искоренению этого говна из мира разработки по, был создание с++, который медленно из надстройки над си перерос в совершенно другой язык, из которого постепенно выкидывали этот ебучий мусор си наследия, и до сих пор продолжают этим заниматься, потому что невозможно было моментальной перейти на что-то другое, когда существует огромнейшая база кода написанного на си. Постепенно все это легаси дерьмище переписывают на нормальные языки, но лишь бы избавиться от злоебучего си. Да ты хоть открой рынок вакансий разработчика на чистом си вообще не найти, единственная работа оставшаяся на си это поддержание\перепиливание легаси говна на нем. Все давно уже пишется на С++, драйвера, ядра ОС, критические компоненты систем различных систем, HFT, автомобильная промышленность. Просто преимущество с++ в том что ты не платишь за то что не используешь, но в то же время имеешь скорость сравнимую с нативной к железу, такую же как на си, только код получается в разы более безопасным при условии использования концепций С++ типа RAII. Вот и все. И как бы ты не тужился, как бы ты не хотел, как бы у тебя не свербило в жопе от этого, си как был говном по современным меркам так им и останется.
Так что сейчас предлагаю тебе просто пойти нахуй и больше не возникать тут.
407 2155199
>>55183
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
408 2155222
>>55199

>пук от малолетнего шкета


Лол даже не читал, иди мамке своей права качай
409 2155314
>>55222
Чё типа у меня подгореть должно от того что ты за мной повторяешь? Напротив, мне приятно видеть твою бессильную злость.
410 2155330
>>54980

>Как вообще можно расценивать язык где ты работаешь с голой памятью, и довольно слабой типизацией, где нету дженириков, и где чтобы даже написать какой-то общий объектно-подобный код напирмер контейнер аля std::vector ты этого не можеш сделать и тебе приходится приводить типы в void* чтобы хранить как-то указатели на структуры.


>Короче хуита полная.



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

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

>Тогда из других языков был фортран, кобол и ассемблер, первые два для системного программирования не шибко годились, поэтому компиляторы деды писали на асме. Вот и подумай, каких усилий бы стоило им включить в язык дженерики? Ты бы еще начал жаловаться на то, что в начале 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. По-моему, очень круто! Ну, программистам скорее всего такой расклад не очень понравится — мало кто любит быть винтиком в системе.

411 2155378
>>55314
Омега-униженец, ты еще тут? Я думал уже ты совершил героический самовыпил и очистил этот мир от своих наивных шизоидных фантазий о языках программирования. Нет, же ты все просишь еще мочи себе лицо, снова и снова. Как только у тебя хватает терпения, выносить такое обращение к себе? Наверное ты какой-то мазохист извращенец который любит себе дергать анус и когда его макают в говно.
Пойми, ты просто тупая бездарность, которая никогда никем не станет и твой максимум это сидеть в этих тредах и кидаться чужим мнением без какого либо понимания сути, я это понял, кто ты только начал открывать свой рот и откуда стал выливаться этот бессмысленный шизойдный бред тупорылого школьника с синдромом дефицита внимания. Ты же просто больное животное, которое возможно еще и опасно для общества, я бы на месте твоих родителей вообще бы усыпил тебя, от греха подальше, чтобы не убил случаем никого, хотя ты скорее всего такое омежъе чмо, что в реальности вряд ли тебе хватает смелости даже открывать свой рот и отрывать взгляд от пола, лол.
Просто обдаю твою тупую физиономию измазанную в говне за все эти посты еще мощной струей своей мочи и пойду открою себе пива, а потом выебу свою топ тян, пока ты будешь с дрожащими руками набивать мне свой жалкий ответ, на то что тебе все равно, про свои бредовые ААА ССС БББ и прочий твой шизойдный бред который мне абсолютно не интересен.
Просто почувствуй разницу: я сеньор на высокооплачиваемой работе, а ты жалкий безработный анскил над которым я глумлюсь убивая пару мин своего свободного времени, в перерыве между важными делами. Харьк тфу на тебя, животное))

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

>Тогда из других языков был фортран, кобол и ассемблер, первые два для системного программирования не шибко годились, поэтому компиляторы деды писали на асме. Вот и подумай, каких усилий бы стоило им включить в язык дженерики? Ты бы еще начал жаловаться на то, что в начале 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. По-моему, очень круто! Ну, программистам скорее всего такой расклад не очень понравится — мало кто любит быть винтиком в системе.

412 2155398
>>54980

>Как вообще можно расценивать язык где ты работаешь с голой памятью


Самое смешное что в крестах ты точно так же работаешь с голой памятью, ровно с момента как в твоей программе появляется баг.
Всё, вася, нет тут больше твоих объектиков сраных, потому что кресты это язык для стрельбы в ногу, такой же как си, но только себя таковым в силу субъективных причин не считающий. Любой указатель в любой точке кода в любой момент позволяет взять и переписать любой участок твоей говнопрограммы, хоть всю её дерьмом залить, и ебал он в рот твои прайваты, и удачи тебе, когда ты писал объектики, но дебажишь ОПЕРАТИВНУЮ ПАМЯТЬ перемешанную с говном. Это тебе не джавы с питонами, где рантайм физически не позволит программе залезть и поменять приватный член класса, это кресты это хардкор, это не для слабых.

>где нету дженириков


А какие дженерики есть в крестах? Кривые и убогие. Они не являются кодом (но при этом они разворачиваются только во время компиляции и никогда иначе), они перекомпилируются по 100500 раз потому что в крестах, как и в си, нет возможности находить местоположение кода по его имени и т. д. и т. п.
В си, как и в крестах, есть макросы, поэтому говорить об отсутствии метапрограммирования в си просто смешно.
413 2155399
>>55378
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
414 2155415
>>55398

>крестах ты точно так же работаешь с голой памятью, ровно с момента как в твоей программе появляется баг.


Если ты криворукий уебок пишущий на си с классами то да, а если нормальный пацан, пишущий на с++ то нет.

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


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

>А какие дженерики есть в крестах?


Очень мощные, называется метапрограммирование.

>разворачиваются только во время компиляции


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

>они перекомпилируются по 100500 раз


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

>В си, как и в крестах, есть макросы


>метапрограммирования


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

>>55399

>МАААААМ СКОЖИ ЕМУ МААААМ Я НЕ ДАУН


>ВЫБЕРУ СТРАТЕГИЮ ТУПОГО РЕФОРСА СООБЩЕНИЙ.

415 2155417
>>55415
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
416 2155429
>>55116
Я тут мимо проходил, но что-то странный вопрос какой-то.

>Чем является CCC, опиши алгоритм как это узнать, время пошло.


очевидно, нужно всего лишь нажать # (?\<word\>) и увидил, откуда этот CCC пришёл.
Ну, то есть, прочитать ранее идущий код, как ещё-то можно что-то узнать? Либо посмотреть, что такое BBB и что принимает на вход.
Или что ты услышать тут вообще хочешь?
417 2155444
>>55429
На сколько я понял из его шизойдного делирия, он имеет ввиду типа чем является такое выражение: объявлением функции или инстанцированием объекта, в некоторых случаях компилятор это может не понять, чем из этих двух является такое выражение и вываливает ошибку, но ему уже десять раз тут сказали что в С++ давно уже пишут для объектов TYPE NAME{ARG} для объектов. Но этот даун видимо недавно прочитал кусок от десятилетней книжки Майерса где он разбирал такой пример и теперь козыряет своим единственным аргументом который он знает.
418 2155467
>>55378

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


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


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


>Просто почувствуй разницу: я сеньор на высокооплачиваемой работе, а ты жалкий безработный анскил над которым я глумлюсь убивая пару мин своего свободного времени, в перерыве между важными делами. Харьк тфу на тебя, животное))



Ебать, наконец-то годнота, достойная олдов дотатреда. Схоронил.
419 2155469
>>55467
>>55444
>>55429
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
420 2155471
Самый шизоидный тред из всех, которые я когда-либо видел в /pr за всю свою жизнь.
421 2155559
>>55471
Как что-то плохое. Шизоиды как раз и меняют мир,остальные только потребляют ресурсы.
422 2155609
Не понял пример, который он привел.
При объявление функции нужно указывать тип параметра. При определение объекта нет.

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

О чем речь вообще?
423 2155657
>>55444
Скрыто с первых слов. Учись в коммуникацию.
Если я в первых строках не вижу объяснения как ты будешь понимать чем является НИГГА в первоначальном примере — я не вижу от тебя конструктива, соответственно не ощущаю в себе желания с тобой дискутировать. Сначала объясняешь, как выясняешь чем является выражение внутри скобок AAAAA BBBB(CCC); , далее с тобой может вестись какой-то разговор, в противном случае ты либо вообще не понимаешь о чём речь, и в этом случае ты не нужен, либо понимаешь и знаешь куда это тебя заведёт, и боишься обосраться потому что ты крутой и пришёл всем всё доказывать, а не узнавать новое, и в этом случае ты не нужен вдвойне. Чем является CCC, опиши алгоритм как это узнать, время пошло.
424 2155658
>>55429
Речь о том, что ответ на этот вопрос вскрывает убогость крестов (и сишки, раз на то пошло, но сейчас речь о говнокрестах, которые в перформанс задачах сосут у си, которая в 100 раз проще а недостатков столько же, если не меньше, а в неперформанс задачах у любого динамического языка). Как узнать, чем является ССС, чтобы понять в итоге, что же за конструкция перед нами описана? Надо найти, где он объявлен. Как это выглядит в НОРМАЛЬНЫХ языках? В нормальных языках есть понятие модулей: нам нужно найти модуль, в котором определён ССС. Это либо тот же самый модуль (и тогда его надо скомпилить один раз), либо это какой-то другой модуль и ССС там объявлен как экспортный, и тогда тот модуль тоже надо скомпилить. Всё. Так это происходит в нормальных языках. Что же происходит в топовых-на-острие-прогресса крестах? Ну а в крестах у нас нет модулей, у нас есть препроцессор родом прямиком из си, который копипастит текст файлов прямо в наш компилящийся файл. Результатом этого является то, что каждый файл в нашей программе нужно скомпилировать столько раз, сколько раз он был включён в другие файлы.
Что-то подобное я хотел услышать, но блядина никогда этого не скажет, она будет жрать говно и нахваливать.
425 2155659
>>55609
И сходу ясно, чем именно является n — типом или объектом?
426 2155681
>>55657

>Учись в коммуникацию


У меня вышка по этой хуйне
old.jpg61 Кб, 512x512
427 2155726
>>55658
Униженный шизофреник, ты все прододжаешь сглатывать мочу и просишь добавки?
Во-первых, ты больное животное, сначала научись формировать свои шизойдные мысли в нормальные предложения, прежде чем писать сюда что-то. Этот сумбур из маняфантазий шизофреника просто читать невозможно.
Во-вторых.

> крестах у нас нет модулей


Опять же ты сосешь, как жалкая дешевая шлюха, которую ебут таджики за пачку ролтона.
https://en.cppreference.com/w/cpp/language/modules
А все почему? Да потому, что, как я и раньше сказал, ты ничтожество не знающее ни си ни с++.

>которые в перформанс задачах сосут у си


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

>которая в 100 раз проще а недостатков столько же


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

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


Просто орнул с этого.

Выебаная в жопу макака, перестань уже унижаться и просто заткни свой вонючий рот, полный говна, пока туда еще кто-нибудь не насрал, лол.
428 2155806
>>55659
Да, никто не будет называть переменную int, char или Class. А если назовет, то уверен, что компилятор заорет, хотя бы варнингом, не проверял если честно, так как не встречался никогда с таким и даже мыслей не было о подобном изврате.
429 2156177
А чего вы тут срётесь с С++-шизиком? Вот когда рантайм крестовый с модулями, контейнерами и дженериками будет влезать в 10 кбайт, то тогда и поговорим с ним о необходимости Си.
430 2156181
>>56177
Лол, мань, если ты микроконтрелер шизик, то можешь не подрубать stdlib и писать без шаблонов, всяко будет лучше чем на говноси.
Тем более

>10кб


Вспомнил времена когда твой дед в жопу за 10 килобайт давал.
431 2156237
>>56177
крестовая стандартная библиотека большей частью это шаблоны в хедерах, она будет занимать столько, сколько ты их нее используешь
432 2156577
Ну и какой мудак забыл закрыть дверь в подъезд?
Проник с++ бомж чтобы погреться, завонял весь падик. Теперь сами и выгоняйте эту мразь, и проветрить не забудьте
433 2156873
Я начинал с плюсов. Первое неудобство при переходе на си было отсутствие new и delete[], а также отсутствие горячо любимых компонентов библиотеки vcl и обвязки из борландской среды. Зато можно хватать байты голыми руками за минимальную себестоимость. )
434 2156879
>>56873

>отсутствие new и delete


Еще и классов нет, бидапичаль
435 2157134
>>56879
А точно; конструктор, деструктор... :'-(

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

С того времени я в СИ пишу иначе.
int
a, *b;
Так логичнее. Однако такое написание можно встретить не всегда.
436 2157139
int# a, b;
...
int #a, #b;
437 2157159
>>56873
а че в си перекатился?
микроконтроллеры прогать начал?
438 2157165
>>57139

>int# a, b;


Так только пориджная петушня пишет
439 2157166
>>57159

>а че в си перекатился?


Волосы на лобке наверное выросли
440 2157185
>>57165
а как надо?

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

оффтоп, книга из шапки "Си: грязные истории" не гуглится, кто вкурсе что за она, помогите найти ее
441 2157187
>>57165

>Так только пориджная петушня пишет


https://www.programiz.com/c-programming/c-pointers
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/unsafe-code

>>57159
Не могу ответить конкретно; по сложному комплексу причин и обстоятельств. В плюсах много лишнего; мне импонирует аскетизм.
442 2157190
Минимализм то есть.

>>32120

>Дишка лучше крестов, ржавого и говняшки.


У меня проект с разделяемой памятью, сигналами реального времени, возможно многопоточностью и внушительным препроцессором. Это всё поднимаемо на ДИ? Если учесть, что написаны только наброски на СИ, стоит ли переписывать всё на ДИ, попутно ещё его и изучая, и далее продолжить писать уже на нём?
443 2157714
>>57185
Хорошим тоном является объявление поинтеров всегда на отдельной строчке.
444 2157880
>>57714
>>57165
Кстати об указателях. Можно ли как-нибудь в одну строку объявить статический объект и указатель на него же? Т.е. Вот это вот:

>static char buf[10] = {0}


>static char p_b = &buf;


Соединить в одну строку. Мне даже и и переменная "buf" как таковая нафиг не нужна, к объекту только по указателю обращаюсь.
445 2157926
Здравствуйте ребята. Есть тут, кто хорошо разбирается в Сишном компиляторстве? Не получается скомпилировать проект onionphone ставил mingw, cmake, cygwin на винду, пытался запустить в папках make.exe и mingw32-make.exe выходила ошибка, что файл не найден с разрешением .o и пишет что-то типа Error 2 (e=2). Пытался поставить eclipse и скомпилить разными способами в нем, но все никак не получилось. Поставил убунту, скачал на нее эклипс, mingw64, скомпилить так и не получилось в общем. В линуксе ошибка, что не видит make в PATH. Пошуршал в папках линуксовых, так и не нашел make, но если я ставил mingw то он же где-то должен быть?!
446 2157949
>>57926
Коде блок не пробовал?
447 2157954
>>57926

>к и не нашел make, но если я ставил mingw то он же где-то должен быть?!


Он там как mingw32-make переименуй его в make
448 2158039
>>57954
Переименовывал. Выдает ошибку e=2.
449 2158041
>>57949
Через саму программу нет. Пробовал в эклипсе выбирать разные компиляторы. Вечером попробую поставить кодблок и через него скомпилировать.
450 2158233
суп
двачик, я обосрался жиденько. суть: заебала вс студия, накатил clion. в нём какого то хуя не возбуждался компилятор/дебаг, я такой "ок" накатил minGW, нихуя не возбудилось ничего, я такой "ок", снёс minGW папку, снёс слион, переустановил слион, и... снова нихуя. докучи накатил кодблокс, но он тоже не возбуждается, типа мингв не обнаружен. мингв снизу справа выкидывает окошко с ошибкой, типа "файлы не найдены"( логично, лол, папку то я снёс для переустановки). в итоге что я имею? мёртвый кодблокс, мёртвый силион, фантомный минГВ (в PATH его нет, но он каким то раком выкидывает мне ехидное окошко ошибки). что я делаю не так помимо моего существования и как это исправить. ось вин10
451 2158237
>>58233
так. я обосрался в квадрате. ошибку выдаёт кодблокс, что не найден компилятор.
452 2158246
>>58233

> как это исправить


1. Накатить ЖМУ/Пинус
2. Минимально освоить пакетный менеджер, vim, make и git
3. Даже не притрагиваться к отладчику первый год
453 2158274
>>58246
линукс поставить не могу, по причине собственной никчёмности, разумеется (нет, это никак не связано с ПО для работы, я просто днище, ага).
что такое вим, мейк, пакетный менеджер и гит первый раз слышу (нет)
отладчик мне и не нужен, по крайней мере в с/с++, ничего что требует отладки я на этих языках не пишу.
а знаешь что мне действительно нужно? понять что я блять наебнул в своём компе, что у меня не работает ранее работавший кодблокс хотя бы.
454 2158290
>>58274
Так. я принял душ и пофиксил кодблокс. кажется не спать два дня было плохой идеей и я немного разнервничался. да и с мингв я разобрался. пожалуй пойду посплю, вопросов больше нет.
455 2158563
>>58290
Ты ещё поспи - и Линукс поставишь.
16175598119650.png10 Кб, 960x104
456 2158606
Я уже не понимаю че надо делать. Пробовал через кодблокс, визуал студию поставил посмотреть может она что-нибудь сделает, пздц какой-то неделю не могу скомпилить проект.
457 2158623
>>58606
Анонче, тебе уже посоветовали годноту в этом посте >>58246.
Не ленись, попердолься пару дней и все у тебя наладится. По личному опыту скажу, что после линукса на окнах кодить не возможно.
16175598119650.png4 Кб, 1288x132
458 2158624
>>58606
Через кодблокс такая ошибка кстати, и что очень странно один файл с разрешением .h не находил в проекте хотя он там был пришлось тупо копипастнуть код вместо инклуда, но от ошибке в прикрепленной пикче уйти не получается.
459 2158630
>>58623
Все бы ничего, но проект не мой и собран на мейкфайлах, мне лишь его скомпилировать нужно и достать от туда экзешники для своего диплома в уник. Но я все равно уже и линукс поставил и на нем попердолиться успел так ничего и не получив.
460 2158643
>>58630

>мне лишь его скомпилировать нужно и достать от туда экзешники для своего диплома в уник.


Могу помочь, если исходники дашь.
461 2158644
>>58643
Я был бы очень при очень при очень благодарен, анон!

https://github.com/gegel/onionphone

Вот тут в папочке libcodecs все.
462 2158647
>>58644
Тебе весь проект компилировать или только libcodecs?
463 2158649
>>58647
Можно просто libcodecs
464 2158674
465 2158677
>>58674
Ну впринципе да, спасибо большое анон!
466 2158678
>>58677
Не за что. А что за тема у диплома, если не секрет?
467 2158680
>>58678
Не секрет. Исследование методов передачи речи при наличии ошибок в канале связи. По сути хотел собрать .bat файлы которые вызывают экзешники кодеков и делают разные манипуляции с ними. Сжатие, перевод в блокбитовое состояние, добавление ошибки или без нее и потом разжатие. Все это на разных скоростях нужно проделать. Составить объективные и субъектинвные оценки, ну и быстроту каждого кодека оценить. Желательно было сделать это на распберри, чтобы скорость точнее определить, но мне бы пока что хотя бы на винде это все собрать.
468 2158810
Может ли что-то пойти не так, если я в юнионе буду иметь только uint атрибут, но запишу туда число со знаком (чтобы и прочитать потом назад со знаком тоже)?
Или всё же лучше иметь два и в них писать в зависимости от типа переменной?

Вот примерно так: https://ideone.com/S3PttS
Можно ли иметь лишь data2_t (проще/меньше писать, и вроде работает), или строго лучше только data1_t? Не очень в курсе, как именно пройдёт конвертация переменной из возможно int32_t в uint64_t, наверняка же может знаковый бит где-то пропасть? Или будет int32_t -> int64_t -> uint64_t? Как-то спецификация это оговаривает?
469 2158949
С AVR можно до вас доебаться? Или лучше пойти поискать ардуинщиков?
470 2158954
Где еще этих ардуинщиков искать, вот в чем вопрос.
471 2159288
>>58810

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

а так самому интересно, нет ли ub в касте отрицательного инта к беззнаковому?
472 2159310
>>59288
Я, очевидно, просто упростил и убрал все другие элементы юниона, чтобы лишним не засорять. Там как struct'ы, так и без них, поэтому сделать как в твоём коде не получится.

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

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

запускаться это всё будет, если что, на stm32
473 2159343
>>58949
>>58954
У них, вроде бы, тред в /ra/ есть, посмотри там.
Если не найдешь, то в /hw/ зайди
474 2159390
>>59343
В радио уже пролистал, не нашел. Пойду в хард.
475 2159408
>>59390
Значит умер, раньше там всегда был. Можешь у СТМщиков спросить, всяко ближе, чем тут. Если только у тебя не по, собственно, коду вопросы.
476 2159465
Первый раз воспользовался реаллоком... Оказалось, он плюхает, куда взбредёт; а у меня адресная арифметика. Переделал. А жаль, что нет таких флагов.

>>59390

>В радио уже пролистал, не нашел. Пойду в хард.


https://www.linux.org.ru/tag/avr

Кстати, там на лоре можно 2 тега выставить? Иногда нужно бывает. Кто знает?
477 2159620
>>59408
У меня-то по коду вопрос, но он про авр соответственно.

Допустим есть два микроконтроллера, нужно передать один байт данных от одного к дугому как можно быстрее.
Загвоздка в том, что доступны только четыре ноги из порта а (atmega32), то есть никакие серийные протоколы (uart, spi, i2c) передачи использовать не получится. Прерывания как на передатчике, так и на приемнике тоже использовать нежелательно, так как они могут замедлить основную программу.
Как это сделать наиболее оптимально?
478 2159626
>>59620
Освобождаешь ноги на которых uart/i2c сидит, очевидно же. Либо пишешь программную реализацию какого-нибудь протокола для свободных ног.
479 2159725
>>59626

> Освобождаешь ноги


Эй, программист, полегче. Плата уже спаяна, ничего там освободить не получится. Задача не в этом.

> Либо пишешь программную реализацию какого-нибудь протокола для свободных ног.


Вот в этом собственно задача.
480 2159850
>>59620

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


Ничего быстрее правильно написанного прерывания не существует.
Из других вариантов: постоянный опрос в цикле или по таймеру. Вот это легко замедлит основную программу.

>передать один байт как можно быстрее


Очень плохая постановка вопроса. А что 2-го байта не будет? Нужна частота передачи данных и периодичность, если данные передаются не постоянно.
Но на 4 пинах ничего быстрее spi все равно нет. Делай программный SPI. Если передача в одну сторону, делай 2 битный SPI, как в sd картах.
481 2160456
Я правильно понял, что в visual studio нет встроенного компилятора для С ?
482 2160488
>>58630
>>58644
Лол, так тебе надо было брать gstreamer и не ебать мозги.
>>58680
Какой пиздец. Даже дауну должно быть очевидно, что победят SILK (потому что внутри самого кодека есть FEC) и Opus (потому что там внутри SILK для речи). Остальное же окаменелое говно эпохи GSM всосет, потому что их пускают уже поверх канала с какими-нибудь турбокодами, что у тебя даже не предполагается в сетапе. Пидорашье образование в своем репертуаре.
>>59620

> доступны только четыре ноги из порта а (atmega32)


> то есть никакие серийные протоколы (uart, spi, i2c) передачи использовать не получится


Я в упор не понимаю каким образом ты сделал такой вывод. Вешай SPI на эти четыре ноги, как >>59850 говорит и не еби мозги.
>>60456
RTFM, блядь: https://docs.microsoft.com/en-us/cpp/build/reference/compiler-options Там внутри cl.exe, он собирает как крестовый код, так и просто сишный.
483 2160756
>>60488
Аахахах, про пидорашье образование даже спорить не буду. Но за gstreamer почитаю, спасибо)
484 2160819
>>19301 (OP)
От всего тредика проголосовал за Единую Россию.
485 2161491
>>60819
от всего тредика закинул тебе защекоинов
486 2161586
>>61491
Спасибо, ЕР опять выиграла, ура!
1005667373[1].jpg64 Кб, 486x700
487 2162147
блять как у вас хватает терпение читать это говно?
и это по вашему лучший учебник по си? охуеть
488 2162150
>>62147
Че там читать? Тоненькая книжка половину который необязатеьный аппендикс.
489 2162159
>>62150
ну начнём с того что программы из этой книги не компилятся. просто копируешь вставляешь и нихуя. какого хера я сам должен догадываться методом тыка почему она не рабоатет??
во вторых абсолютно не объясняются некоторые термины, опять самому догадываться. приходится гуглить, хуюглить, короче пиздец, учебный процесс превращается в непойми что, повезёт если догадаешься, что имели в виду авторы

есть вообще в природе нормальный учебник по си?
Си для программистов.7z.png2,8 Мб, 300x420
491 2162171
>>62147
Вот еще хороший учебник.
492 2162206
>>62159
Дебич бери нативный вариант, в переводе дохера опечаток.
493 2162500
>>62206

>нативный вариант


Не, сейчас Китай развивается - пусть поищет в китайской литературе.
494 2162580
>>55378

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



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

Это понятно, что к исполняему файлу линкуются все необходмые библиотеки и он будет работать на любой конфигурации и версии целевой платформы, но всё равно это хуёвый подход и место голангу только в кластерах. Нахуй нахуй.
495 2163218
>>62580
Кстати вот попробовал скомпилить пустой проект на дланг. Очень удивился, когда увидел почти 10МБ-ный бинарник. Ну чушь же. Там не было даже стандартной библиотеки. Нашёл в нете совет воспользоваться утилитой стрип для сброса прилинкованного мусора, но та всё-равно пару мегов оставляет. А проект же абсолютно пустой, абсолютно. Это дланг - прямая надстройка над си.
496 2163228
Это важно хотя бы потому, что каждый раз при компиляже генерить 10МБ - заметная задержка, насилие диска и цпу; это даже помимо просто размера как такового.
497 2163254
>>62580
Так это ж регулириется вроде, флагами какими-то. Можно в .so собирать зависимости, а не мегаебу.
Мимокрок
498 2163430
>>63218
Если хочешь мелкие бинарники, то используй betterC - это урезанная дишка, практически сишка.
499 2163529
>>63430
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 )))
500 2163647
>>62147
Двачую. Прата намного лучше старается разжевывать.
image.png92 Кб, 442x444
501 2164319
Автор этого шедевра здесь?
Где вообще можно почитать о таких фишечках и хаков с языком?
мимо джун
502 2164322
>>62147
Сейчас бы классику не осилить...
503 2164537
>>64319
мимо даже не джун, но нихуя не понял почему это шедевр?
это же херня какая-то, нахера вообще такое делать?
504 2164540
>>64537
На случай отсутствия инструкции сложения в процессоре, вероятно.
505 2164549
>>64540
чего блядь? это вообще как?
506 2164557
>>64540
и почему тогда компилятор не изъебывается?
по-моему в любом стандарте си есть сложение, а значит ты либо пиздобол, либо слишком тонко чтобы я понял что это тролинг
507 2164571
>>64557
>>64549
Да я пошутил просто, чего вы сразу.
508 2164579
>>64537
На картинку серьезного внимания не обращайте. Лучше на вопрос ответьте, есть ли какая нибудь книга с хаками и фишечками по Си?
509 2164581
>>39020

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


не только это. ещё важно писать безглючный код, который верно работает. производительность да - не шибко критична
510 2164662
>>64579
Ричард Хэзфилд, Лоуренс Кирби и др.
Искусство программирования на С.
Фундаментальные алгоритмы, структуры данных и примеры приложений.
Может эта? Сам ещё на середине Праты, эту следующей хочу смотреть.
511 2164917
>>64322
да пошёл ты нахуй пидарас со своей классикой, индусы на ютубе и то лучше объясняют
512 2165113
>>64917
индус, залогинься
513 2165245
>>64917

>да пошёл ты нахуй пидарас со своей классикой, индусы на ютубе и то лучше объясняют


А что там обьяснять-то, блядь? Сам язык очень простой.
514 2165284
>>65245

>Сам язык очень простой.


Сколько лет программируешь на Си?
Попробуй написать синатксический анализатор, чтобы хавал 100% Си кода и охуеешь насколько он простой.

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

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

Только не говори что ты это знал.
515 2165347
Чего не перекатываете?
516 2165402
>>65284
даже я это знал

мимо другой анон, который вкатился в си по приколу пару месяцев назад, и еще когда-то давно на си писал в унике лабы
517 2165437
>>65284

>Попробуй написать синатксический анализатор, чтобы хавал 100% Си кода и охуеешь насколько он простой.


Сложность самого языка и сложность программирования на нем - это разные вещи. Си - один из самых простых языков, в нем почти ничего нет, кроме основных конструкций и типов. Но чтобы писать на нем что-то годное, необходимы большие компетенции.
519 2185811
>>62168
Я читал как-то Шилдта. Он хуйню пишет безграмотную порой. Надо Страуструпа читать.
520 2185815
>>64579
Не знаю про хаки. Есть книжечка Hacker's Delight
автора Henry S. Warren Jr.
Вот там куча разных интересных трюков
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 20 января 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски