Сохранен 501
https://2ch.hk/pr/res/2245329.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C Programming Language #72 /clang/

 Аноним OP 22/12/21 Срд 18:45:44 #1 №2245329 
C Programming Language.png
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь 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 помогает читать сложные сишные декларации.

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

- №69: http://arhivach.net/thread/688454/
- №70: http://arhivach.net/thread/713839/
- №71: http://arhivach.net/thread/727405/ >>2165466 (OP)
Аноним 22/12/21 Срд 21:15:45 #2 №2245453 
>>2245329 (OP)
Просвятите.
Почему на C пишут для железа чаще чем на C++?
Репозиторий ReactOS на гитхабе написан почти весь на C.
Так удобнее или есть другие причины?

Что в 2022 актуально делать на C?
Аноним 22/12/21 Срд 22:37:31 #3 №2245495 
>>2245453
>Почему на C пишут для железа чаще чем на C++?
Потому что у С++ overhead чуть повыше. (особливо если не очень понимаешь, во что выродится твой код) Потому что exception будут недоступны (их можно отключить ключами компиляции).
Ну и просто потому что так повелось. На самом деле причин против С++ не так много.
Ну и конечно молодые долбоящеры будут пихать везде копирование, вместо ссылок.
Аноним 22/12/21 Срд 22:41:17 #4 №2245499 
>>2245453
>Что в 2022 актуально делать на C?
Линковать с С++ кодом - очевидно же.

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

30 центов разницы в цене при многомилионных тиражах имеют значение.
Аноним 23/12/21 Чтв 00:38:08 #5 №2245552 
>>2245495
> Потому что у С++ overhead чуть повыше
Чтобы убедиться, что это не так, нужно всего лишь... хоть раз реализовать ADT на Си или хоть раз прочитать про constexpr

>>2245453
> Так удобнее или есть другие причины?
Единственная причина - читаемость и, соответственно, предсказуемость.
Аноним 23/12/21 Чтв 10:56:44 #6 №2245708 
>>2245552
Чтобы убедиться, что это так, нужно всего лишь заменить string (с new) на чары в статических буферах. Или забыть расставить магию в виде nothrow.
>ADT
А какой у них overhead в сишечке.
Аноним 24/12/21 Птн 00:44:15 #7 №2246490 
>>2245708
> А какой у них overhead в сишечке.
Воид поинтеры и соответственно дополнительные маллоки, дополнительные дереференсы и дополнительные копирования (нужное подчеркнуть). Не говоря уже об отсутствии возможности у компилятора сгенерировать качественный код под конкретный тип. Да, в Си можно делать шаблоны на дефайнах, но это крайне неудобный способ. Алсо, в сишке можно посмотреть на колбек в qsort и сразу все понять.

> заменить string (с new) на чары в статических буферах
На крестах можно писать свои дешевые реализации под задачу с любым количеством нечитаемой магии.
Аноним 24/12/21 Птн 09:02:08 #8 №2246588 
>>2246490
>соответственно дополнительные маллоки
А в плюсах у тебя типа данные волшебным образом размещаются на стеке, да? А потом происходит возврат из текущей функции и приходит дядя Сегфолт Бахометыч
Аноним 24/12/21 Птн 09:06:54 #9 №2246591 
>>2246588
В плюсах данные можно передавать по значению во всякие алгоритмы/типы, потому что шаблоны.
Аноним 24/12/21 Птн 09:10:34 #10 №2246592 
>>2246490
>Воид поинтеры
Необязательно. Узлы дерева или списка включаешь в свою структуру, потом containerof в помощь.
Аноним 24/12/21 Птн 10:46:02 #11 №2246637 
в преддверии хочу написать, что хотя и зашёл сюда за этот года раз 5, успел оскорбить кого только можно. но это не потому что я пидорас (хотя и это тоже) но просто это как-то нас заставляет двигать жопой, что ли. извините меня, ребят.
Аноним 24/12/21 Птн 14:46:13 #12 №2246825 
>>2246637
пошел нахуй!
Аноним 24/12/21 Птн 15:02:08 #13 №2246850 
>>2246591
Так откуда эти данные берутся, из жопы волшебной феи или из operator new, являющегося обёрткой над malloc?
Аноним 24/12/21 Птн 17:59:06 #14 №2247001 
>>2246588
В плюсах у меня есть placement new, и размер я знаю заранее, поэтому могу разместить объект где угодно, хоть на стеке, хоть >>2246850 в жопе волшебной феи. Опять же, у нас в Си тоже так можно, но сложнее, поэтому приходится каждый раз переизобретать структуры данных под конкретный проект, если важна производительность.
Аноним 24/12/21 Птн 19:57:42 #15 №2247084 
Зацените прогу, задание 1.4 из K&R написать программу для перевода цельсиев в фаренгейты

https://ideone.com/zlQ1k1
Аноним 24/12/21 Птн 20:49:59 #16 №2247117 
>>2247084
Вместо
int upper;
upper = 200;

пиши сразу int upper = 200; Мы не в 89 году слава богу, и так можно. Более того создавать переменные как можно ближе к месту их использования - хороший тон.
Аноним 24/12/21 Птн 21:14:40 #17 №2247138 
>>2245552
adt на си вообще без накладок можно на макросах делать, так в коде freebsd было сделано как то
а так да, все пердолят через указатель на неопределенный тип, потому что и привычней, и отладка работает, и через границы динамически загружаемых модулей удобно ходить

Аноним 24/12/21 Птн 21:15:44 #18 №2247139 
>>2246490
даже добавить нечего, все так
Аноним 24/12/21 Птн 21:18:11 #19 №2247140 
>>2246588
ага, в том числе, есть элегантные обертки того что на стеке размещается, даже есть стандартизированный std::array из коробки
Аноним 24/12/21 Птн 21:55:06 #20 №2247178 
>>2247117
Так можно было и в 78.
>создавать переменные как можно ближе к месту их использования - хороший тон.
Вкусовщина.
Аноним 25/12/21 Суб 01:15:50 #21 №2247296 DELETED
>>2247117
>как можно ближе к месту их использования - хороший тон
Хуевый тон
Аноним 25/12/21 Суб 01:29:19 #22 №2247304 
>>2247296
> Хуевый тон
Нет не хуевый. В С89 заставляли совать декларации в начало не для того, чтобы ты кушал и нахваливал. Просто технические проблемы тех времен, однопроходные компиляторы, было проще знать размер стекфрейма заранее. К счастью, те времена давно прошли, и смысла в этом ограничении больше нет.
Аноним 25/12/21 Суб 01:37:07 #23 №2247306 DELETED
>>2247304
>Нет не хуевый
Хуевый. Если все переменеые обьявить в начале функции, то они все перед глазами, если пидары раскидали их по всему телу, то это очень хуево.
Аноним 25/12/21 Суб 01:46:18 #24 №2247313 
>>2247306
> Если все переменеые обьявить в начале функции
То ты не только при изменении функции, но даже при чтении будешь прыгать туда-сюда, потому что какие-то пидары раскидали связанные по смыслу куски кода в разные места исходника. А еще ты очень часто лишаешься инициализации при объявлении, что делает твой код еще более ущербным. Зато ты можешь продолжать дрочить на технологии семидесятых.
Аноним 25/12/21 Суб 01:59:24 #25 №2247316 DELETED
>>2247313
>будешь прыгать туда-сюда
В редакторах можно делить окна
>раскидали связанные по смыслу куски кода в разные места исходника
Как это связано с переменными?
>лишаешься инициализации при объявлении
Высосаное из пальца преимущество
>на технологии семидесятых
Словно что то плохое
Аноним 25/12/21 Суб 02:23:53 #26 №2247322 
>>2247316
> Высосаное из пальца преимущество
Действительно, вот почему во все языки массово тащат const, а в Си const принято только указателям расставлять - это чтобы анон мог не только оторвать переменную от использующего ее кода, но еще и значение этой переменной где-то в третьем месте задать. Зато как здорово код читается!

> В редакторах можно делить окна
Замечательно. Нам нужен специальный редактор, чтобы дрочить на багофичи семидесятых.
Аноним 25/12/21 Суб 02:30:49 #27 №2247323 DELETED
>>2247322
>во все языки массово тащат const
Константы не нужны, даже в плюснявом коде их стараются не использовать
Аноним 25/12/21 Суб 03:07:41 #28 №2247327 
>>2247306
Нахуя тебе переменные перед глазами, если ты не видишь кода который их использует?
>>2247323
Константы хорошо описывают иммутабельную природу переменной.
Аноним 25/12/21 Суб 03:10:31 #29 №2247328 
чем больше углубляюсь в изучение С тем больше понимаю, что без ассемблера тут не обойтись... пиздос. И как его учить вообще, надеюсь nand2teris сойдет
Аноним 25/12/21 Суб 03:33:48 #30 №2247332 DELETED
>>2247327
>если ты не видишь кода который их использует?
Чигобля?

Мне кажется ты просто прыщавый поридж, за сим прощаюсь.
Аноним 25/12/21 Суб 03:46:01 #31 №2247335 
>>2247332
> за сим прощаюсь.
Скатертью дорога. Предупреждаю если увижу тебя на работе и твой уебанский код с переменными в начале функции - дам пизды.
Аноним 25/12/21 Суб 10:00:29 #32 №2247400 
Функция должна быть маленькой, тогда никакой проблемы с переменными в начале.
Так легче визуально оценить размер фрейма.
const для локальных - это мусор навроде венгерской нотации.
Вместо структурирования кода дебилы блямкают одноразовые переменные с const.
Аноним 25/12/21 Суб 13:36:05 #33 №2247482 
Начал изучать С. Удивлен вот этим абзацем:
>При компиляции функции для ее параметров выделяются отдельные участки памяти. При этом для параметров типа float формируются в памяти объекты типа double...
Зачем для float'ов выделять двойную, избыточную память?
В чем тогда смысл использовать float'ы?
1. Экономия памяти в куче? Оперативная память и близко давно уже не узкое место, её можно напихать сколько угодно.
2. Некоторые процессоры умеют вычислять только double? Ну так некоторые умеют, некоторые нет, видеокарты только во float'ы умеют.
Поясните.
Аноним 25/12/21 Суб 13:40:18 #34 №2247486 
>>2247482
>Оперативная память и близко давно уже не узкое место, её можно напихать сколько угодно.
Может ты лучше в другой язык пойдешь? Оно тебе с таким подходом не нужно.
Аноним 25/12/21 Суб 15:01:22 #35 №2247549 DELETED
>>2247482
>При этом для параметров типа float формируются в памяти объекты типа double...
Чет ерунда какая то
Аноним 25/12/21 Суб 17:59:46 #36 №2247740 
>>2247482
>для параметров типа float формируются в памяти объекты типа double
Хуирются. Значения типа float преобразутся в double. В памяти (не на стеке параметров) хранятся как float.
> Некоторые процессоры умеют вычислять только double?
PDP-11 не имел отдельных команд и регистров для float. Каждая программа начиналась с команды, включавшей режим double. Поэтому коньпилятор Ричи все float подвыражения расширял в double, а printf принимал %f как double. В C89 первое убрали, а вот printf никто не стал менять.
Аноним 25/12/21 Суб 18:04:39 #37 №2247745 
>>2247327
Ни в одном языке прогромирования не рекомендуется раскидывать переменные по телу функции. Это плохой тон. Использование можно посмотреть с инструментом view usages, который, кроме блокнота, есть везде.


Аноним 25/12/21 Суб 18:33:38 #38 №2247776 
>>2245329 (OP)
Хочу подобрать идеальный под мою железку набор GCC-флагов. Как можно затестить производительность с определённым их набором?
Аноним 25/12/21 Суб 18:44:41 #39 №2247793 
>>2247306
Все переменные надо объявлять как можно ближе к месту использования. Об этом уже тысячу раз писали Страуструп, Пайк, Мартин, Макконел.
Аноним 25/12/21 Суб 18:57:54 #40 №2247805 
>>2247793
>Пайк,
Кто такой, чем знаменит?
Аноним 25/12/21 Суб 19:19:12 #41 №2247823 
>>2247482
а не читай дурные учебники по си, которые вводят в заблуждение
расширение типа аргументов происходит в 2х случаях - если объявление функции составлено в старом стиле, и второе для функции с неопределенным числом параметров для аргументов попадающих в многоточие, и все, согласись, сегодня это довольно специфические условия, верно? по сути это нужно знать только для семейства функций printf
если объявление функции составлено в новом стиле, но никакого расширения типа аргументов (в том числе float в double) не происходит
ты какой учебник читаешь? какого то русского автора да?

Аноним 25/12/21 Суб 19:26:06 #42 №2247833 
1484a766b4f9490163ae9cdacb72241e.png
Вот вам говна с хабра принес

В двух словах:

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

https://habr.com/en/post/59570/
Аноним 25/12/21 Суб 19:56:24 #43 №2247858 
>>2247745
>Ни в одном языке прогромирования не рекомендуется раскидывать переменные по телу функции.
А в кодстайлах рекомендуется.
> Использование можно посмотреть с инструментом view usages, который, кроме блокнота, есть везде.
А можно не заниматься хуйней и семантически разделять блоки кода, объедения данные и их поведение/обработку.
Аноним 26/12/21 Вск 03:38:48 #44 №2248124 DELETED
>>2247833
>хабра
Сейчас бы советы швабропетуха проткнутого слушать
>>2247793
>Пайк
Вот в План9 они вполне себе хуярили в начале
https://github.com/plan9foundation/plan9/blob/main/sys/src/libhtml/strinttab.c
>Страуструп, Пайк, Мартин, Макконел
Ты прст каргокультист
Аноним 26/12/21 Вск 03:40:10 #45 №2248125 DELETED
>>2247858
>А в кодстайлах рекомендуется
А кЕмелСтайл тоже рекомендуют, и венгерскую_НотацИю и что?
Аноним 26/12/21 Вск 03:58:29 #46 №2248135 
C programming language.jpeg
Извините, не сдержался. Супротив языка С ничего не имею, годный даже, STMку вотъ недавно паял кодил.
Аноним 26/12/21 Вск 04:14:16 #47 №2248139 
>>2248125
Я не вижу смысла спорить и что-то доказывать. Большие программы делаться на модули, модули на функции, функции на блоки внутри функций. Если бы вам долбаебам сказали бы в 89 году, что все нужно писать в одном файле, так вы бы до сих пор так и делали, рассказывая про инструменты редактора которые позволяют во всем этом говне ориентироваться. У тебя нет понимания о том, что такое ясность и удобство восприятия информации. Ты привык к инструментам и постоянному перескакиванию с vu.
Аноним 26/12/21 Вск 04:20:29 #48 №2248142 DELETED
>>2248139
>Большие программы делаться на модули, модули на функции, функции на блоки внутри функций.
А я не люблю много функций и считаю это дурным тоном.
Аноним 26/12/21 Вск 11:50:29 #49 №2248248 
>>2248139
Это ж просто зелёный и жирный, не корми его, он уже из треда вытекает блядь
Аноним 26/12/21 Вск 14:04:18 #50 №2248349 
В чём разница между:
CFLAGS="-Wl,--hash-style=gnu"
LDFLAGS="-Wl,--hash-style=gnu"
LDFLAGS="--hash-style=gnu"
Аноним 27/12/21 Пнд 00:43:36 #51 №2248971 
>>2248349
Wl говорит драйверу компилятора (сс/gcc), какие флаги передать линкеру (первый вариант). У линкера (ld) такого ключа нет, и он нахуй не нужен (второй вариант), поэтому ты просто указываешь напрямую (третий вариант). Если ты компилишь без -c или собираешь cc *.o - можешь выбрать 1 или 3, а если сам вызываешь линкер, то очевидно у тебя есть только 3.
Аноним 27/12/21 Пнд 00:55:39 #52 №2248981 
>>2248971
> можешь выбрать 1 или 3
Сам в цифрах запутался. 1 или 2, т.е., -Wl для cc, без -Wl для ld.
слоуфикс
Аноним 27/12/21 Пнд 05:32:06 #53 №2249023 
>>2248139
лол, в 89 году раскидывали по разным файликам чтобы компилировалось быстрее, а не из желания че-то там разбить на функциональные модули
перекомпиляция большого проекта занимала несколько часов
на персональных же пека даже компиляция одной единицы трансляции занимала ощутимое время

Аноним 27/12/21 Пнд 12:11:26 #54 №2249170 
>>2249023
>2022
>А давайте писать так, чтобы компилировалось как в 89
Аноним 27/12/21 Пнд 14:09:29 #55 №2249317 
https://www.tuhs.org/cgi-bin/utree.pl?file=Linux0.96c/include/linux/ext_fs.h

Почему здесь объекты платформозависимых типов, если по идеи их размер должен быть чётенько определен?
Аноним 27/12/21 Пнд 14:42:33 #56 №2249363 
linus-torvald-first-linux-email.png
>>2249317
Потому что
> It is NOT portable
Аноним 27/12/21 Пнд 14:44:31 #57 №2249374 
>>2249170
не, сегодня многие пишут основной код в одном файле на тысячи строк кода
многие проекты на гитхабе так организованы, например
Аноним 27/12/21 Пнд 18:13:11 #58 №2249618 
>>2249363
:-(
Аноним 27/12/21 Пнд 18:18:53 #59 №2249627 
>>2249023
А отсутствие неймспейсов тут никакой роли не играет, да?
Аноним 27/12/21 Пнд 18:55:29 #60 №2249686 
>>2249618
Ты же ведь в курсе, что привёл ссылку на исходники ядра версии 0.96, которая относится примерно к тысяча девятьсот девяностому году, и что в современных версиях (https://elixir.bootlin.com/linux/v3.1/source/include/linux/ext2_fs.h ) типы с чёткими размерами?
Аноним 27/12/21 Пнд 19:48:30 #61 №2249730 
>>2249686
Да это понятно. Меня файловая система интересует, а не ядро.
Хотел заебенить челлендж из ролл-листа, где bootloader (with extended file system), начал было писать под ext2 и тут напоролся на то, что в ext2 куча 32битных объектов, а в i8086 16-битная шина. И стоковая ext как и где скомпилируется, такой и будет. Теперь не понимаю формулировку задачи, и что там требуется.
Аноним 27/12/21 Пнд 19:49:52 #62 №2249732 
>>2249686
Да это понятно. Меня файловая система интересует, а не ядро.
Хотел заебенить челлендж из ролл-листа, где bootloader (with extended file system), начал было писать под ext2 и тут напоролся на то, что в ext2 куча 32битных объектов, а в i8086 16-битная шина. И стоковая ext как и где скомпилируется, такой и будет. Теперь не понимаю формулировку задачи, и что там требуется.
Аноним 27/12/21 Пнд 22:52:46 #63 №2249903 
>>2249732
На то он и челлендж. Возиться с 32-битными типами на 16-битной машине - это будет то ещё дрочево, да.
Аноним 28/12/21 Втр 01:29:53 #64 №2249992 
>>2245552
>прочитать про constexpr
прикольно, жаль что в си нет
Аноним 28/12/21 Втр 02:29:16 #65 №2250017 
>>2249903
> Возиться с 32-битными типами на 16-битной машине
Ну ты такой long x = 12345, и все. Не ассемблер ведь.
Аноним 28/12/21 Втр 09:14:11 #66 №2250077 
>>2250017
И компилятор такой тебе с ехидной рожей
mov ax, 12345
Аноним 28/12/21 Втр 09:31:03 #67 №2250080 
>>2249903
Мне вот даже интересно стало, что гцц закомпилит с арифметикой uint32_t и ключом -i8086. Думаю, запилит свою арифметику.
Аноним 28/12/21 Втр 09:49:26 #68 №2250093 
Как проверить, что программа будет работать с 16-битными интами? В ДОСЕ не могу, так как памяти не хватает.
Аноним 28/12/21 Втр 10:20:44 #69 №2250121 DELETED
>>2250093
sizeof(int)
Аноним 28/12/21 Втр 10:43:39 #70 №2250142 
>>2250121
*проверить работоспособность
Аноним 28/12/21 Втр 16:55:38 #71 №2250510 
>>2250093
эмулятор?
Аноним 28/12/21 Втр 20:17:28 #72 №2250744 
>>2247823
Читаю метанит краем глаза, т.к. удобно с телефона читать.
Пишут что он - сжатый конспект книги Брайана Кернигана и Денниса Ритчи. Т.е. вроде должно быть норм.
Что скажете о метаните? Читать? Дропнуть?
Аноним 29/12/21 Срд 01:05:27 #73 №2250931 
>>2250077
А нет, потому что по стандарту long должен уметь минимум -231 ... 231 - 1.

>>2250080
Так же, как и 32-битный x86 делает 64, или 8-битный МК делает 16-32 - будут два регистра, четыре регистра, дополнительные инструкции для арифметики (всякие там adc), часто лишние загрузки в память и обратно, если регистров не хватает. Все это может быть сильно медленно, но работать будет.
Аноним 29/12/21 Срд 01:20:18 #74 №2250932 
>>2250744
k&r 280 страниц, причем собственно текст книги без приложени - 140 страници, неужели выросло поколение которому нужен конспект даже таких книг?
тогда это пиздец, замолкаю

Аноним 29/12/21 Срд 05:16:37 #75 №2250994 
почему ldexp(0.5, 1024) - не inf в выводе printf? frexp() возвращает экспоненту 1024
Аноним 29/12/21 Срд 05:35:54 #76 №2250995 
>>2250931
ну, или будут функции, если на sdcc и z80 к примеру.
Аноним 29/12/21 Срд 06:17:07 #77 №2251000 
>>2250994
и -1023 ... -1073 выдаёт 0 - да хрен с ним, как он такую экспоненту хранить может? бред какой-то
fman = frexp(ldexp(0.5, -1073), &vexp);
printf("%f %f %i\n", ldexp(0.5, -1073), fman, vexp);

0.000000 0.500000 -1073
Аноним 29/12/21 Срд 06:43:31 #78 №2251002 DELETED
>>2251000
>%f %f %i
>экспоненту
Чигобля?
Аноним 29/12/21 Срд 06:52:42 #79 №2251006 
>>2251002
что? я не читаю мысли.
Аноним 29/12/21 Срд 07:14:31 #80 №2251012 
наверно это какой-то мусор из стека, процессора, специфичного буфера?

понятно, frexp():
If x is a NaN, a NaN is returned, and the value of exp is unspecified.
If x is positive infinity (negative infinity), positive infinity (negative infinity) is returned, and the value of exp is unspecified

но разве тогда ldexp() не должен вернуть просто 0?
If the result underflows, a range error occurs, and zero is returned.
If the result overflows, a range error occurs, and the functions return HUGE_VAL, HUGE_VALF, or HUGE_VALL, respectively, with a sign the same as x.


ldexp(0.5, -1073);
printf("%s\n", strerror(errno));
frexp(ldexp(0.5, -1073), &vexp);
printf("%s\n", strerror(errno));

Success
Success
Аноним 29/12/21 Срд 07:43:31 #81 №2251020 
>>2251012
похоже догнал https://en.wikipedia.org/wiki/Denormal_number
Аноним 31/12/21 Птн 14:15:15 #82 №2253038 
cirno-gta.jpg
В чём подводные камни для битмапа группы функций?
Допустим я хочу сделать таблицу функций и замапить её на (к примеру) 8-битное значение:

https://pastebin.com/gjpXRxZb

Типа на какой-то машине может быть msb вместо лсб, и всё пойдёт по пизде? Порядок байт тоже влияет (когда например мапится не на один байт, а на два и более) ?

Да, я тупой и просто не могу сообразить
Аноним 31/12/21 Птн 23:35:29 #83 №2253357 
>>2253038
В таком виде абсолютно никаких подводных, кроме небольших накладных расходов на проверку бита по сравнению с массивом отдельных bool или size_t. Номер бита в числе измениться не может, это свойство системы счисления (показатель степени двойки). Он может меняться в битфилде, но у тебя-то не битфилд.
Аноним 02/01/22 Вск 18:32:12 #84 №2254525 
Что можно почитать натему системного прогрраммирования под винду? Базу языка я уже знаю. Есть доки майкрасофта, но не сказал бы, что это хороший учебник
Аноним 02/01/22 Вск 19:42:04 #85 №2254596 
>>2254525
кернел или юзерспейс?
Аноним 02/01/22 Вск 20:48:05 #86 №2254641 
>>2254596
Юзерспейс. Кернел как я понимаю, это драйвера?
Аноним 02/01/22 Вск 21:26:06 #87 №2254673 
>>2254641
Рихтер (не знаю, что там актуально - Windows Via C++), потом какое-нибудь не очень старое издание Windows Internals (там и кернелмод, но все равно надо), потом MSDN по интересующим темам. Если интересует легаси (а тебя интересует, потому что под винду сейчас на няшной не пишут), то еще сверху что-нибудь про GDI и опять MSDN. Если сокеты, то Ohlund "Network Programming for Microsoft Windows", и да, снова MSDN. Вообще, MSDN вполне норм, там в каждом разделе есть введение и описание чего куда совать с примерами. С вопросами можешь сюда приходить.
Аноним 02/01/22 Вск 21:39:50 #88 №2254689 
>>2254673
>>2254673
Благодарю. Рихтер там же аж под семерку писал, если не ошибаюсь? Не устарело? У винды даже битность успела поменяться. А так, MSDN читаю, но это скорее справочник, очень много информации, которую я не очень понимаю, как приминять.
Мне бы найти что-то, что могло бы вкатиться в менеджмент памяти.
А то я смотрю, у винды дохрена своих функций под это
Аноним 03/01/22 Пнд 01:40:09 #89 №2254843 
>>2254689
> Рихтер там же аж под семерку писал, если не ошибаюсь? Не устарело?
Появились новые апи, но в целом там все с начала линейки NT тянется. Я поэтому и говорю, что сначала книга, а потом уже и MSDN пугать не будет, там можно прочитать про нововведения.

> что могло бы вкатиться в менеджмент памяти
Сначала надо понять, чего тебе в malloc/calloc/free не хватает.

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

> но это скорее справочник
https://docs.microsoft.com/en-us/windows/win32/memory/virtual-memory-functions ну вот смотри, например - тут по пунктам, как выделить, как узнать состояние и освободить. А чуть раньше описание концепций: https://docs.microsoft.com/en-us/windows/win32/memory/virtual-address-space (см. слева в меню следующие главы). Навигация могла бы быть лучше, но в остальном вполне читаемо.
Аноним 07/01/22 Птн 11:53:49 #90 №2257900 
IMG20220107114605.jpg
тоже начну вкатываться
Аноним 07/01/22 Птн 13:47:26 #91 №2258048 
Снимок экрана от 2022-01-07 13-38-57.png
Снимок экрана от 2022-01-07 13-39-00.png
сап, почему при запуске проги в qtcreator строки меняются местами? На пике на белом фоне это вывод в кьюте. На фиолетовом в терминале запускаю исполняемый файл из папки Debug. Я сам отдаю предпочтение именно терминальному выводу, потому-что там выглядит как должно быть.
Аноним 07/01/22 Птн 14:47:37 #92 №2258111 
чёт вспомнил, я бы это посоветовал вкатывальщикам. https://buildyourownlisp.com/contents

сам не дочитал, просто я уже и так лисп написал и было любопытно.
Аноним 07/01/22 Птн 23:13:48 #93 №2258813 
image.png
image.png
image.png
Почему? В листинге вроде всё нормально, хотя я не уверен, что умею читать. Адрес структуры идёт в rax, оттуда в eax идут первые 32 бита node, которые и есть type - так ведь?
node != NULL, хотя там и так видно.

Не ручаюсь за качество скринов, но с компа всё хорошо видно, например.
Аноним 08/01/22 Суб 02:46:34 #94 №2258916 
>>2258048
> ft
Опять школа 12345? Код неси.

>>2258813
node != NULL не означает, что node указывает на валидный объект. Вполне может указывать на мусор. printf("%p\n", node);
Аноним 08/01/22 Суб 14:38:13 #95 №2259258 
>>2257900
Такую же няшу купил недавно.
Аноним 08/01/22 Суб 19:59:40 #96 №2259651 
Вопрос может быть для /s/, но лучше спрошу тут. У меня в проекте с симейком есть несколько целей и хотелось бы иметь возможность по отдельности вызывать их через менюшку. А нету там такого. Одна цель у меня это компиляция, а другая - прошивка микроконтроллера через программатор.
https://doc.qt.io/qtcreator/creator-build-settings.html
Вот, можно только добавить "этап сборки", но потом эти этапы нельзя вызвать по отдельности через менюшку. Как же так?
Си тут при том что код у меня на нем.
Аноним 08/01/22 Суб 20:15:06 #97 №2259666 
>>2259651
Предполагаю, что ты хочешь просто изменить Run или Deploy в настройках проекта. И уже оттуда дергать свою цель. Потому что это уже не сборка.
Аноним 08/01/22 Суб 20:27:20 #98 №2259681 
>>2259651
> qt
это в c++
Аноним 08/01/22 Суб 20:36:26 #99 №2259697 
>>2259666
Спасибо.
>Потому что это уже не сборка.
Так-то да, но у меня это такая же цель как и остальные. И мне казалось логичным дергать это как вариант сборки. По крайней мере в CLion оно работало как-то так.

>>2259681
А какими IDE тут пользуются? По моему Qt Creator и для Си неплохо подходит.
Аноним 08/01/22 Суб 20:38:28 #100 №2259700 
>>2259697
>А какими IDE тут пользуются? По моему Qt Creator и для Си неплохо подходит.
как скажешь - я в валенках и ушанке. в emacs и autotools. просто сам не знаю на чём сейчас что делают.
Аноним 08/01/22 Суб 22:13:17 #101 №2259735 
>>2259651
add_custom_target пробовал?
Аноним 09/01/22 Вск 08:51:06 #102 №2259895 
>>2259735
Так и было сделано. Проблема не с симейком, при вызове руками эти цели нормально отрабатывают. Хотелось из qt creator все это запускать, а я не туда пытался тыкать, анон выше правильно посоветовал уже.
Хотя все равно как-то не очень. А если мне потребуется запускать еще несколько целей? Там опять только одну конфигурацию деплоя можно сделать. Остается еще "Run", но как-то это не очень хорошо.
Аноним 11/01/22 Втр 11:15:01 #103 №2261787 
>>2245329 (OP)
Только собрался плотно изучать этот божественный язык и решил качнуть VS 2019 (ибо в VS 2022, при добавлении "Разработка классических С++ приложений" у меня крашится драйвер видимокарты), как его хуй можно скачать с официального сайта. Остался только VS 2022. Мелкософт сам толкает в объятия пиратов штоле?
Аноним 11/01/22 Втр 11:26:01 #104 №2261799 
>>2261787
vs это для шарпа, норкоман.
Аноним 11/01/22 Втр 11:42:55 #105 №2261829 
image.png
>>2261787
Пиздуешь на:
https://visualstudio.microsoft.com/ru/downloads/
Мотаешь в самый низ страницы и ищешь строчку "Старые загрузки"
На пике красным тебе выделил, чтобы не потерялся.
Алсо, может не надо тебе в C++, если ты даже ссылку найти не можешь?
Аноним 11/01/22 Втр 11:47:48 #106 №2261834 
>>2261799
>vs это для шарпа, норкоман.
Даже комментировать сей высер неохота.

>>2261829
Спасибо. Реально глаза замылило огромными кнопками для скачки 2022, что даже не подумал до футера домотать. Я уже прада нашел старый веб-инсталлер для 19 и кочаю пакеты.
Аноним 12/01/22 Срд 16:11:22 #107 №2262937 
image.png
Задание K&R 1.8 Написать программу для подсчета пробелов, знаков табуляции и символов конца строки

Аноним 12/01/22 Срд 16:58:32 #108 №2263019 
>>2262937
??
Их все вместе подсчитать или сколько каждого в граммах?
Аноним 12/01/22 Срд 17:58:20 #109 №2263205 
>>2262937
А как оно getchar() в int пихает?


мимокрокодил
Аноним 12/01/22 Срд 18:21:28 #110 №2263258 
>>2263205
>А как оно getchar() в int пихает?
В сях у каждого символа есть свой цифровой код.
Аноним 12/01/22 Срд 19:02:17 #111 №2263308 
>>2263019
Я так понял все сразу, задание сформулирвоано именно так, хотя для каждого в отдельности просто заводим отдельную переменную
Аноним 12/01/22 Срд 19:23:05 #112 №2263330 
>>2262937
А ентот getchar() чего читает? Ввод в консоль? А как ЕОТF с клавиатуры вести?
Аноним 12/01/22 Срд 19:31:18 #113 №2263339 DELETED
>>2263330
>А как ЕОТF с клавиатуры вести?
Ктрл+з
Аноним 12/01/22 Срд 23:06:57 #114 №2263515 
Здравствуйте! У меня вот несколько вопросов возник, а как вообще программы крупные на Си пишутся? я тут пукаю что-то в ncurses и тд, но я вообще не представляю, как делаются приложения под линукс по типу htop, всяких инсталлеров да и просто операционок. Как это все можно на одном Си написать? я даже не понимаю от куда эту информацию взять можно, как придти к такому, для меня это слишком ту мач. Может кто поделиться как к этому идти? или хотя бы примерно ориентир дать, я дальше сам постараюсь разобраться, мне не нужны готовые ответы, а просто хотя бы куда направляться, чтобы я дальше информацию искал. Я правда не понимаю как на Си можно написать что-то такое с GUI в терминале, чтобы оно ещё и какую-то деятельность с ОС вытворяло, хотя бы вот просто какой-нибудь File Manager или текстовый редактор написать.
Аноним 12/01/22 Срд 23:30:27 #115 №2263523 
gigachad.jpg
>>2263515
Просто берёшь и пишешь.
Аноним 13/01/22 Чтв 00:16:46 #116 №2263542 
>>2263515
Удваиваю реквест.
Аноним 13/01/22 Чтв 08:38:47 #117 №2263641 
>>2263515
>>2263542
дробишь одну большуюзадачу на много мелких и хуяришь потиху. Если чего-то не знаешь - гуглишь, изучаешь.
Аноним 13/01/22 Чтв 08:44:06 #118 №2263646 
>>2263339
>Ктрл+з
это приостановка приложения
Аноним 13/01/22 Чтв 08:45:31 #119 №2263647 
парни, сори конечно что не по теме, хз просто где спросить.
кто что думает о языке программирования zig?
Аноним 13/01/22 Чтв 08:46:43 #120 №2263648 
>>2263515
ну ос - это конечно враньё, потому что на ассемблере всё равно придётся писать. но можешь почитать криса касперски (хз почему у меня такая ассоциация возникла с твоим текстом)
Аноним 13/01/22 Чтв 08:47:08 #121 №2263649 
>>2263647
хайль
Аноним 13/01/22 Чтв 09:58:33 #122 №2263691 
>>2263649
0/
Аноним 13/01/22 Чтв 18:15:34 #123 №2264269 
>>2263691
'\0'-таки
Аноним 13/01/22 Чтв 18:37:23 #124 №2264298 DELETED
>>2263646
Ктрл+Д
Аноним 15/01/22 Суб 04:28:20 #125 №2265347 
>>2264269
L'\0'
Аноним 15/01/22 Суб 12:05:09 #126 №2265489 
>>2263641
Вот этот господин дело говорит. Так всегда нужно делать.
Аноним 15/01/22 Суб 16:09:31 #127 №2265746 
В школе и на первых вузах универа - я писал на си. Тогда - он мне казался удобным и все такое.
Но вот, в середине второго курса у нас было ООП. Там давали на выбор С++, С# и жаву. Я попробовал все и остановился на шарпе.
Так вот. Первое время мне было сложно. Я писал код в Си-стиле, а классы использовал просто как модули. Ничего более. Классы были большие. Было много статики.
Но затем я почитал книжек, и начал пытаться разобраться в чужих репках. Помогли, внезапно, репки жавы, потому что показали, как может быть устроен код в ООП стиле. И МНЕ ПОНРАВИЛОСЬ. Следущие 4 года - я писал исключительно в ООП парадигме.
Но вот закончилась учеба в вузе, я магистр, который немного фармил фрилансерством. Нужно было искать работу. И я пошел на завод. На заводе, внезапно, нужно писать на Си.
И я - буквально на текущий момент - пытаюсь изобретать способы, как привнести ООП в Си, не сломав то что там уже накодили. Я это могу сделать. Но я понимаю, что оно-то не нужно. Нужно майндсет перестроить обратно к процедурному и структурному подходу. Но это так сложно, когда ты везде видишь объекты, когда ты привык, что за памятью уже следить не нужно, есть GC, который следит за этим, а тебя только иногда какой-нибудь сокет или дескриптор нужно руками освободить.
Короче. Есть тут те, кто с ООП-языка обратно на Си переходили? Какие есть лайфхаки, чтобы быстрее переключить мозги обратно? Или проще таки сменить работу и писать в ООП-парадигме?

Да, понимаю, что вопрос не совсем по теме треда, но сам язык я знаю, как компуктеры работают - тоже, а вот момент с майндсетом не дает покоя.
Аноним 15/01/22 Суб 16:11:50 #128 №2265749 
>>2263515
Открываешь гитхаб, ищешь nginx. Написан он на няшном. Смотришь и видишь, что все очень даже удобно и красиво. А главное - ПОНЯТНО.
Аноним 15/01/22 Суб 16:25:32 #129 №2265769 
>>2265746
>Есть тут те, кто с ООП-языка обратно на Си переходили?
Нахуя? Ебашь дальше на шарпе/джаве/котлине/скале, нахуй тебе этот нищий завод и си усрался?
Аноним 15/01/22 Суб 16:31:38 #130 №2265776 
>>2265769
Ну, тут железочки дают. Я поработал какое-то время на шарпе в вебе и это так уныло было: гоняешь туда-сюда жсоны. А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло. Короче, все не так абстрактно, как в вебе, где ты вроде что-то сделал, а поймешь что ты сделал и кому оно нахуй надо - через год разработки, когда придут менеджеры и фидбек от пользователей принесут.
Аноним 15/01/22 Суб 16:56:34 #131 №2265799 
>>2265776
Какая зп?
Аноним 15/01/22 Суб 17:04:36 #132 №2265807 
>>2265799
~60к после всех налогов. Да, когда я работал в вебе - я получал больше. Но опять же, тут - железки и видно результат работы, а там - ну, на сервере мой код крутится, является частью какой-то здоровой системы, хуй знает, будет ли хоть раз за год именно мой код вызван, хуй знает кто пользователь и что ему вообще от системы нужно, потому что на разработку задания давали менеджеры и они все поясняли конкурентным преимуществом или какими-то графиками, дескать вот, фича популярна, давайте у нас будет.
Аноним 15/01/22 Суб 17:12:16 #133 №2265819 
>>2265807
>>2265776
Анон, если ты кайфуешь от этого и тебе по зп нормально, то я рад за тебя.
мимо
Аноним 15/01/22 Суб 17:14:13 #134 №2265821 
>>2265819
Двачую.
Аноним 15/01/22 Суб 17:48:18 #135 №2265853 
>>2265776
>А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло.
Это же пишется на всяких МЭК-языках, типа IL, ST, FB, LD, а не на С. Или у вас там и железки самопальные?
Аноним 15/01/22 Суб 18:01:15 #136 №2265865 
>>2265853
Не понимаю что ты под самопальными подразумеваешь. Комплектующие(платы, микроконтроллеры, диоды и т.д.) заказываются из-за бугра(что-то у китайцев, что-то из США, что-то с европы, в зависимости от требований к устройству и цены). Умные дядьки-инженеры это все в зависимости от требований к устройству компонуют на плате, дизайнеры - делают корпуса если надо. Когда тестовые образцы проходят все испытания - начинается производство. Сейчас весь наш код внутри устройств - на си написан. Судя по репкам, когда-то давно пытались на С++ писать, но что-то не срослось.
Аноним 15/01/22 Суб 18:10:23 #137 №2265872 
>>2265865
А, ну да, сейчас еще кококо импортозамещение, государство хочет заставить переходить на НАШИ комплектующие, но судя по умным дядькам-инженерам - наше железо скорее всего не появится, потому что там цены такие, что пиздец, а качество уровня: ну да, работает, но отстает от зарубежного как по характеристикам, так и по качеству, про сервис - говорить не приходится.
Аноним 15/01/22 Суб 18:14:17 #138 №2265873 
>>2265865
>Умные дядьки-инженеры это все в зависимости от требований к устройству компонуют на плате, дизайнеры - делают корпуса если надо. Когда тестовые образцы проходят все испытания - начинается производство.
Но ведь на выходе получается слабоподдерживаемое говно жи!? Одно дело ПЛК, который может любой переконфигурировать, а другое дело самопальные платы, с залоченной прошивкой и отсутствием исходников. Нахуя вы это делаете?
Аноним 15/01/22 Суб 18:24:00 #139 №2265877 
>>2265873
> Нахуя вы это делаете?
Потому что эти устройства и не должны быть переконфигурированы. Прошивки делаются специально под требования клиента и нормативные акты. Ну и да, я не хотел вдаваться в подробности, но сфера - измерительные приборы. Думаю из этого понятно, что какой-нибудь ЖЭК не хочет, чтобы любой Вася-радиолюбитель и умеющий пользоваться гуглом - залез и сделал себе бесплатную воду, там куча степеней защиты, начиная с поднесения магнита и заканчивая попыткой перепрошивки.
Аноним 15/01/22 Суб 18:46:42 #140 №2265891 
>>2265877
>но сфера - измерительные приборы
> А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло
Чота ты запизделся ужо.
Аноним 15/01/22 Суб 19:17:55 #141 №2265916 
.jpg
.png
.jpg
>>2265891
Няша, ты когда последний разу какой-нибудь современный счетчик или УСПД видел? Лампочки для индикации состояний там в наличии. Подключились к серверу по GSM - лампочка горит, на дисплее - циферка 1 - установили TCP-соединение; 2 - зарегистрировались на сервере; 3 - работаем в штатном режиме, шлем данные и т.д. Релешки всяких счетчиков - так же: пришел запрос по какому-нибудь modbus или iec101/104 на контролирующую станцию, она передала уже конкретному устройству - у него переключили реле, в квартире отключили свет/воду за неуплату.
Аноним 15/01/22 Суб 19:24:07 #142 №2265922 
>>2263515
Измельчал нынче программист...
Аноним 15/01/22 Суб 19:31:49 #143 №2265924 
>>2265916
До чего технологии дошли...
Аноним 15/01/22 Суб 19:40:50 #144 №2265934 
>>2265924
Вот ты рофлиш. А там в некоторых экспериментальных и дорогих образцах - линукс(порезанный, но вполне себе линукс), для веба ПХП, фронт на vue каком-нибудь, уже хотят приложения с сей на более современные языки переносить, проблема в памяти, т.к. если тот же .net или жаву запихнуть, то придется памяти больше покупать -> увеличение стоимости конечного устройства. В обычных массовых счетчиках этого конечно нет. Пока. Но будущее примерно такое: ты будешь иметь возможность прямо с компа посмотреть сколько ты там чего выжрал, оплатить сразу с мобилы или прикрутить автооплату.
Аноним 15/01/22 Суб 20:00:26 #145 №2265954 
>>2265934
>Вот ты рофлиш
Я и не рофлю. Действительно удивлен до чего технологии дошли.
Зачем тебе спойлеры, анон?
Аноним 15/01/22 Суб 20:04:18 #146 №2265958 
>>2265954
> Зачем тебе спойлеры, анон?
Ну, типа нерелейтед для треда. Типа тред-то про сишечку, а я про свой завод пишу.
Аноним 16/01/22 Вск 10:28:31 #147 №2266479 
>>2265746
>когда ты привык, что за памятью уже следить не нужно, есть GC, который следит за этим
Я всегда говорил, что сирешётка разжижает мозг. Программист, которому нужен сборщик мусора, вместо кода пишет мусор. Серьёзно, блядь, ты ведь понимаешь, что GC необходим не для того, чтобы ты, долбоёб, мог не думать, а для того, чтобы следить за временем жизни объектов, попавших в замыкания в языках с лексической областью видимости и функциями высшего порядка?
Аноним 16/01/22 Вск 13:30:40 #148 №2266648 
>>2266479
Таблетки принять не забудь.
> In the common language runtime (CLR), the garbage collector (GC) serves as an automatic memory manager. The garbage collector manages the allocation and release of memory for an application. For developers working with managed code, this means that you don't have to write code to perform memory management tasks. Automatic memory management can eliminate common problems, such as forgetting to free an object and causing a memory leak or attempting to access memory for an object that's already been freed.
Аноним 16/01/22 Вск 13:57:52 #149 №2266674 
>>2265922
Ты хочешь сказать, что уже сам через 2-3 месяца изучения мог спокойно на си что-то написать без проблем и с пониманием того, что ты делаешь?
Аноним 16/01/22 Вск 14:33:06 #150 №2266713 
>>2266674
Что ты понимаешь под пониманием того что ты делаешь?
Ну, вот допустим, я пишу хелло ворлд.

#include "stdio.h"
int main(){
printf("Hello world!\n");
return 0;
}

Я знаю что делает каждая из этих строчек. Знаю ли я что я делаю на самом деле? Допустим я слышал про то что код потом будет скомпилирован и слинкован и представляю себе в голове как это будет работать, что входной файл будет разбит на токены, будет построено синтаксическое дерево, оно будет оптимизировано, а затем модуль будет преобразован в ассемблерный код. Относится ли это к хелловорлду как программе и нужно ли было мне это знать? Я не уверен. Но допустим это шаг к тому, чтобы понимать. Дальше. Вот что делает printf()? Ну, я чисто предполагаю, что оно делает какой-то системный вызов в духе write(STD_OUT, msg, sizeof(msg)-1), который прочитает из регистра данные переданные и передаст их в какой-то стандартный вывод. Но понимаю ли я что я сделал? Ну, может быть я знаю, что у операционной системы есть некие потоки для т.н. выводов, ошибок и прочего. Но действительно ли я это понимаю? Наверное же нужно таки понимать, а как опрерационная система таки вывод этот сделает. Я должен знать, что вот есть устройства, в эти устройства я могу послать сигнал, устройства на выходе дадут какой-то ответ. А действительно ли я понимаю как этот ответ получен. Да и нужно же держать в голове, что есть электрончики, транзисторы, сигналы...

Я эту телегу к чему. К тому что понимать что ты делаешь - это очень расплывчатая вещь, которая еще и не делает тебя ближе к результату - законченная программа, которая что-то полезное делает. Допустим ты решаешь сделать текстовую адвенчуру. Все что тебе тут нужно это базовые if-else и printf, scanf и работа с файликами, если не хочешь текст хардкодить. Каким образом та телега приблизила бы тебя к тому чтобы ты сделал законченную текстовую адвенчуру - я лично не понимаю.
Аноним 16/01/22 Вск 15:02:26 #151 №2266747 
>>2266713
Я имел ввиду не то, как оно работает под капотом, а то когда у тебя лапша из кода и нужно понимать что и к чему ты пишешь. Я не думаю что человек изучающий си месяца 3-4 способен сразу к осознанному написанию сложного по. К примеру взять питон макаку какую-то, там же просто пишутся скрипты которые надо «заучить», я не думаю что в си так получится, написать из коробки что-то осмысленное, да ещё чтобы оно и работало
Аноним 16/01/22 Вск 21:14:54 #152 №2267124 
>>2266747
>>2263515
Для написания хорошего ПО надо научиться архитектуру придумывать. Я уже лет 5 программирую, но начал задумывать над этим только сейчас. Потому что, если мой проект разрастается хотя бы до уровня комплиятора "непростого" языка программирования, то везде начинают слои абстракции друг в друга переливаться, WET образуется сам по себе и исправить его представляет сложности, один и тот же код приходится переписывать по несколько раз.

Если научить человека, изучающего Си 3-4 месяца создавать хорошую архитектуру, то и ПО он сможет нормально и внятно писать.
Аноним 17/01/22 Пнд 05:06:22 #153 №2267367 
>>2267124
>Если научить человека, изучающего Си 3-4 месяца создавать хорошую архитектуру, то и ПО он сможет нормально и внятно писать.
фантазии. и мало того что "нормально и внятно" никогда заранее не понятно, так он ещё и не поймёт как не надо.
Аноним 17/01/22 Пнд 08:48:55 #154 №2267396 
586f6863c36188293b8b4667.jpg
Есть динамически выделенная память, типа void ; будет массив uint8_t.

Как мне подвязаться к uint8_t
указателю? Подскажите, пожалуйста.

void array;
array = malloc(10); // для примера
uint8_t
ptr = (uint8_t )array[24 x];

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

В оригинальном куске кода статический массив, жёстко заданный:
uint8_t array[256];
uint8_t ptr = &array[24 x];

Аноним 17/01/22 Пнд 10:16:57 #155 №2267471 
>>2267396
...prt = &((uint8_t*)array)[x]
Аноним 17/01/22 Пнд 11:52:55 #156 №2267578 
>>2267471
Спасибо, чувак.
Работает.
Аноним 17/01/22 Пнд 13:37:12 #157 №2267676 
>>2266648
Спасибо за великолепную иллюстрацию моего тезиса.
Аноним 17/01/22 Пнд 13:38:05 #158 №2267679 
>>2266713
>который прочитает из регистра данные переданные
Не из регистра, а из оперативки.
Аноним 17/01/22 Пнд 21:16:59 #159 №2268236 
image.png
Задание K&R 1.9 Написать программу для копирования входного потока в выходной с заменой каждой строки состоящей из одного или нескольких пробелов - одним пробелом

Мне не нравится мой счетчик count который при вводе миллиарда пробелов даст слабину
как бы его убрать....
Аноним 17/01/22 Пнд 21:37:33 #160 №2268275 
>>2267676
Няша, ты же понимаешь, что ты шиз? И то что GC впервые начали использовать в лишпе - не значит что
> GC необходим не для того, чтобы ты, долбоёб, мог не думать, а для того, чтобы следить за временем жизни объектов, попавших в замыкания в языках с лексической областью видимости и функциями высшего порядка
Блядь. Горит. Сука. Давай, объясняй тогда, нахуя нужен был GC в жавах первых версий? Хули он там делал? А нахуя он в бейсике? А хули есть реализации GC даже для сей? Нахуя они там? Сука. Объясняй. Раз уж спизданул хуйню - давай, поясняй нахуя? Жду. Блядь, когда ты продемонстрируешь функции высшего порядка в няшных си(да, блядь, свой GC в си имплементировать никто не мешает) и покажешь мне замыкания в бейсике.
Аноним 17/01/22 Пнд 21:42:53 #161 №2268278 
>>2268236
Делаешь обычный флаг. IsSpaceFound.
Встречаешь пробел - выставляешь его в true. Когда видишь первый непробельный символ - проверяешь флаг, если там флаг true - вставляешь пробел, сбрасываешь флаг и выставляешь следующий непробельный символ.
Аноним 17/01/22 Пнд 22:02:46 #162 №2268295 
>>2268275
> Давай, объясняй тогда, нахуя нужен был GC в жавах первых версий?
Чтобы додикам, которые не осилили C++, ручное управление памятью говна в жопу не заливало.

> А хули есть реализации GC даже для сей?
Чтобы писать на сях рантаймы языков с ФВП и лексическим скоупингом. Посмотри на список применений того же boehm-gc, там с полдюжины разных лиспов.

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

>Блядь. Горит. Сука.
Конечно, чтобы осозновать собственную неполноценность без бурных эмоций, нужна серьёзно развитая психика, тебе до такого далеко.

Эх, Луговского на вас, долбоёбов, не хватает, он бы вас сразу нахуй опустил, это я такой добрый, объяснять ещё что-то пытаюсь, нести светлое знамя прогресса в безграмотные народные массы.
Аноним 17/01/22 Пнд 22:11:03 #163 №2268304 
>>2268236
Короче, ты странно условие расписал. Я не совсем понимаю. Судя по коду - ты просто копируешь символы, при этом первый пробел - два раза.
Если тебе нужно было серию пробелов заменить одним, то:
whie(1){
c = getchar();
if(c == ' '){ putchar(c); do{c = getchar(); }while(c == ' ');}
if(c == EOF) break;
putchar(c);
}
Аноним 17/01/22 Пнд 22:15:00 #164 №2268310 
>>2268278
на момент чтения мной этого задания bool еще не введен в оборот
Аноним 17/01/22 Пнд 22:18:19 #165 №2268313 
>>2268304
>Если тебе нужно было серию пробелов заменить одним
мой код ровно это и делает
Аноним 17/01/22 Пнд 22:29:11 #166 №2268328 
>>2268313
Я в упор тогда не понимаю каким образом. Может быть я обдабался.
Смотри, ты встретил пробел. Заходишь в условие. Увеличиваешь счетчик. Проверяешь что счетчик равен 1. Засовываешь пробел в выходной поток если счетчик 1. Выходишь из условия. Засовываешь значение из переменной c - в поток, это второй пробел уже. Затем ты обнуляешь счетчик, что значит что ты если снова встретишь пробел - счетчик снова будет равен 1.
Я в упор не понимаю, как оно у тебя работать должно. Может быть мне нужно поспать.
Аноним 17/01/22 Пнд 22:34:14 #167 №2268333 
image.png
>>2268328
не ты прав, я случайно удалил else

Аноним 17/01/22 Пнд 22:48:19 #168 №2268343 
.png
>>2268333
Ну, тогда раз ты таки беспокоишься о переполнении и при этом типа про bool еще не знаешь - можешь просто int как тот же флаг использовать.
Аноним 17/01/22 Пнд 23:51:01 #169 №2268418 
>>2245329 (OP)
>- Visual Studio Community Edition
Достопочтимый сэр, вы ёбу дались? Вы действительно советуете для хэллоувордов устанавливать и настраивать этого стоголового монстра?
Аноним 18/01/22 Втр 00:51:44 #170 №2268456 
.png
.png
>>2245329 (OP)
Прохожу вводный курсик на степике так сказатьб. Кто-то может пояснить, что в данном случае не так?
У меня всё работает, а на сайте не проходит. я бы и там в комменты отписал, но автор курсика под этим заданием людям лишь год назад отвечал
Ну и код на пастебин: https://pastebin.com/rccCL2ER
Аноним 18/01/22 Втр 01:11:42 #171 №2268469 
>>2268456
>Ну и код на пастебин: https://pastebin.com/rccCL2ER
Я правда туда забыл main и includы добавить, но тут я думаю и так понятно какие инклюды добавить надо, чтобы работало.
Аноним 18/01/22 Втр 02:23:50 #172 №2268488 
>>2268295
а я был за тебя в этой дискуссии. хотя и не понимаю/понимал зачем gc.
Аноним 18/01/22 Втр 02:32:54 #173 №2268491 
зацените вычисление угла между векторами
https://pastebin.com/uuvVjBqA
я тоже хочу внимания
Аноним 18/01/22 Втр 02:34:07 #174 №2268492 
>>2268491
точность 1*10^-3. градусы в 0...1
Аноним 18/01/22 Втр 04:11:41 #175 №2268504 
code.png
Такой вопрос. Вот есть связной список типа пикрелейтед. Вот если я захочу его очистить мне нужно пройтись и вычистить каждую ноду, или достаточно только сам список в free кинуть?
Аноним 18/01/22 Втр 04:50:16 #176 №2268510 
>>2268504
достаточно. но ты распиши, почему ты решил что нет.
Аноним 18/01/22 Втр 05:03:45 #177 №2268512 
>>2268510
Да я ноль в сишке. Ну я думал что так-как ноды не хранятся непосредственно в стракте списка то и free не может знать сколько и где памяти освобождать. Ну кроме как рекурсивно пройтись по всем поинтерам.
Алсо, не подскажите с какими флагами надо запускать gcc чтобы он хоть как-то ексепшены показывал. А то сейчас он молча все компилирует, и так же молча при запуске вылетает.
Аноним 18/01/22 Втр 05:11:06 #178 №2268514 
>>2268512
1. free знает размер, потому что он записан по тому же указателю, но до.
2. держи мой скрипт (уже устарел наверно) https://pastebin.com/JSgeTbq7
Аноним 18/01/22 Втр 05:13:50 #179 №2268516 
>>2268512
[05:13:15 satan@system ~/zprof/dev/pro/otr] <(^^)>
$ sh ~/zprof/dev/pro/utils/ccflags/ccflags.sh --with-debug gcc
-std=c89 -Wfatal-errors -g -Werror -fsanitize=address -fsanitize=undefined -fsanitize=bounds -fsanitize=alignment -fsanitize=object-size -fsanitize=bounds-strict -Wduplicated-cond -Wshift-negative-value -fsanitize=signed-integer-overflow -fsanitize=pointer-compare -fsanitize=pointer-subtract
Аноним 18/01/22 Втр 05:18:59 #180 №2268517 
>>2268516
>C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lasan
>C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lubsan
>collect2.exe: error: ld returned 1 exit status
Аноним 18/01/22 Втр 05:20:30 #181 №2268519 
>>2268517
$ sh ~/zprof/dev/pro/utils/ccflags/ccflags.sh --get-ldflags --with-debug gcc
-fsanitize=address
Аноним 18/01/22 Втр 05:22:01 #182 №2268520 
но это не факт. как что в нашем мире линкуется, тем более, в разных ос - это одному богу известно.
Аноним 18/01/22 Втр 05:27:22 #183 №2268522 
>>2268519
Да, из-за фсанитайзов крашится. Наверное не поддерживает форточки.
Ну я
>-std=gnu2x -Wpedantic -w -Wfatal-errors -g -Werror -Wduplicated-cond -Wshift-negative-value
вписал, вроде начало ругаться когда пытаюсь стековые поинтеры освобождать.
Аноним 18/01/22 Втр 05:32:34 #184 №2268523 
>>2268522
наверно - не проверял. раньше и линковать не надо было. такая, ещё экспериментальная штука, чтоли. но советую.

ещё новый-модный https://github.com/IntelLabs/control-flag можешь прогнать. он по базе проектов определяет ошибку-около (на самом деле ложных я ещё не видел)
Аноним 18/01/22 Втр 10:20:56 #185 №2268606 
>>2268418
>и настраивать
Чо там настраивать то? Установил и хэлловордишь как не в себя.
Аноним 18/01/22 Втр 12:15:46 #186 №2268750 
>>2268606
Почему хэллоуворлдишь? Я вот просто установил и просто открыл жоповывернутую хуйню, и она просто работает. Никаких настроек.

Хотя нет, одна настройка всё же была, зайти в прайваси и отключить "фоновый процесс ватсон сбор телеметрии", лол.
Аноним 18/01/22 Втр 20:00:36 #187 №2269372 
>>2268456
Попробуй это
https://pastebin.com/8npGe6Mw
Аноним 18/01/22 Втр 22:00:35 #188 №2269516 
>>2269372
Каво нахуй, благодарю. Ты что магистр что ли? Можешь объяснить, что в моём не так было, я и так и эдак условия переделывал, а у тебя вуаля и всё. ну только вместо %d % PRId64, опечатался ты наверное
Ну хотя да, в этом моём
if (!a.valid && !b.valid) { return none_int64; }
___return a.valid ? a : b;
}
можно было придраться, но когда я множество раз менял, обрабатывая все возможные случаи, оно тоже не проходило.
Аноним 18/01/22 Втр 22:02:19 #189 №2269519 
>>2245329 (OP)
Хочу спросить о разработки на компилируемых языках.

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

Как происходит разработка таких больших проектов?
Аноним 18/01/22 Втр 22:44:40 #190 №2269583 
>>2269516
> Можешь объяснить, что в моём не так было
Могу.
Строчка
> return a.valid ? a : b;
Ты проверяешь что а - валидно и возвращаешь в этом случае a.
А задача - вернуть минимальное в случае если оба валидны.
Аноним 18/01/22 Втр 22:46:11 #191 №2269586 
>>2269519
бамп

как быстро вносить исправления и проверять без перекомпиляции?
Аноним 18/01/22 Втр 22:47:00 #192 №2269589 
>>2269583
Господи, я уже в глаза долблюсь. Спать пора
Эта строчка
> return a.value > b.value ? a : b;
Больше на меньше поменяй
Аноним 18/01/22 Втр 22:52:10 #193 №2269596 
>>2269516
А вообще. Потому и придумали TDD. Пиши для себя тестовый код в котором у тебя будет проверка ожидаемого результата и реального.
В си есть такая штука как assert.h используешь assert() сравниваешь там ожидаемый результат и реальный, выводишь в stderr значения аргументов и сразу видишь где и с какими данными у тебя проблемы. Потом можешь загнать эти данные и в дебагере по шагам пройтись, если сразу не заметишь ошибку.
Как-то так. Да.
Аноним 18/01/22 Втр 23:10:17 #194 №2269626 
>>2269589
>>2269583
Бля, ахахах. Ебать я долбоёб, там же меньшее нужно было возвращать, а не большее. Ахахах. Сука. Опять больше/меньше неправильно стоит, я так же ещё в 2х заданиях тупил, пока не сообразил. Ахахахах.
>>2269596
Понял, посмотрю.
Аноним 19/01/22 Срд 12:33:15 #195 №2270125 
execlp("ls", "-l", "-a", (char *) NULL);

Почему первый параметр ("-l"), не передается?
Выполняется "ls -a"
Аноним 19/01/22 Срд 12:58:18 #196 №2270140 
>>2270125
Передаётся. Он становится arg0. Почитай, как конвенциально используется arg0 в контексте вызова программ. Пиши
execlp(" ls", "ls", "-l", "-a", (char *) NULL);
Аноним 19/01/22 Срд 12:59:02 #197 №2270141 
>>2270140
пробел случайно поставился
Аноним 19/01/22 Срд 17:04:13 #198 №2270429 
dope3iatlut41.png
Подскажите как в Си сделать данные доступными для записи \ чтения двумя параллельными процессами?

Суть такова: есть несколько приборов, у каждого свой адрес и одинаковый набор параметров.

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

Мне поможет двусвязный список или что-нибудь ещё?
Аноним 19/01/22 Срд 18:12:23 #199 №2270523 
>>2270429
процессы - это только через файлы (в плане интерфейса). https://man7.org/linux/man-pages/man7/shm_overview.7.html
(ни разу не пользовался - может напиздел)

треды можно юзать?
Аноним 20/01/22 Чтв 05:22:59 #200 №2271145 
>>2270523
>треды можно юзать?
Я не знаю, это закрытая железка (под капотом какая-нибудь RTOS) и закрытое ПО.
Позволено создавать параллельные процессы \ задачи самого примитивного вида.
Аноним 20/01/22 Чтв 07:28:20 #201 №2271162 
>>2271145
не может быть что там нет posix threads
Аноним 20/01/22 Чтв 10:59:17 #202 №2271260 
Снимок экрана от 2022-01-20 10-58-32.png
>>2257900
Выкатываюсь из Windows с этой.
Аноним 20/01/22 Чтв 12:39:35 #203 №2271347 
>>2271260
> камран амини
это кто? звучит как чмо из индии.
Аноним 20/01/22 Чтв 12:42:11 #204 №2271351 
>>2271260
Если на книге есть ебло автора - то эта книга шлак галимый в 90%
Аноним 20/01/22 Чтв 12:48:09 #205 №2271356 
>>2271351
У Пакта часто такой дизайн обложек.
Аноним 20/01/22 Чтв 13:06:49 #206 №2271375 
{EAB07ECC-23B8-4CE3-8E03-D2E59BB518D2}.png
>>2271356
Двачую
Аноним 20/01/22 Чтв 13:27:29 #207 №2271398 
>>2271260
> ООП
В помойку, индус не знает куда еще свое ооп засунуть
Аноним 20/01/22 Чтв 20:07:48 #208 №2271784 
>>2271398
Нармальна! ООП там для понту больше. Чисто показать как можно наследелование, инкапсуляцию реализовать. И его подход с вынесением в хилеры минимально необходимого интерфейса мне нравится. А так там в основном про многопроцессность/многопоточность в никсах.
Аноним 20/01/22 Чтв 21:35:44 #209 №2271867 
code.png
err.png
Подмогните, пожалуйста.

Почему эта скотина ругается на закомментированный кусок кода? В симуляторе код нормально исполняется. В железе - вот такая фигня.
Аноним 21/01/22 Птн 03:19:00 #210 №2272036 
>>2271867
С недосыпа проебался в указателе на следующий узел.

Сейчас проснулся, продал глаза - взглянул, а там... Кек.

Всем спасибо. Ложная тревога.
Аноним 21/01/22 Птн 04:09:08 #211 №2272044 
>>2272036
>продал
продрал*
slow_fix
Аноним 22/01/22 Суб 14:25:24 #212 №2273186 
>>2262937
Так сдесь де блок цикла не правильный, нужно или else if или в {} запихнуть.
Аноним 22/01/22 Суб 14:41:51 #213 №2273209 
Привет! в общем тут такой вопрос, я редактирую в самой программе строку и хочу сохранить её в файл, то есть если я сам её редактирую, то /0 по дефолту не будет добавлен, да? так вот, для того, чтобы правилньо сохранить буффер в файл, мне надо добавлять самому 0 символ, или нет? просто насколько я помню EOF не 0, а вообще отрицательное число, поэтому я вообще не знаю как тут быть, нужен совет
Аноним 22/01/22 Суб 15:16:55 #214 №2273252 
>>2268456
Что за курс? Скинь ссылку
Аноним 22/01/22 Суб 18:04:17 #215 №2273483 
>>2271356
Так пакт это и есть шлак, там издаться может почти кто угодно, надо очень тщательно фильтровать. Это не орейли тебе.
Аноним 22/01/22 Суб 18:27:29 #216 №2273507 
>>2273209
Ты путаешь конец строки с концом файла
Аноним 23/01/22 Вск 00:49:50 #217 №2274038 
Плохая ли практика писать сразу в cpp файликах и не использовать хедеры?
Аноним 23/01/22 Вск 01:03:45 #218 №2274058 
>>2273209
\0 это признак конца сишной строки в памяти(крайне хреновый кстати, из-за которого нельзя \0 использовать в самой строке). В текстовом файле конец строки это \n или \r\n в зависимости от ОС. По крайней мере так разруливают все основные популярные апи дргугих языков, при работе с файлами. Допустим в шарпе, если ты будешь использовать File.ReadLinse("path") - то разделителем этих строк - будет \n или \n\r в зависимости от ОС, а при записи с помощью File.AppendAllLines ("path",strings[]) - в конце каждой строки - добавятся эти символы.
EOF - в сях/плюсах - это просто флаг того что файл/поток закончился и никуда его лепить не нужно. Да, во времена доса - там таки был такой символ, но использовалось это как костыль для своих досовских нужд.
Чтобы сохранить строку в файл ты должен, внезапно, просто записать все символы в файл, предварительно разрулив кодировку.
Аноним 23/01/22 Вск 09:19:15 #219 №2274249 
>>2273209
Открой одинаковые файл и буфер в хекс-редакторе/отладочном вьювере и посмотри как оно устроено.
Аноним 23/01/22 Вск 12:11:29 #220 №2274307 
>>2274058
>крайне хреновый кстати, из-за которого нельзя \0 использовать в самой строке
Зачем тебе его использовать в строке?
Аноним 23/01/22 Вск 12:13:50 #221 №2274308 
>>2274038
В больших проектах плохая, в ~1к строчниках имеет смысл.
Аноним 23/01/22 Вск 12:16:07 #222 №2274311 
>>2269586
Разбить на модули и тестировать их отдельно, иначе только мощное железо.
Аноним 23/01/22 Вск 12:24:27 #223 №2274314 
>>2274307
Ну, банально потому что символы в строке могут быть не однобайтовой кодировки?
Аноним 23/01/22 Вск 12:47:03 #224 №2274326 
>>2274314
Зачем тебе в ANSI строке терминальные нули? Для твоей задачи существуют широкие строки.
https://www.opennet.ru/man.shtml?topic=wchar.h
Аноним 23/01/22 Вск 12:54:44 #225 №2274336 
Как узнать чем является нестандартный тип, структурой или псевдонимом?
Аноним 23/01/22 Вск 12:58:44 #226 №2274341 
>>2274336
Если объявлен, как struct NAME { ... };, то это структура, а если объявлен, как typedef ... NAME;, то это псевдоним.
Аноним 23/01/22 Вск 13:00:09 #227 №2274343 
>>2274336
В Emacs M-x xref-find-definitions
Аноним 23/01/22 Вск 13:17:16 #228 №2274359 
как дела?
Аноним 23/01/22 Вск 15:34:12 #229 №2274508 
>>2274341
Как найти где оно там объявлено
Аноним 23/01/22 Вск 18:47:00 #230 №2274723 
1505714785414.png
вот почему у вас горит?
Аноним 23/01/22 Вск 20:44:26 #231 №2274885 
>>2274723
Лол, раст особо не помогает. Конечно он позволяет избежать глупых ошибок при работе с памятью, которые можно допустить по невнимательности, но всего того, что написано в твоем посте он не решает.
Раст - продукт от корпораций для корпораций, чтобы ускорить время и понизить стоимость разработки продукта, заменив высокооплачиваемых спецов на пару индусов. В общем, системное программирование может ожидать такая же участь как и веб с энтерпрайзом. У раста будет своя определенная ниша, но как УБИЙЦА няшной и плюсов он точно не годится.
Аноним 23/01/22 Вск 21:03:29 #232 №2274930 
G2BQZ6Z2.png
>>2274885
>этот дэмэджконтрол
>от жирной типовой пасты про вирджина и чэда
Аноним 23/01/22 Вск 21:42:11 #233 №2274982 
>>2274930
>этот дэмэджконтрол
Не поверишь, но я прямо сейчас пишу проект на расте и с радостью перешел бы на этот язык будь он готов. А пока что у него даже стандартов нет, весь стандарт - это текущая функциональность компилятора.

>от жирной типовой пасты про вирджина и чэда
А когда было иначе? Традиции нужно соблюдать.
Аноним 23/01/22 Вск 22:03:30 #234 №2274992 
>>2274982
у него же есть эдишны
отсутствие стандарта позволяет вносить новые фичи
Аноним 23/01/22 Вск 22:15:31 #235 №2274997 
>>2274992
>отсутствие стандарта позволяет вносить новые фичи
Я вот этого никогда не понимал. Накой хуй новые фичи в системном языке? Зачем там нужны лямбды и прочая ересь, которая стоит дополнительных ресурсов процессора? Почему некоторые не могут понять, что все, ГОТОВО и вечно пытаются что-то прилепить скотчем?

>новые фичи
Которые ограничены llvm, который развивается для плюсов, лол. Поэтому у раста по определению не может быть больще функционала чем у плюсов.
Аноним 24/01/22 Пнд 00:01:15 #236 №2275108 
>>2274997
кстати, лямбды будут в 23 стандарте
Аноним 24/01/22 Пнд 00:07:22 #237 №2275119 
>>2275108
Разве это уже решено? Все обсуждения в комитете уже прошли?
Аноним 24/01/22 Пнд 00:16:05 #238 №2275122 
>>2275108
Что что? В C будут лямбды?
Если мне нужен C++, я знаю где его взять, как говорится.

(эта цитата про ADA была оригинальная)
Аноним 24/01/22 Пнд 00:27:05 #239 №2275126 
>>2274997
>Накой хуй новые фичи в системном языке? Зачем там нужны лямбды и прочая ересь, которая стоит дополнительных ресурсов процессора?
Ну тут уже определение "системный" у каждого своё будет.

>Которые ограничены llvm, который развивается для плюсов, лол.
Ты ещё учишься, да? Или это троллинг тупостью?
Аноним 24/01/22 Пнд 00:34:57 #240 №2275127 
>>2274997
>Зачем там нужны лямбды и прочая ересь, которая стоит дополнительных ресурсов процессора?
https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
Сейчас разработчики пинуса и gcc жидко пёрнули со своими вложенными функциями, ренджами в свитчах и ещё полусотней нинужных фич. Ведь можно было всё захуярить на ANSI C и не прибивать яйца к жопаельному компилятору...
Аноним 24/01/22 Пнд 00:39:07 #241 №2275130 
>>2275127
Хотя судя по гуглу уже почти пару лет можно ядро пинуса вполне билдится шлангом, так что можно считать их пердёж высохшим, кек.
Аноним 24/01/22 Пнд 00:40:39 #242 №2275131 
>>2275126
>Ты ещё учишься, да? Или это троллинг тупостью?
А что не так, лол? Rust - фронтэнд для llvm, который в свою очередь изначально писался и пишется под плюсы. Специально по раст его никто изменять пока что не будет.
Аноним 24/01/22 Пнд 00:41:28 #243 №2275132 
>>2275127
>Ведь можно было всё захуярить на ANSI C и не прибивать яйца к жопаельному компилятору...
ДА.
Аноним 24/01/22 Пнд 00:44:59 #244 №2275134 
>>2275119
Ещё нет.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2892.pdf
Но лямбды судя по пропозалу просто спиздят из плюсов, вообще не о чем говорить даже.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
Мне больше вот это понравилось. Кто-то посмотрел как в Go выживают походу.
Аноним 24/01/22 Пнд 00:58:20 #245 №2275137 
>>2275131
>Rust - фронтэнд для llvm
Реально учишься походу.

>который в свою очередь изначально писался и пишется под плюсы
LLVM — промежуточный таргет с кучей бэкэндов и мидлварей до этих бэкэндов, из которых можно собирать что угодно хоть твою жирную гречневую мать. Он by design "language agnostic". Что там конкретно "пишется под плюсы"?

>Специально по раст его никто изменять пока что не будет.
А ты хотел бы лайфтаймы в IR добавить?
Аноним 24/01/22 Пнд 01:01:26 #246 №2275140 
>>2275137
Пидорас ты адекватный.
Аноним 24/01/22 Пнд 01:16:44 #247 №2275149 
>>2275140
Т пропустил, о расте же говорим.
Так что пиздуй в спать, скотина, завтра в школу.
Аноним 24/01/22 Пнд 01:27:41 #248 №2275166 
>>2275149
>завтра в школу.
Ох, если бы это было правдой, то я бы обрадовался.
Увы, но я уже зрелый мужик, который должен сам себя содержать и обслуживать. Как же я заебался...
Аноним 24/01/22 Пнд 05:10:36 #249 №2275216 
image.png
Привет.
Сижу сейчас компилю ядро Linux. Просто так. 20 лет этого не делал, решил вспомнить молодость. Прифигел от размера исходников.
Аноним 24/01/22 Пнд 06:26:53 #250 №2275236 
>>2275216
Дед, чем это ты занимаешься?
Мам, смотри Дед с ума сошел!
Аноним 24/01/22 Пнд 07:23:08 #251 №2275247 
>>2275216
Привет Денис, как дела?
Аноним 24/01/22 Пнд 09:03:07 #252 №2275266 
>>2274343
а что за теги нужны?
Аноним 24/01/22 Пнд 09:05:56 #253 №2275267 
>>2274982
>даже стандартов нет
мне вот это главное не понятно - почему они всё время меняют поведение? делали бы уже, за выдержкой лет, раст 2, 3, 4 - как культурные люди делают.
Аноним 24/01/22 Пнд 09:08:46 #254 №2275270 
>>2275267
или, вероятно, это попеннет в голову так проник, и там нет нарушений, а только нарост функционала. правда не понимаю раст, даже стыдно иногда становится, что все говорят про него, а я даже синтакстис не знаю.
Аноним 24/01/22 Пнд 09:13:12 #255 №2275273 
>>2275216
отключай сходу в конфиге все драйвера кроме тех что тебу нужно - скорость взлетит в небеса компиляции.
Аноним 24/01/22 Пнд 12:09:47 #256 №2275381 
>>2275266
Exuberant ctags. Хотя с clangd тоже должно работать.
Аноним 24/01/22 Пнд 12:12:13 #257 №2275382 
>>2275137
>>Rust - фронтэнд для llvm
>Реально учишься походу.
Пажжи, так для ржавого есть другие бэкэнды, кроме llvm?
мимо растохейтер
Аноним 24/01/22 Пнд 12:27:24 #258 №2275397 
>>2275382
Ещё один вкатыш не отличает языка от имплементации.
Это оксюморон уровня "С — фронтэнд для LLVM".
Фронтенд для LLVM — это конкретно rustc, как и clang.

>Пажжи, так для ржавого есть другие бэкэнды, кроме llvm?
Есть gccrs, mrustc. Хотя сути не меняет, даже не будь их.
Аноним 24/01/22 Пнд 12:28:12 #259 №2275399 
>>2275166
Перекатывайся в раст и начинай траповать, очевидно же что делать.
Аноним 24/01/22 Пнд 13:05:06 #260 №2275433 
>>2275399
а можно ли натягивать растотрапиков будучи СиГосподином?
Аноним 24/01/22 Пнд 14:40:16 #261 №2275532 
>>2275433
Можешь конечно.
Правда проблему самосодержания ты только ухудшишь для себя...
Аноним 24/01/22 Пнд 14:47:34 #262 №2275544 
>>2275433
>растотрапиков
они только в интернете есть, в реальности это джава-квазимоды
Аноним 25/01/22 Втр 12:19:11 #263 №2276250 
>>2273252
https://stepik.org/course/73618/
Аноним 25/01/22 Втр 17:35:35 #264 №2276597 
1643121333712.jpg
Хорошему проверенному человеку нужна помощь в выполнении заданий по С#, а именно по Windows Presentation Foundation.

Тг для связи: t.me/iglerrr

Заранее спасибо
Аноним 25/01/22 Втр 18:46:00 #265 №2276719 
чё там, униженные подскочили >>2276597 ? отпишитесь зачем
Аноним 25/01/22 Втр 20:02:15 #266 №2276802 
>>2276719
Жду, пишите.
Аноним 25/01/22 Втр 22:47:15 #267 №2277020 
image.png
Задание K&R 1.10
Написать программу для копирования входного потока в выходной с заменой знака табуляции на \t, символа возратат строки (бекспейс) на \b , а обратных косых черт на \\
Аноним 26/01/22 Срд 00:14:19 #268 №2277127 
Сап аноны. Есть чисто теоретический вопрос почему если в конце первой строки \n то вывод нормальный те 1 строка за ней 2-я. Но если поставить \t или любой другой управляющий символ то первой выведет jjjjj? Прога вроде бы не должна паралельно исполнятся .

#include <stdio.h>

main () {

printf("Hello scum\t");
system("echo jjjj");
//return 0;
}

Аноним 26/01/22 Срд 00:23:22 #269 №2277140 
>>2277127
Подозреваю, что как-то связано с буферизацией, ньюлайн сливает буфер.
мимо
Аноним 26/01/22 Срд 03:20:16 #270 №2277209 
Мужики, libc или glibc? Или вообще musl
sageАноним 26/01/22 Срд 09:11:53 #271 №2277276 
>>2276597
Нахуй пошёл.
Аноним 26/01/22 Срд 09:12:49 #272 №2277277 
>>2277209
Так под линупсом libc == glibc.
Newlib нахой.
Аноним 26/01/22 Срд 10:03:31 #273 №2277285 
>>2277277
Некоторые даже под линукслм libc/musl используют для своих програм. Вот и хочу понять для чего.
Аноним 26/01/22 Срд 10:57:13 #274 №2277314 
>>2277285
>libc
Нет, ты не понял. libc - это название для стандартной библиотеки C. glibc, musl и newlib - это её конкретные реализации.
Аноним 26/01/22 Срд 11:08:51 #275 №2277319 
>>2277314
Ну вот на BSD системах используется стандартная реализация, так и называется libc. В линуксе используется уже другая реализация стандартной библиотеки - glibc. Я вот и хочу понять в чем между ними разница.
Аноним 26/01/22 Срд 11:35:40 #276 №2277337 
>>2277127
man system
он форкает процесс и ждёт, пока тот исполнится.
в итоге он сначала сбрасывает буфер echo, а потом main
Аноним 26/01/22 Срд 12:26:40 #277 №2277383 
>>2277319
>Ну вот на BSD системах используется стандартная реализация, так и называется libc
https://ru.wikipedia.org/wiki/Стандартная_библиотека_языка_Си
>Стандартной библиотекой языка Си (также известная как libc, crt) называется часть стандарта ANSI C
Если всё ещё не понял — под libc понимают любую реализацию, соответствующую стандарту. А в BSD просто не стали запариваться с названием для своей.
Аноним 26/01/22 Срд 12:48:17 #278 №2277402 
>>2277383
>А в BSD просто не стали запариваться с названием для своей.
Вот, это и запутало, теперь понятно.
Аноним 26/01/22 Срд 16:44:20 #279 №2277714 
Анончик, у тебя не бывало такого чувства, что после того, как напишешь что-то сложное и стоящее лично для себя, не сможешь после этого проекта ничего выдавить из себя? ну типа вот бывает кураж такой, начинаешь писать, получается, идеи сами лезут в голову, но после него(куража) не сможешь вообще ничего выдавить, даже банального чего-то. Если у тебя такое было, можешь поделиться че делать в таких ситуациях, или это само с временем пройдёт и не надо загоняться?
Аноним 26/01/22 Срд 16:57:08 #280 №2277741 
>>2277714
Отвлекись и отдохни, сменив род деятельности. Сходи на рыбалку, в театр, и т.д. После "выжималки" обязательно нужно отдыхать.
Аноним 26/01/22 Срд 19:40:29 #281 №2277961 
>>2277337
>>2277140
Добра Аноны.
Аноним 26/01/22 Срд 22:14:33 #282 №2278124 
Извечный вопрос gcc vs clang.
Я как начинающий байтоеб хочу знать во что более перспективно вкатываться. Или это не имеет значения?
Аноним 26/01/22 Срд 23:31:51 #283 №2278166 
>>2278124
>Или это не имеет значения?
Аюсолютно никакого.
Аноним 27/01/22 Чтв 21:34:16 #284 №2279213 
>>2278124
В стандарт С11 через KnR
Аноним 27/01/22 Чтв 22:00:45 #285 №2279241 
Как пишут обёртки над разными либами? Допустим есть веб-сервер на C++, как можно использовать его из кода на python или другом языке?
Аноним 27/01/22 Чтв 22:06:49 #286 №2279248 
>>2279241
У языка есть интерфейсы для этого, с которыми он знает как работать. Тебе надо их реализовать и заработает, очевидно же.
Аноним 27/01/22 Чтв 22:32:56 #287 №2279258 
>>2279248
>У языка есть интерфейсы для этого, с которыми он знает как работать.
Очень абстрактно. На практике как это выглядит? Есть https://github.com/uNetworking/uWebSockets веб-сервер с феноменальными показателями производительности (обходит Nginx как стоячего). Каким то образом его используют https://github.com/uNetworking/uWebSockets.js на Node.js. Как используют не знаю, в доке не описано, а в коде я не смог разобраться. Автор не хочет портировать на другие языки. Вот мне стало интересно, можно ли использовать этот сервер например из PHP.
Аноним 27/01/22 Чтв 23:09:10 #288 №2279288 
>>2279258
>PHP
Как там в нулевых?
Аноним 27/01/22 Чтв 23:14:03 #289 №2279292 
>>2279288
>Си
Как там в 60-х?
Аноним 27/01/22 Чтв 23:41:49 #290 №2279331 
>>2279292
Заебись, через 63 года новый стандарт выходит, с лямбдами и STM
Аноним 28/01/22 Птн 00:42:17 #291 №2279394 
>>2279241
>как можно использовать его из кода на python или другом языке?
В случае интерпретаторов пишутся экстеншены. Это бридж от твоего интерпретатора до нативного кода, который прокидывает вызовы, маппит типы, менеджит память и тд. Короче, делает всю байтоёбскую работу, которой ты не видишь из интерпретатора при написании клиентского кода.

Гуглишь "nodejs/php/python extension c/c++" и читаешь доки. С твоим уровнем бесполезно, начни с байтоёбства попроще.

>>2279258
>Очень абстрактно.
Для нативных языков — это все 100% работы, которую для такого надо сделать, ничего абстрактного.
Аноним 28/01/22 Птн 00:45:10 #292 №2279397 
280x1782.jpeg
>>2279288
Шутки шутками а пол хуя в желудке, но без всякой иронии это всё ещё один из самых используемых языков на бэке.
Аноним 28/01/22 Птн 09:53:03 #293 №2279549 
>>2279397
Миллион мух не может ошибаться.
Аноним 28/01/22 Птн 10:58:21 #294 №2279634 
>>2279549
Это относится и к Си. Не даром современные программисты стараются вместо C/C++ использовать другие компилируемые языки. Вот ты знаешь C/C++, а можешь написать такой же https://github.com/uNetworking сетевой стек? Если нет, то выброси свои "знания", они бесполезны. Если ты со своим Си не можешь написать ничего, то не гони на PHP и другие языки. Язык нужен чтобы на нем писать софт, решать задачи. Если задачи не решаются, то язык такой никому не нужен. На Си что то писать нормальное могут единицы. Просто потому, что нужны очень глубокие знания платформы и сопутствующего. Если у тебя таких нет, то твои понты не стоят ни гроша.
Аноним 28/01/22 Птн 11:03:27 #295 №2279642 
iwl4Yz7Fok.jpg
Zdraste, начал учить программирование.
Полузнакомый-полудруг полупрогер-полупокер посоветовал начать изучение с языка си, сказал что это наиболее оптимальный язык для понимания сути программирования. Посоветовал книги: Дейтел, Пратта, Керниган Ричи
Ну вот я начал с самой тонкой и вскоре понял что чот трудно. Ну открыл книги потолще и вроде стало полегче постепенно эти циклы там переменные форматирование и т.п. мелочи. И дохожу я значится то массивов и вот уже прошло времени где-то с месяц, а я до сих пор туплю на массивах на всех этих элементарных вещах вроде заданий с учебников даже на одномерных массивах. Причем когда подгляжу решение т.е. код. И вчитаюсь в него, то все становится вроде понятным, а как только снова надо решить задачу чуть чуть отличающуюся вернее с дополнительным действием, то сразу возникают трудности с реализацией этой задачи. Я что тупой что ль и программирование не мое? А дальше ведь указатели и ещё какие-то функции из стандартных библиотек на полкниги всякие проверки условий гетчары путчары эндоффайлы строки структуры жонглирование и фристайлинг ими....
Аноним 28/01/22 Птн 11:30:22 #296 №2279659 
16414546622790.jpg
>>2279634
Как же годно у пхп-обдристыша пичот, аж пустился в какую-то софистику.
Аноним 28/01/22 Птн 11:35:09 #297 №2279664 
>>2279642
Сейчас бы слушать кого попало. Если ты на дваче или у знакомого программиста спрашиваешь "какую книгу мне прочитать?" Приготовься, что тебе посоветуют лютую хуйню. Проблема не в самом программировании, а в том, как вы обучаетесь.

Ошибка всех нубов в том, что вы с нуля сразу садись штудировать серьёзные фундаментальные книги. По тысяче страниц и более. Зачем? Это как в тренажёрном зале, придти и сразу начать тягать штангу в 300кг. Чтобы сразу сорвать мышцы и уйти, хлопнув дверью сказать "тренажёрка не для меня!"

Если хочешь нормально обучаться - возьми прямо совсем лёгонькую книгу. Какой-нибудь типа "c++ для чайников". И потихонечку-полегонечку почитывай, страниц по 10 в день. Не нужно себя насиловать и пытаться за один день стать супер-профессионалом. Если не заходит - возьми что-нибудь другое! Программирование должно быть чисто в удовольствие, без всякого напряга.

Нагрузку нужно повышать постепенно. И закреплять всё на практике. Самую базу выучил - пишешь код. Ещё чуть-чуть подучил - ещё написал кода. На гитхабе можно чужой проект найти и поковырять его внутренности. Без реальной работы с кодом ты просто не поймёшь теорию.
Аноним 28/01/22 Птн 13:44:35 #298 №2279757 
>>2279634
>Вот ты знаешь C/C++, а можешь написать такой же https://github.com/uNetworking сетевой стек?
Любой каприз за твои деньги.

> Если ты со своим Си не можешь написать ничего
Не проецируй.
Аноним 28/01/22 Птн 14:27:41 #299 №2279792 
>>2279664
>На гитхабе можно чужой проект найти и поковырять его внутренности.
Охуенно пошутил, учитывая уровень проф проектов и уровень вкатывальщика.
Аноним 28/01/22 Птн 16:29:22 #300 №2279949 
>>2279659
>пук

>>2279757
>пук

Ну и где ваш код? Все что можете это щеки надувать.
Аноним 28/01/22 Птн 16:33:21 #301 №2279956 
>>2279642
>хнык-хнык
Щас бы слушать жалобы, что не получается стать программистом за 21 день. За такой срок ты даже верстке нормально не научишься. Скорее всего за этот месяц ты 99% времени читал и только 1% писал код. Вот и делай выводы. У тебя всего несколько часов практики, а чтобы стать профи нужны тысячи часов.
Аноним 28/01/22 Птн 19:04:32 #302 №2280210 
>>2277402
а libc на bsd только для неё самой? просто glibc не только под линукс, а линукс не цельная система, так что это оправдывает _своё_ название.
Аноним 28/01/22 Птн 19:22:17 #303 №2280225 
>>2279956
вово. я вон например читаю-вспоминаю геометрию, и не ленюсь все задания решать и чертить. иначе нихера не поймёшь.
Аноним 28/01/22 Птн 21:39:17 #304 №2280362 
>>2280210
POSIX даже в Африке POSIX.
Аноним 28/01/22 Птн 21:48:56 #305 №2280372 
>>2280362
posix это надмножество стандарта си.
Аноним 28/01/22 Птн 23:45:11 #306 №2280435 
>>2279949
> аппеляция к авторитету на анонимной имиджборде
похапе-макака продолжает бурлестать
Аноним 28/01/22 Птн 23:46:47 #307 №2280436 
>>2280210
>а libc на bsd только для неё самой?
Конечно, любая libc прибита гвоздями к ядру ОС, для которой она написана.
Аноним 29/01/22 Суб 01:01:38 #308 №2280482 
Сап,

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

int8 foo[];

foo[0] = 0x11;
foo[1] = 0x22;
foo[2] = 0x33;
foo[3] = 0x44;
func(&foo);

foo[0] = 0x55;
foo[1] = 0x66;
foo[2] = 0x77;
foo[3] = 0x88;
func(&foo);

Думал сделать как-то так:

int32 foo;

foo = 0x11223344;
func(foo);

foo = 0x55667788;
func(foo);

А дальше уже разбор на кусочки foo внутри функции. Но неспортивно, т.к. массив может быть длинее.

Есть ли нормальный способ делать как-то компактнее, без всяких циклов и доп переменных?

Но конечно, рука так и хочет написать:
foo = {11, 22, 33, 44};
Аноним 29/01/22 Суб 01:02:10 #309 №2280483 
>>2280482
>int8 foo[4];

фикс
Аноним 29/01/22 Суб 01:34:05 #310 №2280499 
>>2280482
>foo = {11, 22, 33, 44};

Это и есть решение, только помни про byte order

И зачем ты в функцию передаешь указатель на указатель?
Аноним 29/01/22 Суб 02:48:56 #311 №2280518 
>>2280499

>И зачем ты в функцию передаешь указатель на указатель?
Да по ошибке, просто не стал второй раз делать фикс.

А вообще, там на самом деле вообще структура у меня.

А ты уверен, что так можно на C?
UINT8 foo[4];
foo[] = {11, 22, 33, 44};

Только так можно.

UINT8 foo[4] = {11, 22, 33, 44};

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

typedef struct {
UINT8 baz[3];
} bar;

bar foo;

foo = (bar){ .baz = {1,2,3} };
foo = (bar){ .baz = {4,5,6} };

Аноним 29/01/22 Суб 03:27:47 #312 №2280525 
>>2280518
>Пока что выкрутился такой оберткой, но выглядит как-то погано, не думаю, что это экономно по памяти:
>
>typedef struct {
>UINT8 baz[3];
>} bar;
>

Выравниваение тут произойдёт и займёт ширину машинного слова. Или 32 бита.

Чтобы отключить выравнивание используй директиву препроцессора

#pragma pack(1)

Аноним 29/01/22 Суб 10:17:51 #313 №2280572 
>>2280518
> А ты уверен, что так можно на C?
Начиная с C99 можно: https://en.cppreference.com/w/c/language/array_initialization
Аноним 29/01/22 Суб 10:31:55 #314 №2280579 
>>2280435
Школота-хеловорлдщик
Аноним 29/01/22 Суб 13:35:08 #315 №2280684 
>>2279642
Обычно самоучки чем-то стоящим становятся месяцев через 6. Пригодными для решения реальных задач становятся через год. И лишь через два года они могут создавать большие и надёжные проекты. Разумеется, это усредненные числа, у каждого индивидуально может наступить каждый из моментов раньше или позже в зависимости от выбранных методов обучения, количества свободного времени и сил, способностей и связей с другими.
Аноним 29/01/22 Суб 16:08:09 #316 №2280778 
photo2022-01-2912-38-54.jpg
>>2280579
Расмус-то? Ясен пень.
Аноним 29/01/22 Суб 16:46:26 #317 №2280806 
>>2277714
Обыкновенная физиология. За сильное возбуждение нервной системы неизбежно расплачиваешься утомлением. Если очень интересно, можешь почитать "Гениальность и помешательство" Ломброзо, там этот вопрос часто поднимается.
Аноним 30/01/22 Вск 00:06:29 #318 №2281104 
>>2245329 (OP)
Какие есть альтернативы protobuf, пригодные для описания различных закодированных или сериализованных структур данных? Чтобы работать с бинарными протоколами различными. Думаю, реализовать для себя нечто подобное, или изучить готовое, если есть.
Аноним 30/01/22 Вск 12:00:49 #319 №2281342 
Аноны из ембеддеда, системщины и других низкоуровневых отраслей.
У вас на работе тоже имеются QA, аналитики, ПМы, менеджеры и прочие социобляди в огромном количестве?
Аноним 30/01/22 Вск 17:13:27 #320 №2281640 
>>2281104
Есть flatbuffers, есть bencode, но проще всего сделать что-то свое. Есть ровно три варианта: срать текстом, срать сырыми структурами (тебе будут говорить, что это плохо, но ты не верь) или срать каким-то подобием TLV (отправляешь tag/type, опционально length и потом value).

Алсо, чем тебе протобуферы не угодили кроме отсутствия официальной поддержки сишки?
Аноним 31/01/22 Пнд 20:14:38 #321 №2282686 
>>2281342
у меня дома только мама и тётя.
Аноним 31/01/22 Пнд 21:15:04 #322 №2282757 
>>2281640
>чем не угодил
Вот есть уже готовый протокол древний какой-нибудь, описанный в толстом PDF или xls файле. Там по сути структуры, по-разному закодированные строки (то с размером, то null-terminated), числа, enum, массивы и структуры в структурах.
Protobuf, как я понял, для такого не годится, так как он для новых протоколов заточен, и там не настолько всё гибко, чтобы поддерживать легаси. Или я ошибаюсь? Возможно, что-то такое реализовано где-то в Wireshark, там есть поддержка огромного числа протоколов, всё разбирается по полям.

Было, в общем, прикольно бы описывать эти структуры общим каким-то способом, и потом на основе этого генерировать сериализаторы/десериализаторы, или интерпретировать формат и обрабатывать данные на лету, как в sprintf/sscanf.

По поводу сырых структур, там ещё бывает нужно с endianness разобраться, если машины разные.
Аноним 31/01/22 Пнд 23:51:36 #323 №2282952 
>>2247328
В какой момент возникло такое понимание? В чём сложности?
Аноним 02/02/22 Срд 14:16:59 #324 №2284546 
>>2245329 (OP)
Хочу познать как пишут клиент-серверные приложения в телекоме. Что и где читать? Какой язык, Си или Эрланг, или оба? Где вообще лучше такие вопросы задавать?
Аноним 02/02/22 Срд 14:54:31 #325 №2284571 
>>2284546
Прям телеком-телеком уровня коммутаторов? А так плюсы и ява.
Аноним 02/02/22 Срд 15:30:37 #326 №2284600 
image
Бамп.
Аноним 02/02/22 Срд 16:09:30 #327 №2284641 
code.png
>нравятся длинные названия для функция и переменных
>нравится ограничивать длинну строки до 80 символов
>не нравится добавлять много белого пространства
>не нравится 2 пробела для таба, слишком мало
>не нравится 4 пробела для таба, слишком много
>3 пробела это ебланизм
че делать, выглядит уродливо. как как победить аутизм?
Аноним 02/02/22 Срд 16:38:35 #328 №2284664 
20220202163555963315291.png
>>2284641
4 пробела выглядит лучше, чем 3 или 2. Потому что когда пишешь "if (", то следующая строка начинается там же, где и условие в if, что выглядит ровно и красиво. Используй 4 пробела.
Аноним 02/02/22 Срд 17:16:55 #329 №2284706 
>>2284664
А мне вот не нравится, когда следующая строка начинается там же, где и условие в if.
Аноним 02/02/22 Срд 17:30:40 #330 №2284726 
>>2284641
Царь, ты?
Аноним 02/02/22 Срд 17:31:11 #331 №2284729 
>>2280778
>I have absolutely no idea how to write a programming language
Никто не знал, когда PHP появлялся. Единственная адекватная на эту тему литература, которая была доступна, это книжка с дракончиком. Если тебе нужно создать небольшой язык для работы с формами, тебе не нужно её читать.

>I just kept adding next logical step on the way.
И правильно делал, так реальные программисты решают реальные проблемы.

>I'm still bad at writing parsers.
Парсинг это ничтожная часть рантайма в любом языке программрования.

>The function hashing mechanism was strlen()
Хеш функцию несложно заменить, если нужно. Сокрее всего тебе вообще не нужно будет ничего хешировать на ранней стадии разработки языка программирования. strcmp() линейно ищя нужный айдентифаер в массиве будет работать адекватно.

>I don't care about this crap at all.
Всем адекватным людям тоже на это похуй.

База, кароче говоря. У руби например долгое время вообще не было виртуальной машины и язык работал проходясь по сгенерированным парсером АСТшкам.
Аноним 02/02/22 Срд 17:34:33 #332 №2284738 
>>2245329 (OP)
Можно как то зарабатывать не устраиваясь никуда и не влезая во фриланс? Просто так писать код не интересно, хочется чтобы это приносило хоть какие то деньги. Можно написать приложение для андроида, но это долгий путь. Нужно сделать хороший интерфейс, нужно продвижение. Писать какие нибудь парсеры? Это нужно искать заказы. Есть способы заработать написав приложение, которое продавать на маркетплейсе или же написав приложение, которое будет как то деньги добывать?
Аноним 02/02/22 Срд 18:57:55 #333 №2284842 
>>2284664
>Потому что когда пишешь "if (", то следующая строка начинается там же, где и условие в if, что выглядит ровно и красиво.
Самый тупой аргумент. Почему именно для if? Существуют же еще for и while, почему тогда не 5 или 7 пробелов?
Аноним 02/02/22 Срд 20:28:34 #334 №2284966 
>>2284738
>можно ли зарабатывать не платя налоги
Аноним 02/02/22 Срд 20:41:43 #335 №2284979 
>>2284738
Создай подобную хуйню, если выстрелит, то можешь больше не работать и сычевать ближайшие лет 5 минимум. https://ru.wikipedia.org/wiki/Yandere_Simulator
Аноним 02/02/22 Срд 20:53:11 #336 №2285002 
>>2284842
Потому что if встречается в C-коде значительно чаще циклов (из-за обработки ошибок). Ну и это, аргумент не был на 100% серьезным, если ты не понял.
Аноним 03/02/22 Чтв 10:04:48 #337 №2285335 
Как же меня печёт. Хочу похвастаться своим git, но не хочу деанониться на двачах. Придётся хуячить статью на Хабре, плюсы в карму зарабатывать.
Аноним 03/02/22 Чтв 10:27:21 #338 №2285348 DELETED
>>2285335
>статью на Хабре
Говноед
Аноним 03/02/22 Чтв 10:42:59 #339 №2285355 
>>2285335
>Хочу похвастаться своим git
100 форков крупных проектов без изменений?
>Придётся хуячить статью на Хабре, плюсы в карму зарабатывать.
Слишком толсто.
Аноним 03/02/22 Чтв 10:48:10 #340 №2285356 
А если в сторонней либе есть enum{}, то я никак не могу, не трогая код из нее, добавить в него еще значений?
Аноним 03/02/22 Чтв 10:50:31 #341 №2285358 
>>2285356
Никак, к тому же зачем? Если в сторонней библиотеке есть enum, значит его значения используются внутри нее, зачем тебе изменять его возможные значения, если они не будут использоваться внутри нее?
Аноним 03/02/22 Чтв 10:54:11 #342 №2285359 
>>2285358
Ну, например, эта либа задает базовый функционал, например, в ней есть базовый набор кубиков для конструктора. Но используя ее, нужно расширить этот функционал, а тип этих кубиков задается в enum, а не строковому названию. Поэтому для расширения требуется как-то впихнуть еще значения в enum, но не трогая код самой либы базовой. Вроде в SDL что-то такое было для добавления своих event и они там тоже в своем enum были, но точно не помню
Аноним 03/02/22 Чтв 11:04:26 #343 №2285365 
>>2285359
В современном мире это делается за одни пул-реквест дорогому Виджаю.
Аноним 03/02/22 Чтв 11:07:30 #344 №2285367 
>>2285365
Так принцип-то не тот: базовая либа она и предназначена для только базового функционала, а пользователи расширяют ее под свои задачи.
А не знаете в плюсах такое тоже отсутствует?
Аноним 03/02/22 Чтв 11:11:27 #345 №2285369 
>>2285359
Мне в какую-либо функцию поступает enum, принимающий значения EVENT_HUY, EVENT_PIZDA, EVENT_JOPA, в моей (внутренней) функции, реализуется функционал для каждого значения, скажем через таблицу строк, функций и т. д.. Чтобы какой-то анон с двача, изменил поведение моей функции, ему надо переписать ее, иначе я бы использовал define для принимаемых констант, если бы добавил (хотел добавить) возможность расширение функционала без вмешательства в исходники. Ты же хочешь просто добавить еще какие-то значения, которые моя функция не ожидает, если я использую таблицу (массив) строк, для каких-либо строковых представлений значений (для отладки, вывода и т. д.), то твое расширение функционала - это потенциальная запись/чтение, в какую-то память, что приведет к ошибкам, уязвимостям в конечном (твоем) продукте. Вывод: переписывай исходники или найди документированный способ добавления нового функционала в нужную тебе библиотеку без изменения исходников.
ТУПОЕ РАСШИРЕНИЕ ПЕРЕЧИСЛЕНИЯ НЕ ВЫХОД!
Аноним 03/02/22 Чтв 11:20:36 #346 №2285378 
>>2285367
Нету. На это завязана проверка switch, а еще некоторые компиляторы сами выбирает ширину типа для enum.
Аноним 03/02/22 Чтв 11:22:20 #347 №2285382 
>>2285369
>>2285378
Спасибо, значит только через hashmap такое реализуется
Аноним 03/02/22 Чтв 12:03:47 #348 №2285419 
>>2245552
>нужно всего лишь... хоть раз реализовать ADT на Си
Подскажи как это делать, в каких книгах или мануалах почитать?
Аноним 03/02/22 Чтв 13:17:28 #349 №2285504 
>>2284729
Блядь, похаперебёнок, почему ты всё ещё копротивляешься? У тебя был шанс тихо уйти из треда размазывать своё говно по ляшкам, а теперь тебе придётся ещё рот от мочи полоскать.
Аноним 03/02/22 Чтв 17:57:32 #350 №2285845 
>>2285504
Пёс, голос!
Аноним 03/02/22 Чтв 18:06:12 #351 №2285855 
>>2285504
Чем ты хвалишься, дура? Язык Си не ты создала. Своим есть чем похвалиться? Код хоть есть какой? Какой же ты ребенок. Только дети хвалятся не своим.
Аноним 03/02/22 Чтв 18:38:05 #352 №2285883 
>>2285855
ГОВОРИШЬ ЧТО ЯЗЫК ГОВНО
@
СДЕЛАЙ ЛУЧШЕ!

ГОВОРИШЬ ЧТО ФИЛЬМ ГОВНО
@
СНИМИ ЛУЧШЕ!

ГОВОРИШЬ ЧТО ЯЙЦА ПРОТУХЛИ
@
САМ СНЕСИ СВЕЖИЕ!
Аноним 03/02/22 Чтв 18:53:04 #353 №2285902 
>>2284729
Очередное подтверждение того что скриптоложество, и пхп в частности, разжижает мозг..
Аноним 03/02/22 Чтв 19:07:20 #354 №2285917 
>>2285504
>>2285883
Тупой школьник, только дети хвалятся тем чего не добились. Например, что у них папа ко-ко-ко. Только вот они ничего не сделали для того чтобы их отец чего то достиг. Они получили отца которого получили. У кого то отец успешный, а у других алкоголик. Это не значит, что ребенок успешного отца приложил усилия для чего то. Также как хвалиться национальностью или местом рождения. Тупица, ты не заслужил это, не добился, не выбирал, ты просто получил это как есть.

Ты такой же недоразвитый дегенерат. Восхваляешь себя из за Си, который не ты разработал. Ты просто им пользуешься (очень сомневаюсь, что ты написал что то на нем). Ты мог бы похвалиться написанным кодом, но у тебя его нет. Так что закрой рот, щенок.
Аноним 03/02/22 Чтв 19:11:38 #355 №2285924 
>>2285504
>>2285883
Ты тупее осла. PHP это все лишь инструмент. Почему меня должны волновать твои высеры в сторону PHP? Да, я им пользуюсь. Как и многими другими языками. И что с того? Почему мне должны быть стыдно или что ты там имеешь в виду? Дегрод. Это тебе нужно стыдиться, что ты такое чучело недоразвитое. Отброс.
Аноним 03/02/22 Чтв 19:18:42 #356 №2285932 
pepe-smoke.png
>>2285917
>>2285924
Иди отсюда пхпвоен.
Аноним 03/02/22 Чтв 19:21:48 #357 №2285935 
8926d22b02f9c3b2303ec19157d84c29.jpg
>>2285917
>>2285924
Кокой сердитый пхпешник. Наверно сам столько сделал для величия языка, что не может сидеть сложа руки, когда на анонимном форуме о нём неодобрительно высказываются.
Ещё и своего батю-алкоголика приплёл зачем-то.
Аноним 03/02/22 Чтв 19:22:57 #358 №2285936 
>>2285355
>100 форков крупных проектов без изменений?
Гы. Ни одного форка. Три проекта на сях. Один из них учебное говно для студентов, который неплохо было бы прибить. Второй - консольная игрушка десятилетней давности. А вот третий... тоже на сях и думаю что вскоре он будет популярен. Не потому что проект крутой, а потому что я "запрыгнул на спину" крупной компании, выводящей новый продкукт. Короче говоря - я подсуетился и сделал к этому продукту консольную утилиту.
Аноним 03/02/22 Чтв 19:26:46 #359 №2285941 
>>2285932
>Иди отсюда
Червя-зумера забыл спросить.

>>2285935
>о нём неодобрительно высказываются
Переобуваешься, червь. Ты начал оскорблять меня, типа потому что я использую PHP. Тупая дура, школьница.

>своего батю-алкоголика приплёл
Мой отец не пьёт, дегрод ты пустоголовый. Как будто ты не видел, что я не своем отце писал. Хотя, ты же червь безмозглый, поэтому не удивительно.
Аноним 03/02/22 Чтв 19:27:55 #360 №2285945 
не рвемся сохраняем спокойствие
Аноним 03/02/22 Чтв 19:29:26 #361 №2285946 
>>2285941
>Червя-зумера забыл спросить.
>Переобуваешься, червь.
>Тупая дура, школьница.
>дегрод ты пустоголовый
>ты же червь безмозглый
Пхпдев пытается в общение.
Аноним 03/02/22 Чтв 19:29:57 #362 №2285947 
>>2285335
>Хочу похвастаться своим git, но не хочу деанониться на двачах.
Боишься, что в школе затроллят?
Аноним 03/02/22 Чтв 19:31:08 #363 №2285949 
>>2285945
Червь делает вид, что имеет поддержку. Лол

>>2285946
Типа ты общаться можешь. Ты червь, а с червем общение короткое.
Аноним 03/02/22 Чтв 19:34:06 #364 №2285951 
>>2285949
>Червь
>Лол
>Типа
>червь
>червем
Аноним 03/02/22 Чтв 19:38:11 #365 №2285957 
>>2285951
Я ЧЕРВЬ-ПХПШНИК ХУЖЕ МЕНЯ УЖЕ НЕТ
Аноним 03/02/22 Чтв 19:42:47 #366 №2285962 
>>2285947
> в школе
Как что-то плохое. Ну ваще-то первую зряплату за программирования я получил в 1993 году. Внезапно это была программа на Си для отдела кадров. Никаких 1С тогда и в помине не было.
Аноним 03/02/22 Чтв 22:46:28 #367 №2286113 
>>2285917
Друг, я ничем не хвалился, я просто на пальцах разложил, почему твой любимый язык программирования - говно. По какой причине ты продолжаешь копротивляться, мне неведомо.
Аноним 03/02/22 Чтв 23:58:45 #368 №2286180 
>>2286113
>твой любимый язык программирования
К твоему сведению, мой любимый язык программирования это Лисп. Если порассуждать, то окажется, что Си по сравнению с Лиспом это как Запорожец по сравнению с Ламборджини. Поэтому не стоит плеваться желчью, сам себя обольешь.
Аноним 04/02/22 Птн 09:35:11 #369 №2286351 
>>2286180
>Ламборджини
Ну да, по затратам цп и памяти.
꧁꧂
Аноним 04/02/22 Птн 09:53:09 #370 №2286359 
>>2285962
Какой лвл?
Пенсия сколько?
Аноним 04/02/22 Птн 11:38:53 #371 №2286453 
>>2286180
Так а чо ж ты за пыху тогда уже полтреда впрягаешься? Не пора ли притушить свою анальную боль и пойти дописывать свой кластер метапарадигм на твоём действительно любимо языке?
Аноним 04/02/22 Птн 12:37:41 #372 №2286510 
>>2286453
Любимый лисп — это как любимый хаскелль, он в сердечке, а не в проктах.
Аноним 04/02/22 Птн 15:08:42 #373 №2286685 
>>2286351
Есть компилируемые лиспы. Есть без GC. Язык это прежде всего мощь абстракций, а не оценка затрат. Ну сэкономишь ты жалкие 500 Мб оперативки, ну сэкономишь немного процессора. Это железо можно купить за 300-500 рублей в месяц. Зато ты потратишь в 5-10 раз больше времени на разработку. А еще 100% у тебя будет очень много багов, которые потом еще долго нужно будет фиксить. Вот поэтому Лисп это Ламбо, а Си это Запорожец. Да, Запорожец экономней, но на нем ты быстро не доедешь до цели, также и на Си ты быстро не напишешь проект.

Процитирую резюме Льва Валкина:
Десятки тысяч строк C для TCP и HTTP акселератора на FSM. Больше так не буду.

https://career.habr.com/walkin

Если что, то это топовый программист, давно живущий в силиконовой долине. Он си-хакер. Вот один из его проектов https://github.com/satori-com/tcpkali

Он писал в продакшн на разных языках, в том числе на экзотичесих вроде Эрланга и Окамла. И что же мы видим, он пишет, что написать 10к строк кода на Си это ужас, что больше так делать он не хочет. Поэтому те кто понимают что к чему, выбирают Окамл, Раст, что угодно, но только не Си.

Вывод очевиден. Ты школьник, ничего не смыслящий в программировании, в Си, в лиспах.

>>2286453
>Так а чо ж ты за пыху тогда уже полтреда впрягаешься?
Во первых, где? Во вторых, а что не могу? Или ты тут за Си не впрягаешься? Ну тогда и PHP тебя не должен беспокоить.
Аноним 04/02/22 Птн 15:29:48 #374 №2286716 
>>2286685
Ты долбоёб не умеющий в иронию.
Етого ты не заметил?
Обо мне

Специализация и профессиональные навыки:
Unix, Internet, C.
Аноним 04/02/22 Птн 16:04:08 #375 №2286763 
>>2286716
>Етого ты не заметил?
Чего этого?

>Обо мне
?

>Unix, Internet, C.
И ??? А, ты наверное хочешь выкрутиться и сказать, что Валкин не писал ни на каком Окамле и т.п.? Загугли, инфы про него много. Здесь есть все ключевые слова, и Lisp тоже https://www.slideshare.net/j2a/ss-4625844
Аноним 04/02/22 Птн 17:52:49 #376 №2286908 
16218584099170.jpg
>>2286685
>Во первых, где?
>>2286180
>>2285917
>>2284729
>>2280579
>>2279949
>>2279634
>>2279397

>Во вторых, а что не могу?
Ради б-га, у нас пока свободная страна.

> Или ты тут за Си не впрягаешься?
Нет, я делаю жирнейшие набросы на похапе, а ты уже вторую неделю генерируешь своим горящим пердаком килобайты копипасты. Я так не веселился со времён форса митрополита токийского.
Аноним 04/02/22 Птн 18:18:00 #377 №2286927 
>>2286359
>Какой лвл?
49

>Пенсия сколько?
Я ж программист, а не "силовик". До пенсии ещё надо дожить.
Аноним 04/02/22 Птн 22:08:13 #378 №2287191 
>>2286685
Ваши лиспы тупо обосрутся на перекладывании байтиков между сетевухами 40g. Ну а если выполнятся код должен на нескольких серваках, это не 500р в месяц.
Аноним 05/02/22 Суб 05:34:43 #379 №2287348 
Есть тг канал по сишечке?
Аноним 05/02/22 Суб 13:27:54 #380 №2287537 
>>2287191
>Ваши лиспы
Лиспы не наши. И Си не твой.

>>2287191
>обосрутся на перекладывании байтиков между сетевухами 40g
lol, придумал кейс, который в РФ не существует. В таком случае могу напомнить, что когда в коде для американского спутника нашли баги, а он уже был в космосе, то смогли пофиксить благодаря REPLу. Код был на Лиспе. Кейс тоже редкий, но меткий.

>Ну а если выполнятся код должен на нескольких серваках, это не 500р в месяц.
Чиво? Как раз таки Си из коробки не годится для параллельных и распределенных вычислений.
Аноним 05/02/22 Суб 13:41:19 #381 №2287552 
>>2287348
>Есть тг канал по сишечке?
Зачем?
Аноним 05/02/22 Суб 15:54:18 #382 №2287685 
>>2287537
>Как раз таки Си из коробки не годится для параллельных и распределенных вычислений.
Чиво так?
Вообще-то на Си можно написать абсолюно всё. Только при этом труда придётся положить не мало.
Аноним 05/02/22 Суб 19:55:39 #383 №2288017 
>>2286180
>К твоему сведению, мой любимый язык программирования это Лисп
Сергей Кочу...ев, ты?
Аноним 05/02/22 Суб 20:25:42 #384 №2288048 
>>2287537
>Чиво? Как раз таки Си из коробки не годится для параллельных и распределенных вычислений.
Тебе ли, пхп-макакену, об этом пиздеть?
Берёшь и запускаешь тыщу инстансов синглтред говна, раз макака и не могёшь в программирование — и всё равно выходит по железу в 500 раз дешевле, кекс.
Аноним 05/02/22 Суб 20:29:17 #385 №2288049 
>>2286685
>Вот поэтому Лисп это Ламбо, а Си это Запорожец.
В твоей воспалённой пхп голове?

>Поэтому те кто понимают что к чему, выбирают Окамл, Раст, что угодно, но только не Си.
Ладно ещё раст, но окамл... У тебя вообще всё ок? Или ты ещё учишься?
Аноним 05/02/22 Суб 21:24:17 #386 №2288084 
Лень всем отвечать. Хотя, скорее всего это единственный школьник пишет. Отвечу только на один вброс. Окамл? Да, Окамл. Покажи сколько языков за последние 10 лет написано на Си и сравни с языками написанными на Окамле. Раз ты этого не знаешь, и вообще не понимаешь почему пишут на Окамле, почему Си плохой язык, то не вижу смысла тратить свое время чтобы все объяснять. Про параллельность и распределенность на Си это вообще смех. В Эрланге все есть из коробки. В Си же надо написать тысячи строк кода.
Аноним 05/02/22 Суб 21:44:50 #387 №2288105 
А под Android как узнать какая версия C поддерживается нынче?
Аноним 05/02/22 Суб 22:01:53 #388 №2288118 
>>2288105
Как понять твой вопрос?
Аноним 05/02/22 Суб 22:09:30 #389 №2288123 
>>2288118
Ну там C89/C99/C11/C17..
В вики написано, что C17 поддерживается шлангом от 7 версии, на android сейчас по дефолту все шлангом обычно, получается, что вроде все должны...
Аноним 05/02/22 Суб 22:20:49 #390 №2288135 
>>2288123
>C99/C11/C17
Эти должны, но не вижу причин использовать выше 11.
Аноним 05/02/22 Суб 22:23:15 #391 №2288136 
c11.png
>>2288135
или только по 11..
> но не вижу причин использовать выше 11
ну выше 11 только 17 пока, там просто исправления 11 стандарта
Аноним 06/02/22 Вск 09:44:38 #392 №2288292 
inline.png
А есть разница какая-то в этих двух вариантах, кроме что первый всегда поменяет одну функцию на другую, а второй теоретически - не всегда
Аноним 06/02/22 Вск 10:36:43 #393 №2288303 
>>2288292
В первом случае, у тебя используется подстановка на этапе препроцессора, а во втором на этапе компиляции. В зависимости от компилятора\его параметров, у тебя может быть, или вызов func_1()->func_2(), или сразу подставиться func_2() вместо func_1(), но в первом гарантировано будет сразу вызвана func_2().
Насколько я помню, некоторые компиляторы могут игнорировать inline, с флагами точно.
Аноним 06/02/22 Вск 12:29:25 #394 №2288406 
>>2288084
>Покажи сколько языков за последние 10 лет
Реально либо тупой либо ещё учишься. Язык написанный на языке, проиграно с подливой.

>написано на Си
Примерно у всех, где есть рантайм (и он толще стдлиба) или интерпритируемые/с виртуалкой — всё на си/плюсах.
Python, Ruby, твой ссаный PHP, JVM, JS, тысячи их.
Ты же сам припёрся сюда с вопросом >>2279258 как прикрутить сишную либу интепритатору пыхи, который на си, кек.

>языками написанными на Окамле
Компилятор раста (и то только первая версия), хакса и самого окамла? Это по твоему такой дикий вин?

>Раз ты этого не знаешь, и вообще не понимаешь почему пишут на Окамле
А что пишут-то? Полтора компилятора для бутстрапа написали за 20 лет?

>почему Си плохой язык
Для задач уровня пхп-макакенга? Наверно хуёвый.
В нише си альтернатив нет. Раст — альтернатива плюсам, и то не везде.
Поясни уж, почему он такой плохой.

>Про параллельность и распределенность на Си это вообще смех. В Эрланге все есть из коробки.
Пхп-воен, ты же даже не понимаешь о чём вообще пишешь. Нахуя ты продолжаешь себя закапывать? Просто съеби и смой урину с ебала.
Аноним 06/02/22 Вск 12:36:52 #395 №2288417 
>>2288406
> Раст — альтернатива плюсам, и то не везде.
Они же вроде наоборот как си альтернативу показывают, что вот можно отключить стандартную либу раста и пользоваться только стандартной от си для эмбэда?
мимо другой анон
Аноним 06/02/22 Вск 12:39:20 #396 №2288422 
>>2288406
Школьник, на Си никто уже давно языки не пишет. Потому что дерьма наелись. Такие неучи как ты может быть. Так что не гони, что Окамле ничего не пишут. Много чего пишут. Даже веб-приложения, что для Си недостижимо. И сколько бы ты не пытался принизить PHP, от этого ты лучше не становишься. Наоборот, показываешь свою никчемность. Ты же даже такой язык не написал. Вообще сомнения в твоих способностях. Не может человек с таким мышлением быть программистом. Максимум копипастером.
Аноним 06/02/22 Вск 12:45:46 #397 №2288432 
ocaml.png
>>2288422
Ну так по факту
Аноним 06/02/22 Вск 12:47:37 #398 №2288435 
А языки теперь если и пишут новые, то под LLVM транслятор
Аноним 06/02/22 Вск 13:04:02 #399 №2288457 
>>2288417
Да такой хуйнёй в целом на любом компилируемом языке можно заниматься хоть на том же окамле, было бы желание. Другое дело, что это будет банально больно делать.

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

Из альтернатив именно си я видел только zig, но он в такой стадии развития, что даже для написания петов надо подождать ещё года полтора-два.
Аноним 06/02/22 Вск 13:07:07 #400 №2288461 
>>2288432
>Ну так по факту
???

Не понял о чем ты. Насчет веба на Окамле, имел ввиду Ocsigen. Он дает фулстек тулзы для написания веб-приложений. И бекенд и фронтент можно писать на Окамле. Крутая вещь.
Аноним 06/02/22 Вск 13:08:28 #401 №2288465 
>>2288422
Спок, скрипткидди, их и на окамле не пишут. Точнее на нём вообще почти нихуя не пишут.
Что рантайм окамла, что виртуалка эрланга — всё на сях. Было и будет.

Так что можешь расслабить своё зумерское очко, и идти играть в фортнайт. Написанный на плюсах.
Аноним 06/02/22 Вск 13:11:09 #402 №2288471 
>>2245329 (OP)
Что там насчет языка V? Узнал о нем когда он занял первое место в одном из тестов Techempower. Он собственно и сейчас на первом месте в тестах plaintext.

https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=plaintext

https://vlang.io/

Судя по отзывам, автор языка или безумный и обманщик или гений. Комменты разнятся противоположно. Кто что думает?
Аноним 06/02/22 Вск 13:11:16 #403 №2288472 
G2BQZ6Z2.png
>>2288461
>Не понял о чем ты. Насчет веба на Окамле, имел ввиду Ocsigen. Он дает фулстек тулзы для написания веб-приложений. И бекенд и фронтент можно писать на Окамле. Крутая вещь.
Чел походу думает, что ему тут доказывают что си — лучший язык для вротенда и пхп-крудов.
Вот вы издеваетесь — а ему ведь реально сложно...
Аноним 06/02/22 Вск 13:16:12 #404 №2288484 
>>2288471
Это гибрид го и раста?
Аноним 06/02/22 Вск 13:17:12 #405 №2288486 
Снимок экрана 2022-02-06 в 13.15.11.png
>>2288471
Зумер-инноватор изобрёл RAII.
Лет через 15 мб половину из обещанного и запилит на нормальном уровне.
Аноним 06/02/22 Вск 13:29:46 #406 №2288507 
>>2288484
Типа того, да. Только проще.

>>2288486
Как ему удается компилировать сотни тысяч строк не более секунды?
Аноним 06/02/22 Вск 13:53:55 #407 №2288556 
>>2288471
> Что там насчет языка V?
живет и развивается
Аноним 06/02/22 Вск 13:54:25 #408 №2288559 
>>2288507
Посмотри исходники.
Наверно минимизирует количество проходов, задрачивается чтобы ничего динамически не аллоцировать.

Да и синтаксис у языка простой + нет препроцессора и вообще макросов. Тот же D тоже очень быстро собирался, при том, что там заёбистость синтаксиса не сильно ниже плюсов.
Аноним 06/02/22 Вск 14:00:06 #409 №2288570 
>>2288507
> Типа того, да. Только проще.
а что там от раста?
Аноним 06/02/22 Вск 14:05:03 #410 №2288580 
Пояснити суть D. Зачем дебики создали раст, а не стали использовать д?
Аноним 06/02/22 Вск 14:09:00 #411 №2288590 
>>2288570
Кейворд mut видимо.
Аноним 06/02/22 Вск 14:09:15 #412 №2288591 
>>2288570
А в расте что-то есть, кроме уебанского синтаксиса?
Аноним 06/02/22 Вск 14:09:42 #413 №2288592 
>>2288590
ага, и функция как fn пишется, а так вообще ничего общего
Аноним 06/02/22 Вск 14:11:56 #414 №2288597 
>>2288580
Ты ещё спроси почему на жабе/шарпе писать не пошли.
Аноним 06/02/22 Вск 14:12:28 #415 №2288600 
>>2288580
потому что GC
Аноним 06/02/22 Вск 14:35:41 #416 №2288640 
volt.png
сюк)) открыл приложение на V https://volt-app.com в текстовом редакторе, а там Пыню ))
Аноним 06/02/22 Вск 18:56:33 #417 №2288940 
>>2288640
ты б его блять еще в пеинте открыл. или ты троллишь двач бинарниками не в hex-редакторе?
Аноним 06/02/22 Вск 19:01:37 #418 №2288944 
>>2288940
тяжело наверное жить без ЧЮ
Аноним 06/02/22 Вск 19:24:28 #419 №2288971 
16414638346390.png
>>2288640
А ты все бинарники в текстовом редакторе открываешь?
Аноним 06/02/22 Вск 19:24:56 #420 №2288973 
16414638346390.png
>>2288640
А ты все бинарники в текстовом редакторе открываешь?
Аноним 06/02/22 Вск 19:52:08 #421 №2288988 
>>2288973
а то, я жи у мамы хакир
тоже решил, что не стоит вскрывать эту тему и стремишься ее замять? )
Аноним 06/02/22 Вск 20:16:59 #422 №2289014 
>>2288988
Неудобненько, кек.
Аноним 08/02/22 Втр 08:55:46 #423 №2290416 
1614888290767-?.png
>>2288471
Когда его обсуждали на лейнчане, то выяснилось, что даже у простого хеллоуворлда память утекает. Может сейчас всё изменилось, конечно
Аноним 08/02/22 Втр 09:29:08 #424 №2290429 
>>2247328

Самое грустное, что асм приятнее. Хуже синтаксис, чем у ссы, трудно вообразить, а так тот же асм. В асм добавь все эти printf в удобном виде, будет та же сишечка без скобок.
Аноним 08/02/22 Втр 11:32:51 #425 №2290497 
Есть руководство как написать свой компилятор. Написано, что для новичков, а некоторые пояснения пропущены. В начале 3 раздела как начинается код, сразу становится ничего не понятно. Написали функцию возвращающую 42, скомпилировали, работает. Дальше ничего непонятно. Потом пишут функцию main, в отдельный файл или нет, не сказано. Я сунул в этот же файл, сработало. Дальше совсем ничего непонятно. Код на языке scheme приводят, а куда его писать не объясняют. Помогите понять что к чему.
http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf
Аноним 08/02/22 Втр 11:34:54 #426 №2290499 
>>2290416
У меня глаза от пика утекли.
Мне интересно, челы делающие такие скрины реально долбоёбы и так юзают терминал, или просто держат специальный профиль для скринов для борд?
Аноним 08/02/22 Втр 11:42:32 #427 №2290506 
>>2290497
Чел... Это не руководство, это какой-то high level обзор работ, лол.
В написании компиляторов в 2к22 есть 2 стула:
1) Короткий (если уж тебя интересует статейный зумерский формат) — по тутору LLVM (покрыта только тема генерации IR, до нормального ассемблера дело там не доходит);
2) Долгий — гуглишь "compiler dragon book" и задрачиваешь. Если надо изучить на уровне "лаба25" и нет интереса глубоко закапываться — у Вирта была какая-то короткая книжка, но то ли поцкали то ли оберон семейство которых ты скорее всего не застал.
Аноним 08/02/22 Втр 12:29:15 #428 №2290541 
Есть одна херовина, которая не дружит с кириллицей.

Сказали, что русские символы в ней надо хранить в строках char * ввиде ASCII символов.

Посему пара вопросов:
1) Как это будет выглядеть?
2) И как сохранённую строку подсунуть в snprintf, например?

Подскажите, плез, что к чему.
Аноним 08/02/22 Втр 12:33:07 #429 №2290543 
>>2290541
Сообщение - "Мой текст"
sprintf((char*)&foo, "\xCC\xEE\xE9\x20\xF2\xE5\xEA\xF1\xF2");

Дальше - сам.
Аноним 08/02/22 Втр 13:19:50 #430 №2290605 
>>2290543
Эй-эй, не так быстро.

Это кодировка WIN-1251?
https://en.wikipedia.org/wiki/Windows-1251

Чому в эмуляторе не отображается корректно?

https://onlinegdb.com/xVHmh5nIf
Аноним 08/02/22 Втр 14:18:58 #431 №2290692 
>>2290506
>по тутору LLVM
>гуглишь "compiler dragon book" и задрачиваешь
И то и другое понты, что обосновано в этом
http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf труде.
Аноним 08/02/22 Втр 14:58:25 #432 №2290739 
>>2290605
И ещё, почему не работает:
snprintf(tBuf, sizeof(tBuf), "\xd2\xc5\xd1\xd2: %s\t", \xd4\xd3\xd3);

Подозреваю, что %s не то. \xd4 - это же байт.

Какой правильно?
Аноним 08/02/22 Втр 16:58:12 #433 №2290837 
>>2290692
>И то и другое понты
По которым учится и работает весь мир.
Аноним 08/02/22 Втр 17:07:45 #434 №2290855 
>>2290837
>По которым учится и работает весь мир.
Миллиарды мух не могут ошибаться.
Аноним 08/02/22 Втр 17:16:52 #435 №2290865 
>>2290855
Какой-то араб из американских ебеней, написавший курсовую типа: швой лишп в 100 строк пейпер в 2006 точно не мог ошибаться.
Особенно учитывая что он там про это вообще ничего не пишет.
Аноним 08/02/22 Втр 18:38:39 #436 №2290990 
>>2290506
>>2290837
Здесь http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf показана раскрутка компилятора. А то что вы советуете это пустая теория, и без раскрутки. Короче прежде создать хоть что то примитивное надо потратить несколько месяцев. НЕ НУЖНО!

>>2290865
>Какой-то араб из американских ебеней
Он профессор вообще то и действующий программист. Если не знаешь ничего, то не лезь со своим никому не нужным мнением. По его принципу многие писали компиляторы. Метод раскрутки придуман конечно не им, но больше инфы с кодом по раскрутке в интернете найти трудно.
Аноним 08/02/22 Втр 19:02:51 #437 №2291017 
16441402576320.jpg
>>2290990
>нюфаг не понимает даже куда код сувать
>РЯЯЯ ВЫ НИ ПАНИМАИТИ И ВААБЩЕ НИПРАВЫ ВСЕ ЭТА НИНУЖНА ВОТ РАСКРУТКА СМАТРИТИ РАСКРУЧИВАЕШЬ КАСЯК И ВОТ КОМПИЛЕР РЯЯ
Хорошо, ты выиграл.
Аноним 08/02/22 Втр 20:35:52 #438 №2291103 
>>2290990
Зачем ты вообще лезешь что-то писать, если не хочешь учить теорию и дрочить базу? Чтобы сделать действительно годную вещь, один хуй придется учить много материала и возможно, что не один год. Ты, видимо, просто поиграться хочешь и палочкой потыкать, чтобы потом говорить "А я в ко-ко-компиляторах разбираюсь. Вот даже свой написал".
мимо
Аноним 08/02/22 Втр 21:44:29 #439 №2291162 
>>2291103
>Ты, видимо, просто поиграться хочешь
А что нельзя? Еще бы у вас разрешения спрашивать.

>>2291017
>ко-ко-ко
Аноним 08/02/22 Втр 21:59:35 #440 №2291176 
>>2291162
>А что нельзя? Еще бы у вас разрешения спрашивать.
Конечно можно, просто не стоит копротивляться, когда тебе теоретическую базу хотят посоветовать. Так и сказал бы, что просто хочешь палкой потыкать и кирпич в виде книги дракона - это оверкилл для твоих целей, тогда пропала бы и почва для бесполезного срача.
Аноним 08/02/22 Втр 22:21:13 #441 №2291191 
16414546622790.jpg
>>2291162
>А что нельзя? Еще бы у вас разрешения спрашивать.
Можно конечно. Но книжку хотя бы про си придётся прочитать, код по файлам сам себя не разложит. Ну или поищи статеек с "раскруткой" си, если не воспринимаешь инфу вне привычного тебе тиктокерского формата, кек.
Аноним 09/02/22 Срд 03:48:39 #442 №2291311 
>>2291176
>>2291191
Я не против фундаментальных знаний, но есть несколько НО. Вы сами много в этом разбираетесь, что раздаете советы? Книга дракона может и хорошо объясняет как устроены и как строить компиляторы, но она плохо учит это делать на практике. Вот я выяснил, что для понимания как писать компилятор нужно изучать формальные языки, грамматики и методы трансляции. Это такая дисциплина, ей в ВУЗах учат. По ней книги есть. В книге Дракона сомневаюсь, что об этом написано. А потому она плохо годится как в качестве учебника.
Аноним 09/02/22 Срд 04:18:50 #443 №2291316 
Screenshot20220209-041604775 (1).jpg
Screenshot20220209-041538422 (1).jpg
Screenshot20220209-041520412 (1).jpg
Screenshot20220209-041505721 (1).jpg
>>2291311
>Книга дракона может и хорошо объясняет как устроены и как строить компиляторы, но она плохо учит это делать на практике.
Откуда ты знаешь, если не читал? Вообще советую хотя бы скачать книгу и ознакомиться с содержанием.
Аноним 09/02/22 Срд 05:05:36 #444 №2291321 
>>2291316
Спасибо за подсказку.
Аноним 09/02/22 Срд 08:47:36 #445 №2291349 
>>2274997
Вот функция, которая возвращает лямбду, которая возвращает число 42 https://rust.godbolt.org/z/bMrz3E65r Оверхеда 0.

И вообще в Rust оверхед можно найти только в динамической диспетчеризации. Про всякие Боксы и примитивы синхронизации (Arc, RwLock) говорить не буду, они самоочевидны поскольку неизбежны в любой современной программе. Бокс это когда у тебя память в хипе (аллокация против стека) а на руках ссылка на нее.

https://rust.godbolt.org/z/fx677qs6M статическая диспетчеризация
https://rust.godbolt.org/z/75fKhGj6f динамическая

Хоть и говорят что динамическая диспетчеризация на большой кодовой базе будет генерировать меньше кода. Работать она будет тоже медленее. Но не всегда, это часто зависит от железа и бэкенда - https://github.com/rust-lang/rust/issues/69593
Есть еще способы оптимизации https://crates.io/crates/enum-dispatch
Аноним 09/02/22 Срд 09:16:11 #446 №2291356 
>>2291349
Вот тут еще можно посмотреть https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/edit#slide=id.p

Есть еще многие приятности вроде https://rust.godbolt.org/z/G3a9GY73r когда в структуре присутствует ссылка (а компилятор гарантирует что она не может быть null благодаря правилам языка), получаются такие оптимизации в байтиках. Работает также на Result, а эти типы повсюду в кодовой базе.
Аноним 09/02/22 Срд 09:35:53 #447 №2291359 
>>2291349
>>2291356
Ну да, статически подставленные функции дают меньше оверхеда чем виртуальные методы. И на цпп тоже, и на других компилируемых языках. Сказать-то что хотел?
Аноним 09/02/22 Срд 09:37:40 #448 №2291360 DELETED
>>2291349
>Оверхеда 0
> fn -> fn -> fn ->
Проорал
>Rust
На хуй с этим сжв говном уебуй
Аноним 09/02/22 Срд 10:32:14 #449 №2291386 
>>2274997
>лямбды
Без них ты не сможешь писать лаконичный код. Если функция в языке не является first-class citizen, то это не язык, а обрубок. Хорошо в Си есть указатели и можно передавать указатель в функцию, это его немного спасает.

>Я вот этого никогда не понимал
Отсутствие некоторых фич делает язык чемоданом без ручки. Нести его становится тяжело (код писать тяжело, много кода требуется). Возьмем к примеру Лисп. В нем почти нет синтаксиса, но благодаря некоторым фичам, его небольшой синстаксис становится убойно выразительным. Лисп считается самым выразительным языком. Особенно хорошо эти свойства проявляются при парсинге сложных данных. Попробуй на Си парсить сложные протоколы. Это очень тяжелый ручной труд. Кода писать нужно тонны. Для Лиспа никаких сложностей нет и кода не нужно много.
Аноним 09/02/22 Срд 10:34:27 #450 №2291390 
>>2274997
>Которые ограничены llvm, который развивается для плюсов, лол. Поэтому у раста по определению не может быть больще функционала чем у плюсов.
Чиво? Раст написан на Расте. Почему в C/C++ тредах все такие напыщенные, но необразованные? Не ты ли писал в мой адрес, что я пхп-макака? Ох, лол.
Аноним 09/02/22 Срд 10:36:50 #451 №2291393 
>>2291360
>> fn -> fn -> fn ->
>Проорал
Ну и глупенький. Слышал про кодировки Чёрча? Вряд ли. Сишники и плюсовики народ дубовый. Таким образом реализуют комбинаторы. Которые используют много где.
Аноним 09/02/22 Срд 10:41:10 #452 №2291402 DELETED
>>2291393
>комбинаторы.
Нинужна^2
>много где
В очередной дрочильне с выбиванием шариков?
Аноним 09/02/22 Срд 11:04:34 #453 №2291433 
>>2291402
Школьник что ли? Если бы ты учился Computer Science, то знал бы. А у тебя похоже образование уровня макаки.

https://en.wikipedia.org/wiki/Combinatory_logic
https://en.wikipedia.org/wiki/Parser_combinator
Аноним 09/02/22 Срд 11:19:01 #454 №2291445 DELETED
>>2291433
Бесполезное говно таких же бесполезных теоретиков, просто эталонное нинужно
Аноним 09/02/22 Срд 11:32:41 #455 №2291457 
>>2291359
Отвечал на
>Зачем там нужны лямбды и прочая ересь, которая стоит дополнительных ресурсов процессора?
Можно еще разницу между итератором и циклом взять (это тоже вызовы функций и лямбды)
https://rust.godbolt.org/z/hjfzqvd8E
https://rust.godbolt.org/z/ad9bK73a4

В любом случае Сишная версия выглядит по-компактнее https://godbolt.org/z/a8ad39vMs
C++'ную мне вообще не удалось заставить SIMD использовать https://godbolt.org/z/sG6f7Pndn
ни с STL, ни циклами. Ни в clang ни в GCC

В Rust кстати самые обычные ссылки чуть дешевле чем соответствующие им unique_ptr из С++
https://rust.godbolt.org/z/3dx64crf4
https://cpp.godbolt.org/z/jbv3Gh7G5
Отсюда взято https://youtu.be/rHIkrotSwcc?t=1440
Аноним 09/02/22 Срд 11:35:31 #456 №2291460 
>>2291386
>Лисп считается самым выразительным языком.
Это его также самая знаменитая проблема. Каждый lisp-программист норовит написать свою DSL в которой другие программисты копаться отказываются. (Так я слышал несколько раз)
Аноним 09/02/22 Срд 11:57:01 #457 №2291478 
>>2291445
Все-таки комбинаторы хороши тем что позволяют сократить шаблонный код. И вдвойне приятно когда не требуют ничего взамен https://play.integer32.com/?version=stable&mode=debug&edition=2021&gist=985f8954ee2c443a1233fa302e55632f
Аноним 09/02/22 Срд 12:03:33 #458 №2291485 
!!!rust-socks.jpg
>>2291349
> rust
Аноним 09/02/22 Срд 12:17:17 #459 №2291497 
>>2291485
Скучный аргумент, ни разу такого на их житхабе не видел. Или в статьях о Rust, или на reddit/r/rust или еще где кроме двача и оппеннета с лором. Это всего лишь инструмент, не обязательно ориентацию менять.

Единственный раз когда происходило что-то странное, это когда мозилла в своем блоге за СЖВ начала топить. Но им тогда много от самих растаманов прилетело, которые не желали чтобы от их имени говорили политики. Мозилла больше в Rust не сольная скрипка.
Аноним 09/02/22 Срд 12:22:52 #460 №2291502 
image.png
rust, lisp, python, golang, php, java и прочая хуета в этом треде не нужны.
Вот с++ и ассемблерщики тут не помешают.

Аноним 09/02/22 Срд 13:00:58 #461 №2291528 
>>2291502
Про Ada/SPARK забыл, и D
Аноним 09/02/22 Срд 13:37:43 #462 №2291575 
>>2291497
> Скучный аргумент, ни разу такого на их житхабе не видел.
Ага, как же, только недавно драма была
https://thenewstack.io/rust-mod-team-resigns-in-protest-of-unaccountable-core-team/
Каково это, чувствовать тёплый, пульсирующий CoC в свой влажной тугой попке?
Аноним 09/02/22 Срд 13:46:32 #463 №2291589 
>>2291445
Как же школьнику ни пичот!

>>2291460
>Это его также самая знаменитая проблема.
Я знаю. Но это ведь проблема программистов, а не языка. Нужно просто правильно использовать эту мощь. Никто же не говорит, что не нужно использовать огонь, потому что им можно обжечься.
Аноним 09/02/22 Срд 14:16:06 #464 №2291615 
>>2291589
>Нужно просто правильно использовать эту мощь.
Прикол в том, что если что-то есть языке — оно будет юзаться, даже если это какой-то баг говна.
Алсо, под таким предлогом можно сказать что раст не нужен — просто никто не умеет юзать си.
sageАноним 09/02/22 Срд 14:44:36 #465 №2291642 
Лол, что за наплыв борщехлебов в СИСТЕМНОМ ЯЗЫКЕ?
Аноним 09/02/22 Срд 15:08:55 #466 №2291667 
>>2291642
>борщехлебов
На этой доскаих меньше всего в 1с, жс, жава и пхп тредах. Милости просим к шалашу, так сказать.
Аноним 09/02/22 Срд 15:09:22 #467 №2291668 
>>2291667
> доскаих
доске*
Аноним 09/02/22 Срд 15:13:47 #468 №2291677 
screenshot.png
Что у меня с gcc не так?
Аноним 09/02/22 Срд 15:21:55 #469 №2291693 
>>2291615
>Прикол в том, что если что-то есть языке — оно будет юзаться, даже если это какой-то баг говна.
>Алсо, под таким предлогом можно сказать что раст не нужен — просто никто не умеет юзать си.
Это ты уже всё перевернул вверх дном. Логическое противоречие и чистейшая манипуляция. Я сказал Си слабый, а Лисп сильный. Ты сказал, что сила Лиспа приводит к тому, что программисты не могут работать вместе, так как каждый использует эту силу в одного, пишет свое решение и все. Получается много разных решений и ни одного общего.

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

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

>>2291642
>ко-ко-ко, в системном языке не нужон этот ваш Computer Science.
Ух, как нипичот!
sageАноним 09/02/22 Срд 15:26:45 #470 №2291697 
>>2291693
>Ух, как нипичот!
Правильно, нахуй производительность.
Аноним 09/02/22 Срд 16:39:04 #471 №2291774 DELETED
>>2291478
>сократить шаблонный код.
Нинужно
Аноним 09/02/22 Срд 16:41:02 #472 №2291775 DELETED
>>2291693
>Computer Science
>Кудахтер Сосаенс
Это такое же говно как и математика, созданнная маняматиками, что бы маняматики не сдохли с голоду
Аноним 09/02/22 Срд 16:50:09 #473 №2291785 
>>2291775
Может ты перевод не знаешь? https://ru.wikipedia.org/wiki/Информатика
Аноним 09/02/22 Срд 16:54:19 #474 №2291788 
>>2291677
static inline
выбери что-то одно.
Аноним 09/02/22 Срд 16:57:15 #475 №2291789 DELETED
>>2291785
Ой ой, как же теперь без этой науки жить то.
sageАноним 09/02/22 Срд 17:59:48 #476 №2291840 
Зачем раст называют системным, если он больше конкурирует с плюсами, а не с няшной? Что плюсы, что раст не очень годятся для целей где используется Си. Я как-то хотел прикрутить раст к своему проекту, но произошла ситуация как с плюсами, пришлось выкинуть бОльшую часть языка вместе с проверками и получить огрызок, который не очень-то годен. Какого хуя тогда форсят его системность?
Аноним 09/02/22 Срд 18:10:45 #477 №2291854 
>>2291840
Деньги у (((СЖВ))) есть, вот и форсят.
Аноним 09/02/22 Срд 23:19:09 #478 №2292108 
>>2291840
>ситуация как с плюсами, пришлось выкинуть бОльшую часть языка
Нет.

g++ -fno-exceptions -nostdlib mysource.cc -o myprogram

Всё!
Аноним 09/02/22 Срд 23:31:30 #479 №2292116 
>>2291589
> Я знаю. Но это ведь проблема программистов, а не языка. Нужно просто правильно использовать эту мощь. Никто же не говорит, что не нужно использовать огонь, потому что им можно обжечься.
когда у тебя есть миллиард способов сделать что-то одно - то программирование превращается в творчество. Просто со всеми ты не договоришься что надо делать так-то. У каждого свое видение, а еще много кто упрямый как осел.
у меня бля на работе я руби макака если че обколются своими ооп и рубишными "фишечками", такую лютую хуиту понаписывают, на код ревью устал уже спорить с ними, просто апрувлю если работает и тесты не ломает и линтер не ругается. Уже давно понял что дслы, фичи языка - яд и нахуй не надо. чувствую что надо вкатиться в голанг, и менять работу, то нервы не выдержат
Аноним 09/02/22 Срд 23:53:46 #480 №2292138 
>>2291840
>Зачем раст называют системным, если он больше конкурирует с плюсами, а не с няшной? Что плюсы, что раст не очень годятся для целей где используется Си.
Чё? Наркоман?
Аноним 10/02/22 Чтв 00:31:29 #481 №2292172 
>>2292138
Что тебе не понятно?
Аноним 10/02/22 Чтв 01:44:02 #482 №2292207 
>>2292138
Он просто не понимает что лоулевел там будет такой же как в "няшной", но писать его придется просто потому что он лоулевел и байтоебство. С другой стороны забывает про возможности типов Rust при нулевом оверхеде. Именно в embedded они могут просиять если понимать что делаешь. Вот так можно сделать проверяемый на стадии компиляции ввод-вывод через порты/память https://opensource.com/article/20/1/c-vs-rust-abstractions
комбинируя это с проверяемыми на стадии компиляции стейт-машинами http://cliffle.com/blog/rust-typestate/ (и аффинными типами. Первый пример из той статьи, с закрывающимся файлом) можно смело писать банкомат. Без смс и регистрации.
Аноним 10/02/22 Чтв 03:12:31 #483 №2292228 
>>2292207
>можно смело писать банкомат
Почему именно банкомат?
Аноним 10/02/22 Чтв 05:45:27 #484 №2292262 
>>2291677
Ошибки читать не пробовал?
Аноним 10/02/22 Чтв 09:51:36 #485 №2292315 DELETED
>>2245329 (OP)
Что тут растопетухи в трхеде забыли?
Аноним 10/02/22 Чтв 10:05:02 #486 №2292327 
>>2292116
>программирование превращается в творчество.
А потом когда в наследство остается такое "творчество" так и хочется посылать лучи "благодарности" творцу.
Аноним 10/02/22 Чтв 10:19:12 #487 №2292340 
>>2292207
Блядь, ещё один в чулочках. Когда вы уже угомонитесь со своим ржавым
Аноним 10/02/22 Чтв 10:20:41 #488 №2292342 
>>2292116
>Уже давно понял что дслы, фичи языка - яд и нахуй не надо
Ты просто не умеешь их готовить.

>чувствую что надо вкатиться в голанг
Ага, вот бы не нужно было, когда срать хочешь, вставать с дивана и идти в туалет, вот бы можно было в штаны себе насерить и сидеть двачевать капчу дальше. Так просто, и никакого тебе места для творчества.
Аноним 10/02/22 Чтв 11:52:42 #489 №2292415 
>>2292327
Хуйпойму о чём вы тут спорите.
Например, у меня есть три стиля написания - 1) максимально понятно для студентов, 2) просто по канонам, 3) максимально оптимально, десятки приёмов хакерских, но уже через неделю с трудом понимаешь как оно работает.

Стиль выбираю от задачи. И иногда от настроения.
Только не верещите тут, мол, надо студентов сразу учить писать по канонам. В реальной жизни это недостижимо. Они (большинство из них) просто не научатся программировать в таком случае.
Аноним 10/02/22 Чтв 12:20:34 #490 №2292445 
>>2292415
Нафиг студентов, туда хакерские приемы и следом творчество.
Код, в первую очередь, пишется для других людей. А уж потом оптимизация (через выбор более подходящих алгоритмов, организации единиц и уж потом хакерских приемов).
Аноним 10/02/22 Чтв 12:26:11 #491 №2292449 
>>2292342
>Ты просто не умеешь их готовить.
Я когда хочу срать - действую по простому алгоритму, пришел в толчок, снял штаны, сел на унитаз, посрал, жопу подтерел, смыл, ершиком толчок шлифанул, освежаком попшикал.
а кто-то кто занимается не программированием а творчеством:
1) срать подъезжает на гироскутере со смузи,
2) тащит с собой биде
3) по наставлению Малышевой несет с собой табуретку.
4) идет в толчок, ложится на пол, делает бочку и срет себе на лицо.
5) комбинирует 1-4 пункты в различных вариациях в зависимости >>2292415
>от задачи. И иногда от настроения.

И все считают что их подход лучший и все умеют правильно "приготовить" посрать. Где истина? Истинна - конечно же срать так как ты срешь кто бы мог подумать.
Аноним 10/02/22 Чтв 13:08:59 #492 №2292519 
>>2292449
>по наставлению Малышевой несет с собой табуретку.
Не знал что беру с собой табуретку по наставлению Малышевой.
Всегда думал что беру с собой табуретку, чтобы ноутбук удобно стоял. Не держать же его в руках, сидя на унитазе.
Аноним 10/02/22 Чтв 13:16:26 #493 №2292532 
>>2292519
> беру с собой табуретку, чтобы ноутбук
опасные мувы делаешь, долго сидеть на толчке нельзя, геморрой может появиться.
Аноним 14/02/22 Пнд 03:34:01 #494 №2296548 
>>2245453
Омегалул так марсоход на Си то гайсы,а еще Си будет жить пока будут существовать операционные системы(конкретнее ядро),так как ядро является нечто монолитным,а тут ООп то сосет:) мб не прав если что подправьте в качестве примера могу представить linux ось которую юзают везде практически кроме как десктоп конечно
Аноним 14/02/22 Пнд 04:02:26 #495 №2296553 
>>2247084
Я не чекал >>2279664
Да пиздец жиза все четко рассказал мне тоже советовали сразу лютые пиздецки сложные залупы,и я старался но забил хуй а потом спустя месяц вкатился но по своей методике без книг нахуй как уебан скачал sololearn + видео дударя(ну тупо стартерпак для нуба) таким образом выучив питон с django/flask пофрилансил за копейки ботов для тг создавал А ПОТОМ УЖЕ по собственному желанию перешел на линукс начал изучать Си ядро линукс и алгоритмы со структурой данных и поперло ну кароче kernel hacking
Аноним 14/02/22 Пнд 09:24:43 #496 №2296589 
>>2296553
>кароче kernel hacking
О, ты хакер, а можешь мне одноклассницу взломать? Я тебя друзьям порекомендую за это.
Аноним 14/02/22 Пнд 09:30:16 #497 №2296594 
>>2296589
да, давай, скидывай ее телефончик. Она ведь не жируха?
>Я тебя друзьям порекомендую за это.
Лучше подругам рекомендуй
Аноним 14/02/22 Пнд 10:47:23 #498 №2296630 
>>2296548
Блэт, в шкалке каникулы начались, чтоле?
Аноним 14/02/22 Пнд 11:06:45 #499 №2296643 
О, да тут бамплимит назревает. Подожду-ка бамплимита, да закину "рыбу". После переката тред точно оживёт.
Аноним 14/02/22 Пнд 14:39:19 #500 №2296805 
return 0;
Аноним 15/02/22 Втр 03:44:13 #501 №2297527 
ПЕРЕКАТ: >>2297526 (OP)
ПЕРЕКАТ: >>2297526 (OP)
ПЕРЕКАТ: >>2297526 (OP)
comments powered by Disqus