Главная Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 480 62 149
C Programming Language #72 Аноним 22/12/21 Срд 18:45:44 2245329 1
C Programming L[...].png 78Кб, 792x1023
792x1023
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь 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 2245453 2
>>2245329 (OP)
Просвятите.
Почему на C пишут для железа чаще чем на C++?
Репозиторий ReactOS на гитхабе написан почти весь на C.
Так удобнее или есть другие причины?

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

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

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

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

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

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

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

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

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


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

Аноним 25/12/21 Суб 19:26:06 2247833 36
1484a766b4f9490[...].png 13Кб, 580x280
580x280
Вот вам говна с хабра принес

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

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

https://habr.com/en/post/59570/
Аноним 25/12/21 Суб 19:56:24 2247858 37
>>2247745
>Ни в одном языке прогромирования не рекомендуется раскидывать переменные по телу функции.
А в кодстайлах рекомендуется.
> Использование можно посмотреть с инструментом view usages, который, кроме блокнота, есть везде.
А можно не заниматься хуйней и семантически разделять блоки кода, объедения данные и их поведение/обработку.
Аноним 26/12/21 Вск 03:58:29 2248135 38
C programming l[...].jpeg 33Кб, 600x423
600x423
Извините, не сдержался. Супротив языка С ничего не имею, годный даже, STMку вотъ недавно паял кодил.
Аноним 26/12/21 Вск 04:14:16 2248139 39
>>2248125
Я не вижу смысла спорить и что-то доказывать. Большие программы делаться на модули, модули на функции, функции на блоки внутри функций. Если бы вам долбаебам сказали бы в 89 году, что все нужно писать в одном файле, так вы бы до сих пор так и делали, рассказывая про инструменты редактора которые позволяют во всем этом говне ориентироваться. У тебя нет понимания о том, что такое ясность и удобство восприятия информации. Ты привык к инструментам и постоянному перескакиванию с vu.
Аноним 26/12/21 Вск 11:50:29 2248248 40
>>2248139
Это ж просто зелёный и жирный, не корми его, он уже из треда вытекает блядь
Аноним 26/12/21 Вск 14:04:18 2248349 41
В чём разница между:
CFLAGS="-Wl,--hash-style=gnu"
LDFLAGS="-Wl,--hash-style=gnu"
LDFLAGS="--hash-style=gnu"
Аноним 27/12/21 Пнд 00:43:36 2248971 42
>>2248349
Wl говорит драйверу компилятора (сс/gcc), какие флаги передать линкеру (первый вариант). У линкера (ld) такого ключа нет, и он нахуй не нужен (второй вариант), поэтому ты просто указываешь напрямую (третий вариант). Если ты компилишь без -c или собираешь cc *.o - можешь выбрать 1 или 3, а если сам вызываешь линкер, то очевидно у тебя есть только 3.
Аноним 27/12/21 Пнд 00:55:39 2248981 43
>>2248971
> можешь выбрать 1 или 3
Сам в цифрах запутался. 1 или 2, т.е., -Wl для cc, без -Wl для ld.
слоуфикс
Аноним 27/12/21 Пнд 05:32:06 2249023 44
>>2248139
лол, в 89 году раскидывали по разным файликам чтобы компилировалось быстрее, а не из желания че-то там разбить на функциональные модули
перекомпиляция большого проекта занимала несколько часов
на персональных же пека даже компиляция одной единицы трансляции занимала ощутимое время

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

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

Аноним 29/12/21 Срд 05:16:37 2250994 65
почему ldexp(0.5, 1024) - не inf в выводе printf? frexp() возвращает экспоненту 1024
Аноним 29/12/21 Срд 05:35:54 2250995 66
>>2250931
ну, или будут функции, если на sdcc и z80 к примеру.
Аноним 29/12/21 Срд 06:17:07 2251000 67
>>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:52:42 2251006 68
>>2251002
что? я не читаю мысли.
Аноним 29/12/21 Срд 07:14:31 2251012 69
наверно это какой-то мусор из стека, процессора, специфичного буфера?

понятно, 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 2251020 70
Аноним 31/12/21 Птн 14:15:15 2253038 71
cirno-gta.jpg 49Кб, 604x362
604x362
В чём подводные камни для битмапа группы функций?
Допустим я хочу сделать таблицу функций и замапить её на (к примеру) 8-битное значение:

https://pastebin.com/gjpXRxZb

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

Да, я тупой и просто не могу сообразить
Аноним 31/12/21 Птн 23:35:29 2253357 72
>>2253038
В таком виде абсолютно никаких подводных, кроме небольших накладных расходов на проверку бита по сравнению с массивом отдельных bool или size_t. Номер бита в числе измениться не может, это свойство системы счисления (показатель степени двойки). Он может меняться в битфилде, но у тебя-то не битфилд.
Аноним 02/01/22 Вск 18:32:12 2254525 73
Что можно почитать натему системного прогрраммирования под винду? Базу языка я уже знаю. Есть доки майкрасофта, но не сказал бы, что это хороший учебник
Аноним 02/01/22 Вск 19:42:04 2254596 74
>>2254525
кернел или юзерспейс?
Аноним 02/01/22 Вск 20:48:05 2254641 75
>>2254596
Юзерспейс. Кернел как я понимаю, это драйвера?
Аноним 02/01/22 Вск 21:26:06 2254673 76
>>2254641
Рихтер (не знаю, что там актуально - Windows Via C++), потом какое-нибудь не очень старое издание Windows Internals (там и кернелмод, но все равно надо), потом MSDN по интересующим темам. Если интересует легаси (а тебя интересует, потому что под винду сейчас на няшной не пишут), то еще сверху что-нибудь про GDI и опять MSDN. Если сокеты, то Ohlund "Network Programming for Microsoft Windows", и да, снова MSDN. Вообще, MSDN вполне норм, там в каждом разделе есть введение и описание чего куда совать с примерами. С вопросами можешь сюда приходить.
Аноним 02/01/22 Вск 21:39:50 2254689 77
>>2254673
>>2254673
Благодарю. Рихтер там же аж под семерку писал, если не ошибаюсь? Не устарело? У винды даже битность успела поменяться. А так, MSDN читаю, но это скорее справочник, очень много информации, которую я не очень понимаю, как приминять.
Мне бы найти что-то, что могло бы вкатиться в менеджмент памяти.
А то я смотрю, у винды дохрена своих функций под это
Аноним 03/01/22 Пнд 01:40:09 2254843 78
>>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 2257900 79
IMG202201071146[...].jpg 4300Кб, 4000x3000
4000x3000
тоже начну вкатываться
Аноним 07/01/22 Птн 13:47:26 2258048 80
Снимок экрана о[...].png 8Кб, 202x93
202x93
Снимок экрана о[...].png 12Кб, 417x100
417x100
сап, почему при запуске проги в qtcreator строки меняются местами? На пике на белом фоне это вывод в кьюте. На фиолетовом в терминале запускаю исполняемый файл из папки Debug. Я сам отдаю предпочтение именно терминальному выводу, потому-что там выглядит как должно быть.
Аноним 07/01/22 Птн 14:47:37 2258111 81
чёт вспомнил, я бы это посоветовал вкатывальщикам. https://buildyourownlisp.com/contents

сам не дочитал, просто я уже и так лисп написал и было любопытно.
Аноним 07/01/22 Птн 23:13:48 2258813 82
image.png 19Кб, 456x247
456x247
image.png 61Кб, 569x430
569x430
image.png 6Кб, 251x129
251x129
Почему? В листинге вроде всё нормально, хотя я не уверен, что умею читать. Адрес структуры идёт в rax, оттуда в eax идут первые 32 бита node, которые и есть type - так ведь?
node != NULL, хотя там и так видно.

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

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

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

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

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


мимокрокодил
Аноним 12/01/22 Срд 18:21:28 2263258 99
>>2263205
>А как оно getchar() в int пихает?
В сях у каждого символа есть свой цифровой код.
Аноним 12/01/22 Срд 19:02:17 2263308 100
>>2263019
Я так понял все сразу, задание сформулирвоано именно так, хотя для каждого в отдельности просто заводим отдельную переменную
Аноним 12/01/22 Срд 19:23:05 2263330 101
>>2262937
А ентот getchar() чего читает? Ввод в консоль? А как ЕОТF с клавиатуры вести?
Аноним 12/01/22 Срд 23:06:57 2263515 102
Здравствуйте! У меня вот несколько вопросов возник, а как вообще программы крупные на Си пишутся? я тут пукаю что-то в ncurses и тд, но я вообще не представляю, как делаются приложения под линукс по типу htop, всяких инсталлеров да и просто операционок. Как это все можно на одном Си написать? я даже не понимаю от куда эту информацию взять можно, как придти к такому, для меня это слишком ту мач. Может кто поделиться как к этому идти? или хотя бы примерно ориентир дать, я дальше сам постараюсь разобраться, мне не нужны готовые ответы, а просто хотя бы куда направляться, чтобы я дальше информацию искал. Я правда не понимаю как на Си можно написать что-то такое с GUI в терминале, чтобы оно ещё и какую-то деятельность с ОС вытворяло, хотя бы вот просто какой-нибудь File Manager или текстовый редактор написать.
Аноним 12/01/22 Срд 23:30:27 2263523 103
gigachad.jpg 58Кб, 1068x601
1068x601
>>2263515
Просто берёшь и пишешь.
Аноним 13/01/22 Чтв 00:16:46 2263542 104
Аноним 13/01/22 Чтв 08:38:47 2263641 105
>>2263515
>>2263542
дробишь одну большуюзадачу на много мелких и хуяришь потиху. Если чего-то не знаешь - гуглишь, изучаешь.
Аноним 13/01/22 Чтв 08:44:06 2263646 106
>>2263339
>Ктрл+з
это приостановка приложения
Аноним 13/01/22 Чтв 08:45:31 2263647 107
парни, сори конечно что не по теме, хз просто где спросить.
кто что думает о языке программирования zig?
Аноним 13/01/22 Чтв 08:46:43 2263648 108
>>2263515
ну ос - это конечно враньё, потому что на ассемблере всё равно придётся писать. но можешь почитать криса касперски (хз почему у меня такая ассоциация возникла с твоим текстом)
Аноним 13/01/22 Чтв 08:47:08 2263649 109
Аноним 13/01/22 Чтв 09:58:33 2263691 110
Аноним 13/01/22 Чтв 18:15:34 2264269 111
Аноним 15/01/22 Суб 04:28:20 2265347 112
Аноним 15/01/22 Суб 12:05:09 2265489 113
>>2263641
Вот этот господин дело говорит. Так всегда нужно делать.
Аноним 15/01/22 Суб 16:09:31 2265746 114
В школе и на первых вузах универа - я писал на си. Тогда - он мне казался удобным и все такое.
Но вот, в середине второго курса у нас было ООП. Там давали на выбор С++, С# и жаву. Я попробовал все и остановился на шарпе.
Так вот. Первое время мне было сложно. Я писал код в Си-стиле, а классы использовал просто как модули. Ничего более. Классы были большие. Было много статики.
Но затем я почитал книжек, и начал пытаться разобраться в чужих репках. Помогли, внезапно, репки жавы, потому что показали, как может быть устроен код в ООП стиле. И МНЕ ПОНРАВИЛОСЬ. Следущие 4 года - я писал исключительно в ООП парадигме.
Но вот закончилась учеба в вузе, я магистр, который немного фармил фрилансерством. Нужно было искать работу. И я пошел на завод. На заводе, внезапно, нужно писать на Си.
И я - буквально на текущий момент - пытаюсь изобретать способы, как привнести ООП в Си, не сломав то что там уже накодили. Я это могу сделать. Но я понимаю, что оно-то не нужно. Нужно майндсет перестроить обратно к процедурному и структурному подходу. Но это так сложно, когда ты везде видишь объекты, когда ты привык, что за памятью уже следить не нужно, есть GC, который следит за этим, а тебя только иногда какой-нибудь сокет или дескриптор нужно руками освободить.
Короче. Есть тут те, кто с ООП-языка обратно на Си переходили? Какие есть лайфхаки, чтобы быстрее переключить мозги обратно? Или проще таки сменить работу и писать в ООП-парадигме?

Да, понимаю, что вопрос не совсем по теме треда, но сам язык я знаю, как компуктеры работают - тоже, а вот момент с майндсетом не дает покоя.
Аноним 15/01/22 Суб 16:11:50 2265749 115
>>2263515
Открываешь гитхаб, ищешь nginx. Написан он на няшном. Смотришь и видишь, что все очень даже удобно и красиво. А главное - ПОНЯТНО.
Аноним 15/01/22 Суб 16:25:32 2265769 116
>>2265746
>Есть тут те, кто с ООП-языка обратно на Си переходили?
Нахуя? Ебашь дальше на шарпе/джаве/котлине/скале, нахуй тебе этот нищий завод и си усрался?
Аноним 15/01/22 Суб 16:31:38 2265776 117
>>2265769
Ну, тут железочки дают. Я поработал какое-то время на шарпе в вебе и это так уныло было: гоняешь туда-сюда жсоны. А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло. Короче, все не так абстрактно, как в вебе, где ты вроде что-то сделал, а поймешь что ты сделал и кому оно нахуй надо - через год разработки, когда придут менеджеры и фидбек от пользователей принесут.
Аноним 15/01/22 Суб 16:56:34 2265799 118
Аноним 15/01/22 Суб 17:04:36 2265807 119
>>2265799
~60к после всех налогов. Да, когда я работал в вебе - я получал больше. Но опять же, тут - железки и видно результат работы, а там - ну, на сервере мой код крутится, является частью какой-то здоровой системы, хуй знает, будет ли хоть раз за год именно мой код вызван, хуй знает кто пользователь и что ему вообще от системы нужно, потому что на разработку задания давали менеджеры и они все поясняли конкурентным преимуществом или какими-то графиками, дескать вот, фича популярна, давайте у нас будет.
Аноним 15/01/22 Суб 17:12:16 2265819 120
>>2265807
>>2265776
Анон, если ты кайфуешь от этого и тебе по зп нормально, то я рад за тебя.
мимо
Аноним 15/01/22 Суб 17:14:13 2265821 121
Аноним 15/01/22 Суб 17:48:18 2265853 122
>>2265776
>А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло.
Это же пишется на всяких МЭК-языках, типа IL, ST, FB, LD, а не на С. Или у вас там и железки самопальные?
Аноним 15/01/22 Суб 18:01:15 2265865 123
>>2265853
Не понимаю что ты под самопальными подразумеваешь. Комплектующие(платы, микроконтроллеры, диоды и т.д.) заказываются из-за бугра(что-то у китайцев, что-то из США, что-то с европы, в зависимости от требований к устройству и цены). Умные дядьки-инженеры это все в зависимости от требований к устройству компонуют на плате, дизайнеры - делают корпуса если надо. Когда тестовые образцы проходят все испытания - начинается производство. Сейчас весь наш код внутри устройств - на си написан. Судя по репкам, когда-то давно пытались на С++ писать, но что-то не срослось.
Аноним 15/01/22 Суб 18:10:23 2265872 124
>>2265865
А, ну да, сейчас еще кококо импортозамещение, государство хочет заставить переходить на НАШИ комплектующие, но судя по умным дядькам-инженерам - наше железо скорее всего не появится, потому что там цены такие, что пиздец, а качество уровня: ну да, работает, но отстает от зарубежного как по характеристикам, так и по качеству, про сервис - говорить не приходится.
Аноним 15/01/22 Суб 18:14:17 2265873 125
>>2265865
>Умные дядьки-инженеры это все в зависимости от требований к устройству компонуют на плате, дизайнеры - делают корпуса если надо. Когда тестовые образцы проходят все испытания - начинается производство.
Но ведь на выходе получается слабоподдерживаемое говно жи!? Одно дело ПЛК, который может любой переконфигурировать, а другое дело самопальные платы, с залоченной прошивкой и отсутствием исходников. Нахуя вы это делаете?
Аноним 15/01/22 Суб 18:24:00 2265877 126
>>2265873
> Нахуя вы это делаете?
Потому что эти устройства и не должны быть переконфигурированы. Прошивки делаются специально под требования клиента и нормативные акты. Ну и да, я не хотел вдаваться в подробности, но сфера - измерительные приборы. Думаю из этого понятно, что какой-нибудь ЖЭК не хочет, чтобы любой Вася-радиолюбитель и умеющий пользоваться гуглом - залез и сделал себе бесплатную воду, там куча степеней защиты, начиная с поднесения магнита и заканчивая попыткой перепрошивки.
Аноним 15/01/22 Суб 18:46:42 2265891 127
>>2265877
>но сфера - измерительные приборы
> А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло
Чота ты запизделся ужо.
Аноним 15/01/22 Суб 19:17:55 2265916 128
.jpg 304Кб, 737x557
737x557
.png 197Кб, 600x600
600x600
.jpg 878Кб, 1000x1000
1000x1000
>>2265891
Няша, ты когда последний разу какой-нибудь современный счетчик или УСПД видел? Лампочки для индикации состояний там в наличии. Подключились к серверу по GSM - лампочка горит, на дисплее - циферка 1 - установили TCP-соединение; 2 - зарегистрировались на сервере; 3 - работаем в штатном режиме, шлем данные и т.д. Релешки всяких счетчиков - так же: пришел запрос по какому-нибудь modbus или iec101/104 на контролирующую станцию, она передала уже конкретному устройству - у него переключили реле, в квартире отключили свет/воду за неуплату.
Аноним 15/01/22 Суб 19:24:07 2265922 129
>>2263515
Измельчал нынче программист...
Аноним 15/01/22 Суб 19:31:49 2265924 130
>>2265916
До чего технологии дошли...
Аноним 15/01/22 Суб 19:40:50 2265934 131
>>2265924
Вот ты рофлиш. А там в некоторых экспериментальных и дорогих образцах - линукс(порезанный, но вполне себе линукс), для веба ПХП, фронт на vue каком-нибудь, уже хотят приложения с сей на более современные языки переносить, проблема в памяти, т.к. если тот же .net или жаву запихнуть, то придется памяти больше покупать -> увеличение стоимости конечного устройства. В обычных массовых счетчиках этого конечно нет. Пока. Но будущее примерно такое: ты будешь иметь возможность прямо с компа посмотреть сколько ты там чего выжрал, оплатить сразу с мобилы или прикрутить автооплату.
Аноним 15/01/22 Суб 20:00:26 2265954 132
>>2265934
>Вот ты рофлиш
Я и не рофлю. Действительно удивлен до чего технологии дошли.
Зачем тебе спойлеры, анон?
Аноним 15/01/22 Суб 20:04:18 2265958 133
>>2265954
> Зачем тебе спойлеры, анон?
Ну, типа нерелейтед для треда. Типа тред-то про сишечку, а я про свой завод пишу.
Аноним 16/01/22 Вск 10:28:31 2266479 134
>>2265746
>когда ты привык, что за памятью уже следить не нужно, есть GC, который следит за этим
Я всегда говорил, что сирешётка разжижает мозг. Программист, которому нужен сборщик мусора, вместо кода пишет мусор. Серьёзно, блядь, ты ведь понимаешь, что GC необходим не для того, чтобы ты, долбоёб, мог не думать, а для того, чтобы следить за временем жизни объектов, попавших в замыкания в языках с лексической областью видимости и функциями высшего порядка?
Аноним 16/01/22 Вск 13:30:40 2266648 135
>>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 2266674 136
>>2265922
Ты хочешь сказать, что уже сам через 2-3 месяца изучения мог спокойно на си что-то написать без проблем и с пониманием того, что ты делаешь?
Аноним 16/01/22 Вск 14:33:06 2266713 137
>>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 2266747 138
>>2266713
Я имел ввиду не то, как оно работает под капотом, а то когда у тебя лапша из кода и нужно понимать что и к чему ты пишешь. Я не думаю что человек изучающий си месяца 3-4 способен сразу к осознанному написанию сложного по. К примеру взять питон макаку какую-то, там же просто пишутся скрипты которые надо «заучить», я не думаю что в си так получится, написать из коробки что-то осмысленное, да ещё чтобы оно и работало
Аноним 16/01/22 Вск 21:14:54 2267124 139
>>2266747
>>2263515
Для написания хорошего ПО надо научиться архитектуру придумывать. Я уже лет 5 программирую, но начал задумывать над этим только сейчас. Потому что, если мой проект разрастается хотя бы до уровня комплиятора "непростого" языка программирования, то везде начинают слои абстракции друг в друга переливаться, WET образуется сам по себе и исправить его представляет сложности, один и тот же код приходится переписывать по несколько раз.

Если научить человека, изучающего Си 3-4 месяца создавать хорошую архитектуру, то и ПО он сможет нормально и внятно писать.
Аноним 17/01/22 Пнд 05:06:22 2267367 140
>>2267124
>Если научить человека, изучающего Си 3-4 месяца создавать хорошую архитектуру, то и ПО он сможет нормально и внятно писать.
фантазии. и мало того что "нормально и внятно" никогда заранее не понятно, так он ещё и не поймёт как не надо.
Аноним 17/01/22 Пнд 08:48:55 2267396 141
586f6863c361882[...].jpg 219Кб, 945x686
945x686
Есть динамически выделенная память, типа 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 2267471 142
Аноним 17/01/22 Пнд 11:52:55 2267578 143
>>2267471
Спасибо, чувак.
Работает.
Аноним 17/01/22 Пнд 13:37:12 2267676 144
>>2266648
Спасибо за великолепную иллюстрацию моего тезиса.
Аноним 17/01/22 Пнд 13:38:05 2267679 145
>>2266713
>который прочитает из регистра данные переданные
Не из регистра, а из оперативки.
Аноним 17/01/22 Пнд 21:16:59 2268236 146
image.png 23Кб, 368x521
368x521
Задание K&R 1.9 Написать программу для копирования входного потока в выходной с заменой каждой строки состоящей из одного или нескольких пробелов - одним пробелом

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

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

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

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

Эх, Луговского на вас, долбоёбов, не хватает, он бы вас сразу нахуй опустил, это я такой добрый, объяснять ещё что-то пытаюсь, нести светлое знамя прогресса в безграмотные народные массы.
Аноним 17/01/22 Пнд 22:11:03 2268304 150
>>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 2268310 151
>>2268278
на момент чтения мной этого задания bool еще не введен в оборот
Аноним 17/01/22 Пнд 22:18:19 2268313 152
>>2268304
>Если тебе нужно было серию пробелов заменить одним
мой код ровно это и делает
Аноним 17/01/22 Пнд 22:29:11 2268328 153
>>2268313
Я в упор тогда не понимаю каким образом. Может быть я обдабался.
Смотри, ты встретил пробел. Заходишь в условие. Увеличиваешь счетчик. Проверяешь что счетчик равен 1. Засовываешь пробел в выходной поток если счетчик 1. Выходишь из условия. Засовываешь значение из переменной c - в поток, это второй пробел уже. Затем ты обнуляешь счетчик, что значит что ты если снова встретишь пробел - счетчик снова будет равен 1.
Я в упор не понимаю, как оно у тебя работать должно. Может быть мне нужно поспать.
Аноним 17/01/22 Пнд 22:34:14 2268333 154
image.png 24Кб, 326x543
326x543
>>2268328
не ты прав, я случайно удалил else

Аноним 17/01/22 Пнд 22:48:19 2268343 155
.png 5Кб, 263x336
263x336
>>2268333
Ну, тогда раз ты таки беспокоишься о переполнении и при этом типа про bool еще не знаешь - можешь просто int как тот же флаг использовать.
Аноним 17/01/22 Пнд 23:51:01 2268418 156
>>2245329 (OP)
>- Visual Studio Community Edition
Достопочтимый сэр, вы ёбу дались? Вы действительно советуете для хэллоувордов устанавливать и настраивать этого стоголового монстра?
Аноним 18/01/22 Втр 00:51:44 2268456 157
.png 99Кб, 1081x629
1081x629
.png 90Кб, 1111x694
1111x694
>>2245329 (OP)
Прохожу вводный курсик на степике так сказатьб. Кто-то может пояснить, что в данном случае не так?
У меня всё работает, а на сайте не проходит. я бы и там в комменты отписал, но автор курсика под этим заданием людям лишь год назад отвечал
Ну и код на пастебин: https://pastebin.com/rccCL2ER
Аноним 18/01/22 Втр 01:11:42 2268469 158
>>2268456
>Ну и код на пастебин: https://pastebin.com/rccCL2ER
Я правда туда забыл main и includы добавить, но тут я думаю и так понятно какие инклюды добавить надо, чтобы работало.
Аноним 18/01/22 Втр 02:23:50 2268488 159
>>2268295
а я был за тебя в этой дискуссии. хотя и не понимаю/понимал зачем gc.
Аноним 18/01/22 Втр 02:32:54 2268491 160
Аноним 18/01/22 Втр 02:34:07 2268492 161
>>2268491
точность 1*10^-3. градусы в 0...1
Аноним 18/01/22 Втр 04:11:41 2268504 162
code.png 174Кб, 1392x1514
1392x1514
Такой вопрос. Вот есть связной список типа пикрелейтед. Вот если я захочу его очистить мне нужно пройтись и вычистить каждую ноду, или достаточно только сам список в free кинуть?
Аноним 18/01/22 Втр 04:50:16 2268510 163
>>2268504
достаточно. но ты распиши, почему ты решил что нет.
Аноним 18/01/22 Втр 05:03:45 2268512 164
>>2268510
Да я ноль в сишке. Ну я думал что так-как ноды не хранятся непосредственно в стракте списка то и free не может знать сколько и где памяти освобождать. Ну кроме как рекурсивно пройтись по всем поинтерам.
Алсо, не подскажите с какими флагами надо запускать gcc чтобы он хоть как-то ексепшены показывал. А то сейчас он молча все компилирует, и так же молча при запуске вылетает.
Аноним 18/01/22 Втр 05:11:06 2268514 165
>>2268512
1. free знает размер, потому что он записан по тому же указателю, но до.
2. держи мой скрипт (уже устарел наверно) https://pastebin.com/JSgeTbq7
Аноним 18/01/22 Втр 05:13:50 2268516 166
>>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 2268517 167
>>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 2268519 168
>>2268517
$ sh ~/zprof/dev/pro/utils/ccflags/ccflags.sh --get-ldflags --with-debug gcc
-fsanitize=address
Аноним 18/01/22 Втр 05:22:01 2268520 169
но это не факт. как что в нашем мире линкуется, тем более, в разных ос - это одному богу известно.
Аноним 18/01/22 Втр 05:27:22 2268522 170
>>2268519
Да, из-за фсанитайзов крашится. Наверное не поддерживает форточки.
Ну я
>-std=gnu2x -Wpedantic -w -Wfatal-errors -g -Werror -Wduplicated-cond -Wshift-negative-value
вписал, вроде начало ругаться когда пытаюсь стековые поинтеры освобождать.
Аноним 18/01/22 Втр 05:32:34 2268523 171
>>2268522
наверно - не проверял. раньше и линковать не надо было. такая, ещё экспериментальная штука, чтоли. но советую.

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

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

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

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

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

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

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

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

Мне поможет двусвязный список или что-нибудь ещё?
Аноним 19/01/22 Срд 18:12:23 2270523 186
Аноним 20/01/22 Чтв 05:22:59 2271145 187
>>2270523
>треды можно юзать?
Я не знаю, это закрытая железка (под капотом какая-нибудь RTOS) и закрытое ПО.
Позволено создавать параллельные процессы \ задачи самого примитивного вида.
Аноним 20/01/22 Чтв 07:28:20 2271162 188
>>2271145
не может быть что там нет posix threads
Аноним 20/01/22 Чтв 10:59:17 2271260 189
Снимок экрана о[...].png 491Кб, 628x887
628x887
>>2257900
Выкатываюсь из Windows с этой.
Аноним 20/01/22 Чтв 12:39:35 2271347 190
>>2271260
> камран амини
это кто? звучит как чмо из индии.
Аноним 20/01/22 Чтв 12:42:11 2271351 191
>>2271260
Если на книге есть ебло автора - то эта книга шлак галимый в 90%
Аноним 20/01/22 Чтв 12:48:09 2271356 192
>>2271351
У Пакта часто такой дизайн обложек.
Аноним 20/01/22 Чтв 13:06:49 2271375 193
{EAB07ECC-23B8-[...].png 966Кб, 1191x1684
1191x1684
Аноним 20/01/22 Чтв 13:27:29 2271398 194
>>2271260
> ООП
В помойку, индус не знает куда еще свое ооп засунуть
Аноним 20/01/22 Чтв 20:07:48 2271784 195
>>2271398
Нармальна! ООП там для понту больше. Чисто показать как можно наследелование, инкапсуляцию реализовать. И его подход с вынесением в хилеры минимально необходимого интерфейса мне нравится. А так там в основном про многопроцессность/многопоточность в никсах.
Аноним 20/01/22 Чтв 21:35:44 2271867 196
code.png 19Кб, 714x611
714x611
err.png 4Кб, 381x179
381x179
Подмогните, пожалуйста.

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

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

Всем спасибо. Ложная тревога.
Аноним 21/01/22 Птн 04:09:08 2272044 198
>>2272036
>продал
продрал*
slow_fix
Аноним 22/01/22 Суб 14:25:24 2273186 199
>>2262937
Так сдесь де блок цикла не правильный, нужно или else if или в {} запихнуть.
Аноним 22/01/22 Суб 14:41:51 2273209 200
Привет! в общем тут такой вопрос, я редактирую в самой программе строку и хочу сохранить её в файл, то есть если я сам её редактирую, то /0 по дефолту не будет добавлен, да? так вот, для того, чтобы правилньо сохранить буффер в файл, мне надо добавлять самому 0 символ, или нет? просто насколько я помню EOF не 0, а вообще отрицательное число, поэтому я вообще не знаю как тут быть, нужен совет
Аноним 22/01/22 Суб 15:16:55 2273252 201
>>2268456
Что за курс? Скинь ссылку
Аноним 22/01/22 Суб 18:04:17 2273483 202
>>2271356
Так пакт это и есть шлак, там издаться может почти кто угодно, надо очень тщательно фильтровать. Это не орейли тебе.
Аноним 22/01/22 Суб 18:27:29 2273507 203
>>2273209
Ты путаешь конец строки с концом файла
Аноним 23/01/22 Вск 00:49:50 2274038 204
Плохая ли практика писать сразу в cpp файликах и не использовать хедеры?
Аноним 23/01/22 Вск 01:03:45 2274058 205
>>2273209
\0 это признак конца сишной строки в памяти(крайне хреновый кстати, из-за которого нельзя \0 использовать в самой строке). В текстовом файле конец строки это \n или \r\n в зависимости от ОС. По крайней мере так разруливают все основные популярные апи дргугих языков, при работе с файлами. Допустим в шарпе, если ты будешь использовать File.ReadLinse("path") - то разделителем этих строк - будет \n или \n\r в зависимости от ОС, а при записи с помощью File.AppendAllLines ("path",strings[]) - в конце каждой строки - добавятся эти символы.
EOF - в сях/плюсах - это просто флаг того что файл/поток закончился и никуда его лепить не нужно. Да, во времена доса - там таки был такой символ, но использовалось это как костыль для своих досовских нужд.
Чтобы сохранить строку в файл ты должен, внезапно, просто записать все символы в файл, предварительно разрулив кодировку.
Аноним 23/01/22 Вск 09:19:15 2274249 206
>>2273209
Открой одинаковые файл и буфер в хекс-редакторе/отладочном вьювере и посмотри как оно устроено.
Аноним 23/01/22 Вск 12:11:29 2274307 207
>>2274058
>крайне хреновый кстати, из-за которого нельзя \0 использовать в самой строке
Зачем тебе его использовать в строке?
Аноним 23/01/22 Вск 12:13:50 2274308 208
>>2274038
В больших проектах плохая, в ~1к строчниках имеет смысл.
Аноним 23/01/22 Вск 12:16:07 2274311 209
>>2269586
Разбить на модули и тестировать их отдельно, иначе только мощное железо.
Аноним 23/01/22 Вск 12:24:27 2274314 210
>>2274307
Ну, банально потому что символы в строке могут быть не однобайтовой кодировки?
Аноним 23/01/22 Вск 12:47:03 2274326 211
Аноним 23/01/22 Вск 12:54:44 2274336 212
Как узнать чем является нестандартный тип, структурой или псевдонимом?
Аноним 23/01/22 Вск 12:58:44 2274341 213
>>2274336
Если объявлен, как struct NAME { ... };, то это структура, а если объявлен, как typedef ... NAME;, то это псевдоним.
Аноним 23/01/22 Вск 13:00:09 2274343 214
>>2274336
В Emacs M-x xref-find-definitions
Аноним 23/01/22 Вск 13:17:16 2274359 215
как дела?
Аноним 23/01/22 Вск 15:34:12 2274508 216
>>2274341
Как найти где оно там объявлено
Аноним 23/01/22 Вск 18:47:00 2274723 217
1505714785414.png 59Кб, 531x300
531x300
вот почему у вас горит?
Аноним 23/01/22 Вск 20:44:26 2274885 218
>>2274723
Лол, раст особо не помогает. Конечно он позволяет избежать глупых ошибок при работе с памятью, которые можно допустить по невнимательности, но всего того, что написано в твоем посте он не решает.
Раст - продукт от корпораций для корпораций, чтобы ускорить время и понизить стоимость разработки продукта, заменив высокооплачиваемых спецов на пару индусов. В общем, системное программирование может ожидать такая же участь как и веб с энтерпрайзом. У раста будет своя определенная ниша, но как УБИЙЦА няшной и плюсов он точно не годится.
Аноним 23/01/22 Вск 21:03:29 2274930 219
G2BQZ6Z2.png 92Кб, 500x499
500x499
>>2274885
>этот дэмэджконтрол
>от жирной типовой пасты про вирджина и чэда
Аноним 23/01/22 Вск 21:42:11 2274982 220
>>2274930
>этот дэмэджконтрол
Не поверишь, но я прямо сейчас пишу проект на расте и с радостью перешел бы на этот язык будь он готов. А пока что у него даже стандартов нет, весь стандарт - это текущая функциональность компилятора.

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

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

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

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

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

>Специально по раст его никто изменять пока что не будет.
А ты хотел бы лайфтаймы в IR добавить?
Аноним 24/01/22 Пнд 01:01:26 2275140 233
>>2275137
Пидорас ты адекватный.
Аноним 24/01/22 Пнд 01:16:44 2275149 234
>>2275140
Т пропустил, о расте же говорим.
Так что пиздуй в спать, скотина, завтра в школу.
Аноним 24/01/22 Пнд 01:27:41 2275166 235
>>2275149
>завтра в школу.
Ох, если бы это было правдой, то я бы обрадовался.
Увы, но я уже зрелый мужик, который должен сам себя содержать и обслуживать. Как же я заебался...
Аноним 24/01/22 Пнд 05:10:36 2275216 236
image.png 719Кб, 854x956
854x956
Привет.
Сижу сейчас компилю ядро Linux. Просто так. 20 лет этого не делал, решил вспомнить молодость. Прифигел от размера исходников.
Аноним 24/01/22 Пнд 06:26:53 2275236 237
>>2275216
Дед, чем это ты занимаешься?
Мам, смотри Дед с ума сошел!
Аноним 24/01/22 Пнд 07:23:08 2275247 238
>>2275216
Привет Денис, как дела?
Аноним 24/01/22 Пнд 09:03:07 2275266 239
>>2274343
а что за теги нужны?
Аноним 24/01/22 Пнд 09:05:56 2275267 240
>>2274982
>даже стандартов нет
мне вот это главное не понятно - почему они всё время меняют поведение? делали бы уже, за выдержкой лет, раст 2, 3, 4 - как культурные люди делают.
Аноним 24/01/22 Пнд 09:08:46 2275270 241
>>2275267
или, вероятно, это попеннет в голову так проник, и там нет нарушений, а только нарост функционала. правда не понимаю раст, даже стыдно иногда становится, что все говорят про него, а я даже синтакстис не знаю.
Аноним 24/01/22 Пнд 09:13:12 2275273 242
>>2275216
отключай сходу в конфиге все драйвера кроме тех что тебу нужно - скорость взлетит в небеса компиляции.
Аноним 24/01/22 Пнд 12:09:47 2275381 243
>>2275266
Exuberant ctags. Хотя с clangd тоже должно работать.
Аноним 24/01/22 Пнд 12:12:13 2275382 244
>>2275137
>>Rust - фронтэнд для llvm
>Реально учишься походу.
Пажжи, так для ржавого есть другие бэкэнды, кроме llvm?
мимо растохейтер
Аноним 24/01/22 Пнд 12:27:24 2275397 245
>>2275382
Ещё один вкатыш не отличает языка от имплементации.
Это оксюморон уровня "С — фронтэнд для LLVM".
Фронтенд для LLVM — это конкретно rustc, как и clang.

>Пажжи, так для ржавого есть другие бэкэнды, кроме llvm?
Есть gccrs, mrustc. Хотя сути не меняет, даже не будь их.
Аноним 24/01/22 Пнд 12:28:12 2275399 246
>>2275166
Перекатывайся в раст и начинай траповать, очевидно же что делать.
Аноним 24/01/22 Пнд 13:05:06 2275433 247
>>2275399
а можно ли натягивать растотрапиков будучи СиГосподином?
Аноним 24/01/22 Пнд 14:40:16 2275532 248
>>2275433
Можешь конечно.
Правда проблему самосодержания ты только ухудшишь для себя...
Аноним 24/01/22 Пнд 14:47:34 2275544 249
>>2275433
>растотрапиков
они только в интернете есть, в реальности это джава-квазимоды
Аноним 25/01/22 Втр 12:19:11 2276250 250
Аноним 25/01/22 Втр 17:35:35 2276597 251
1643121333712.jpg 21Кб, 300x440
300x440
Хорошему проверенному человеку нужна помощь в выполнении заданий по С#, а именно по Windows Presentation Foundation.

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

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

#include <stdio.h>

main () {

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

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

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

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

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

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

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

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

>>2279757
>пук

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

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

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 2280483 296
Аноним 29/01/22 Суб 01:34:05 2280499 297
>>2280482
>foo = {11, 22, 33, 44};

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

И зачем ты в функцию передаешь указатель на указатель?
Аноним 29/01/22 Суб 02:48:56 2280518 298
>>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 2280525 299
>>2280518
>Пока что выкрутился такой оберткой, но выглядит как-то погано, не думаю, что это экономно по памяти:
>
>typedef struct {
>UINT8 baz[3];
>} bar;
>

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

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

#pragma pack(1)

Аноним 29/01/22 Суб 10:17:51 2280572 300
Аноним 29/01/22 Суб 10:31:55 2280579 301
>>2280435
Школота-хеловорлдщик
Аноним 29/01/22 Суб 13:35:08 2280684 302
>>2279642
Обычно самоучки чем-то стоящим становятся месяцев через 6. Пригодными для решения реальных задач становятся через год. И лишь через два года они могут создавать большие и надёжные проекты. Разумеется, это усредненные числа, у каждого индивидуально может наступить каждый из моментов раньше или позже в зависимости от выбранных методов обучения, количества свободного времени и сил, способностей и связей с другими.
Аноним 29/01/22 Суб 16:08:09 2280778 303
photo2022-01-29[...].jpg 60Кб, 960x540
960x540
>>2280579
Расмус-то? Ясен пень.
Аноним 29/01/22 Суб 16:46:26 2280806 304
>>2277714
Обыкновенная физиология. За сильное возбуждение нервной системы неизбежно расплачиваешься утомлением. Если очень интересно, можешь почитать "Гениальность и помешательство" Ломброзо, там этот вопрос часто поднимается.
Аноним 30/01/22 Вск 00:06:29 2281104 305
>>2245329 (OP)
Какие есть альтернативы protobuf, пригодные для описания различных закодированных или сериализованных структур данных? Чтобы работать с бинарными протоколами различными. Думаю, реализовать для себя нечто подобное, или изучить готовое, если есть.
Аноним 30/01/22 Вск 12:00:49 2281342 306
Аноны из ембеддеда, системщины и других низкоуровневых отраслей.
У вас на работе тоже имеются QA, аналитики, ПМы, менеджеры и прочие социобляди в огромном количестве?
Аноним 30/01/22 Вск 17:13:27 2281640 307
>>2281104
Есть flatbuffers, есть bencode, но проще всего сделать что-то свое. Есть ровно три варианта: срать текстом, срать сырыми структурами (тебе будут говорить, что это плохо, но ты не верь) или срать каким-то подобием TLV (отправляешь tag/type, опционально length и потом value).

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

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

По поводу сырых структур, там ещё бывает нужно с endianness разобраться, если машины разные.
Аноним 31/01/22 Пнд 23:51:36 2282952 310
>>2247328
В какой момент возникло такое понимание? В чём сложности?
Аноним 02/02/22 Срд 14:16:59 2284546 311
>>2245329 (OP)
Хочу познать как пишут клиент-серверные приложения в телекоме. Что и где читать? Какой язык, Си или Эрланг, или оба? Где вообще лучше такие вопросы задавать?
Аноним 02/02/22 Срд 14:54:31 2284571 312
>>2284546
Прям телеком-телеком уровня коммутаторов? А так плюсы и ява.
Аноним 02/02/22 Срд 15:30:37 2284600 313
image 12Кб, 470x151
470x151
Бамп.
Аноним 02/02/22 Срд 16:09:30 2284641 314
code.png 115Кб, 539x1284
539x1284
>нравятся длинные названия для функция и переменных
>нравится ограничивать длинну строки до 80 символов
>не нравится добавлять много белого пространства
>не нравится 2 пробела для таба, слишком мало
>не нравится 4 пробела для таба, слишком много
>3 пробела это ебланизм
че делать, выглядит уродливо. как как победить аутизм?
Аноним 02/02/22 Срд 16:38:35 2284664 315
202202021635559[...].png 12Кб, 227x56
227x56
>>2284641
4 пробела выглядит лучше, чем 3 или 2. Потому что когда пишешь "if (", то следующая строка начинается там же, где и условие в if, что выглядит ровно и красиво. Используй 4 пробела.
Аноним 02/02/22 Срд 17:16:55 2284706 316
>>2284664
А мне вот не нравится, когда следующая строка начинается там же, где и условие в if.
Аноним 02/02/22 Срд 17:30:40 2284726 317
Аноним 02/02/22 Срд 17:31:11 2284729 318
>>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 2284738 319
>>2245329 (OP)
Можно как то зарабатывать не устраиваясь никуда и не влезая во фриланс? Просто так писать код не интересно, хочется чтобы это приносило хоть какие то деньги. Можно написать приложение для андроида, но это долгий путь. Нужно сделать хороший интерфейс, нужно продвижение. Писать какие нибудь парсеры? Это нужно искать заказы. Есть способы заработать написав приложение, которое продавать на маркетплейсе или же написав приложение, которое будет как то деньги добывать?
Аноним 02/02/22 Срд 18:57:55 2284842 320
>>2284664
>Потому что когда пишешь "if (", то следующая строка начинается там же, где и условие в if, что выглядит ровно и красиво.
Самый тупой аргумент. Почему именно для if? Существуют же еще for и while, почему тогда не 5 или 7 пробелов?
Аноним 02/02/22 Срд 20:28:34 2284966 321
>>2284738
>можно ли зарабатывать не платя налоги
Аноним 02/02/22 Срд 20:41:43 2284979 322
Аноним 02/02/22 Срд 20:53:11 2285002 323
>>2284842
Потому что if встречается в C-коде значительно чаще циклов (из-за обработки ошибок). Ну и это, аргумент не был на 100% серьезным, если ты не понял.
Аноним 03/02/22 Чтв 10:04:48 2285335 324
Как же меня печёт. Хочу похвастаться своим git, но не хочу деанониться на двачах. Придётся хуячить статью на Хабре, плюсы в карму зарабатывать.
Аноним 03/02/22 Чтв 10:42:59 2285355 325
>>2285335
>Хочу похвастаться своим git
100 форков крупных проектов без изменений?
>Придётся хуячить статью на Хабре, плюсы в карму зарабатывать.
Слишком толсто.
Аноним 03/02/22 Чтв 10:48:10 2285356 326
А если в сторонней либе есть enum{}, то я никак не могу, не трогая код из нее, добавить в него еще значений?
Аноним 03/02/22 Чтв 10:50:31 2285358 327
>>2285356
Никак, к тому же зачем? Если в сторонней библиотеке есть enum, значит его значения используются внутри нее, зачем тебе изменять его возможные значения, если они не будут использоваться внутри нее?
Аноним 03/02/22 Чтв 10:54:11 2285359 328
>>2285358
Ну, например, эта либа задает базовый функционал, например, в ней есть базовый набор кубиков для конструктора. Но используя ее, нужно расширить этот функционал, а тип этих кубиков задается в enum, а не строковому названию. Поэтому для расширения требуется как-то впихнуть еще значения в enum, но не трогая код самой либы базовой. Вроде в SDL что-то такое было для добавления своих event и они там тоже в своем enum были, но точно не помню
Аноним 03/02/22 Чтв 11:04:26 2285365 329
>>2285359
В современном мире это делается за одни пул-реквест дорогому Виджаю.
Аноним 03/02/22 Чтв 11:07:30 2285367 330
>>2285365
Так принцип-то не тот: базовая либа она и предназначена для только базового функционала, а пользователи расширяют ее под свои задачи.
А не знаете в плюсах такое тоже отсутствует?
Аноним 03/02/22 Чтв 11:11:27 2285369 331
>>2285359
Мне в какую-либо функцию поступает enum, принимающий значения EVENT_HUY, EVENT_PIZDA, EVENT_JOPA, в моей (внутренней) функции, реализуется функционал для каждого значения, скажем через таблицу строк, функций и т. д.. Чтобы какой-то анон с двача, изменил поведение моей функции, ему надо переписать ее, иначе я бы использовал define для принимаемых констант, если бы добавил (хотел добавить) возможность расширение функционала без вмешательства в исходники. Ты же хочешь просто добавить еще какие-то значения, которые моя функция не ожидает, если я использую таблицу (массив) строк, для каких-либо строковых представлений значений (для отладки, вывода и т. д.), то твое расширение функционала - это потенциальная запись/чтение, в какую-то память, что приведет к ошибкам, уязвимостям в конечном (твоем) продукте. Вывод: переписывай исходники или найди документированный способ добавления нового функционала в нужную тебе библиотеку без изменения исходников.
ТУПОЕ РАСШИРЕНИЕ ПЕРЕЧИСЛЕНИЯ НЕ ВЫХОД!
Аноним 03/02/22 Чтв 11:20:36 2285378 332
>>2285367
Нету. На это завязана проверка switch, а еще некоторые компиляторы сами выбирает ширину типа для enum.
Аноним 03/02/22 Чтв 11:22:20 2285382 333
>>2285369
>>2285378
Спасибо, значит только через hashmap такое реализуется
Аноним 03/02/22 Чтв 12:03:47 2285419 334
>>2245552
>нужно всего лишь... хоть раз реализовать ADT на Си
Подскажи как это делать, в каких книгах или мануалах почитать?
Аноним 03/02/22 Чтв 13:17:28 2285504 335
>>2284729
Блядь, похаперебёнок, почему ты всё ещё копротивляешься? У тебя был шанс тихо уйти из треда размазывать своё говно по ляшкам, а теперь тебе придётся ещё рот от мочи полоскать.
Аноним 03/02/22 Чтв 17:57:32 2285845 336
Аноним 03/02/22 Чтв 18:06:12 2285855 337
>>2285504
Чем ты хвалишься, дура? Язык Си не ты создала. Своим есть чем похвалиться? Код хоть есть какой? Какой же ты ребенок. Только дети хвалятся не своим.
Аноним 03/02/22 Чтв 18:38:05 2285883 338
>>2285855
ГОВОРИШЬ ЧТО ЯЗЫК ГОВНО
@
СДЕЛАЙ ЛУЧШЕ!

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

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

Ты такой же недоразвитый дегенерат. Восхваляешь себя из за Си, который не ты разработал. Ты просто им пользуешься (очень сомневаюсь, что ты написал что то на нем). Ты мог бы похвалиться написанным кодом, но у тебя его нет. Так что закрой рот, щенок.
Аноним 03/02/22 Чтв 19:11:38 2285924 341
>>2285504
>>2285883
Ты тупее осла. PHP это все лишь инструмент. Почему меня должны волновать твои высеры в сторону PHP? Да, я им пользуюсь. Как и многими другими языками. И что с того? Почему мне должны быть стыдно или что ты там имеешь в виду? Дегрод. Это тебе нужно стыдиться, что ты такое чучело недоразвитое. Отброс.
Аноним 03/02/22 Чтв 19:18:42 2285932 342
pepe-smoke.png 183Кб, 630x630
630x630
Аноним 03/02/22 Чтв 19:21:48 2285935 343
8926d22b02f9c3b[...].jpg 53Кб, 600x600
600x600
>>2285917
>>2285924
Кокой сердитый пхпешник. Наверно сам столько сделал для величия языка, что не может сидеть сложа руки, когда на анонимном форуме о нём неодобрительно высказываются.
Ещё и своего батю-алкоголика приплёл зачем-то.
Аноним 03/02/22 Чтв 19:22:57 2285936 344
>>2285355
>100 форков крупных проектов без изменений?
Гы. Ни одного форка. Три проекта на сях. Один из них учебное говно для студентов, который неплохо было бы прибить. Второй - консольная игрушка десятилетней давности. А вот третий... тоже на сях и думаю что вскоре он будет популярен. Не потому что проект крутой, а потому что я "запрыгнул на спину" крупной компании, выводящей новый продкукт. Короче говоря - я подсуетился и сделал к этому продукту консольную утилиту.
Аноним 03/02/22 Чтв 19:26:46 2285941 345
>>2285932
>Иди отсюда
Червя-зумера забыл спросить.

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

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

>>2285946
Типа ты общаться можешь. Ты червь, а с червем общение короткое.
Аноним 03/02/22 Чтв 19:34:06 2285951 350
>>2285949
>Червь
>Лол
>Типа
>червь
>червем
Аноним 03/02/22 Чтв 19:38:11 2285957 351
>>2285951
Я ЧЕРВЬ-ПХПШНИК ХУЖЕ МЕНЯ УЖЕ НЕТ
Аноним 03/02/22 Чтв 19:42:47 2285962 352
>>2285947
> в школе
Как что-то плохое. Ну ваще-то первую зряплату за программирования я получил в 1993 году. Внезапно это была программа на Си для отдела кадров. Никаких 1С тогда и в помине не было.
Аноним 03/02/22 Чтв 22:46:28 2286113 353
>>2285917
Друг, я ничем не хвалился, я просто на пальцах разложил, почему твой любимый язык программирования - говно. По какой причине ты продолжаешь копротивляться, мне неведомо.
Аноним 03/02/22 Чтв 23:58:45 2286180 354
>>2286113
>твой любимый язык программирования
К твоему сведению, мой любимый язык программирования это Лисп. Если порассуждать, то окажется, что Си по сравнению с Лиспом это как Запорожец по сравнению с Ламборджини. Поэтому не стоит плеваться желчью, сам себя обольешь.
Аноним 04/02/22 Птн 09:35:11 2286351 355
>>2286180
>Ламборджини
Ну да, по затратам цп и памяти.
꧁꧂
Аноним 04/02/22 Птн 09:53:09 2286359 356
>>2285962
Какой лвл?
Пенсия сколько?
Аноним 04/02/22 Птн 11:38:53 2286453 357
>>2286180
Так а чо ж ты за пыху тогда уже полтреда впрягаешься? Не пора ли притушить свою анальную боль и пойти дописывать свой кластер метапарадигм на твоём действительно любимо языке?
Аноним 04/02/22 Птн 12:37:41 2286510 358
>>2286453
Любимый лисп — это как любимый хаскелль, он в сердечке, а не в проктах.
Аноним 04/02/22 Птн 15:08:42 2286685 359
>>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 2286716 360
>>2286685
Ты долбоёб не умеющий в иронию.
Етого ты не заметил?
Обо мне

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

>Обо мне
?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Так что можешь расслабить своё зумерское очко, и идти играть в фортнайт. Написанный на плюсах.
Аноним 06/02/22 Вск 13:11:09 2288471 388
>>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 2288472 389
G2BQZ6Z2.png 92Кб, 500x499
500x499
>>2288461
>Не понял о чем ты. Насчет веба на Окамле, имел ввиду Ocsigen. Он дает фулстек тулзы для написания веб-приложений. И бекенд и фронтент можно писать на Окамле. Крутая вещь.
Чел походу думает, что ему тут доказывают что си — лучший язык для вротенда и пхп-крудов.
Вот вы издеваетесь — а ему ведь реально сложно...
Аноним 06/02/22 Вск 13:16:12 2288484 390
>>2288471
Это гибрид го и раста?
Аноним 06/02/22 Вск 13:17:12 2288486 391
Снимок экрана 2[...].png 44Кб, 1050x282
1050x282
>>2288471
Зумер-инноватор изобрёл RAII.
Лет через 15 мб половину из обещанного и запилит на нормальном уровне.
Аноним 06/02/22 Вск 13:29:46 2288507 392
>>2288484
Типа того, да. Только проще.

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

Да и синтаксис у языка простой + нет препроцессора и вообще макросов. Тот же D тоже очень быстро собирался, при том, что там заёбистость синтаксиса не сильно ниже плюсов.
Аноним 06/02/22 Вск 14:00:06 2288570 395
>>2288507
> Типа того, да. Только проще.
а что там от раста?
Аноним 06/02/22 Вск 14:05:03 2288580 396
Пояснити суть D. Зачем дебики создали раст, а не стали использовать д?
Аноним 06/02/22 Вск 14:09:00 2288590 397
Аноним 06/02/22 Вск 14:09:15 2288591 398
>>2288570
А в расте что-то есть, кроме уебанского синтаксиса?
Аноним 06/02/22 Вск 14:09:42 2288592 399
>>2288590
ага, и функция как fn пишется, а так вообще ничего общего
Аноним 06/02/22 Вск 14:11:56 2288597 400
>>2288580
Ты ещё спроси почему на жабе/шарпе писать не пошли.
Аноним 06/02/22 Вск 14:12:28 2288600 401
Аноним 06/02/22 Вск 14:35:41 2288640 402
volt.png 0Кб, 305x51
305x51
сюк)) открыл приложение на V https://volt-app.com в текстовом редакторе, а там Пыню ))
Аноним 06/02/22 Вск 18:56:33 2288940 403
>>2288640
ты б его блять еще в пеинте открыл. или ты троллишь двач бинарниками не в hex-редакторе?
Аноним 06/02/22 Вск 19:01:37 2288944 404
>>2288940
тяжело наверное жить без ЧЮ
Аноним 06/02/22 Вск 19:24:28 2288971 405
16414638346390.png 116Кб, 736x736
736x736
>>2288640
А ты все бинарники в текстовом редакторе открываешь?
Аноним 06/02/22 Вск 19:24:56 2288973 406
16414638346390.png 116Кб, 736x736
736x736
>>2288640
А ты все бинарники в текстовом редакторе открываешь?
Аноним 06/02/22 Вск 19:52:08 2288988 407
>>2288973
а то, я жи у мамы хакир
тоже решил, что не стоит вскрывать эту тему и стремишься ее замять? )
Аноним 06/02/22 Вск 20:16:59 2289014 408
Аноним 08/02/22 Втр 08:55:46 2290416 409
1614888290767-?.png 677Кб, 1278x982
1278x982
>>2288471
Когда его обсуждали на лейнчане, то выяснилось, что даже у простого хеллоуворлда память утекает. Может сейчас всё изменилось, конечно
Аноним 08/02/22 Втр 09:29:08 2290429 410
>>2247328

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

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

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

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

Дальше - сам.
Аноним 08/02/22 Втр 13:19:50 2290605 416
Аноним 08/02/22 Втр 14:18:58 2290692 417
Аноним 08/02/22 Втр 14:58:25 2290739 418
>>2290605
И ещё, почему не работает:
snprintf(tBuf, sizeof(tBuf), "\xd2\xc5\xd1\xd2: %s\t", \xd4\xd3\xd3);

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

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

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

>>2291017
>ко-ко-ко
Аноним 08/02/22 Втр 21:59:35 2291176 426
>>2291162
>А что нельзя? Еще бы у вас разрешения спрашивать.
Конечно можно, просто не стоит копротивляться, когда тебе теоретическую базу хотят посоветовать. Так и сказал бы, что просто хочешь палкой потыкать и кирпич в виде книги дракона - это оверкилл для твоих целей, тогда пропала бы и почва для бесполезного срача.
Аноним 08/02/22 Втр 22:21:13 2291191 427
16414546622790.jpg 10Кб, 512x382
512x382
>>2291162
>А что нельзя? Еще бы у вас разрешения спрашивать.
Можно конечно. Но книжку хотя бы про си придётся прочитать, код по файлам сам себя не разложит. Ну или поищи статеек с "раскруткой" си, если не воспринимаешь инфу вне привычного тебе тиктокерского формата, кек.
Аноним 09/02/22 Срд 03:48:39 2291311 428
>>2291176
>>2291191
Я не против фундаментальных знаний, но есть несколько НО. Вы сами много в этом разбираетесь, что раздаете советы? Книга дракона может и хорошо объясняет как устроены и как строить компиляторы, но она плохо учит это делать на практике. Вот я выяснил, что для понимания как писать компилятор нужно изучать формальные языки, грамматики и методы трансляции. Это такая дисциплина, ей в ВУЗах учат. По ней книги есть. В книге Дракона сомневаюсь, что об этом написано. А потому она плохо годится как в качестве учебника.
Аноним 09/02/22 Срд 04:18:50 2291316 429
Screenshot20220[...].jpg 502Кб, 1075x1740
1075x1740
Screenshot20220[...].jpg 517Кб, 1080x1947
1080x1947
Screenshot20220[...].jpg 451Кб, 1080x1765
1080x1765
Screenshot20220[...].jpg 405Кб, 1080x1911
1080x1911
>>2291311
>Книга дракона может и хорошо объясняет как устроены и как строить компиляторы, но она плохо учит это делать на практике.
Откуда ты знаешь, если не читал? Вообще советую хотя бы скачать книгу и ознакомиться с содержанием.
Аноним 09/02/22 Срд 05:05:36 2291321 430
>>2291316
Спасибо за подсказку.
Аноним 09/02/22 Срд 08:47:36 2291349 431
>>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 2291356 432
>>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 2291359 433
>>2291349
>>2291356
Ну да, статически подставленные функции дают меньше оверхеда чем виртуальные методы. И на цпп тоже, и на других компилируемых языках. Сказать-то что хотел?
Аноним 09/02/22 Срд 10:32:14 2291386 434
>>2274997
>лямбды
Без них ты не сможешь писать лаконичный код. Если функция в языке не является first-class citizen, то это не язык, а обрубок. Хорошо в Си есть указатели и можно передавать указатель в функцию, это его немного спасает.

>Я вот этого никогда не понимал
Отсутствие некоторых фич делает язык чемоданом без ручки. Нести его становится тяжело (код писать тяжело, много кода требуется). Возьмем к примеру Лисп. В нем почти нет синтаксиса, но благодаря некоторым фичам, его небольшой синстаксис становится убойно выразительным. Лисп считается самым выразительным языком. Особенно хорошо эти свойства проявляются при парсинге сложных данных. Попробуй на Си парсить сложные протоколы. Это очень тяжелый ручной труд. Кода писать нужно тонны. Для Лиспа никаких сложностей нет и кода не нужно много.
Аноним 09/02/22 Срд 10:34:27 2291390 435
>>2274997
>Которые ограничены llvm, который развивается для плюсов, лол. Поэтому у раста по определению не может быть больще функционала чем у плюсов.
Чиво? Раст написан на Расте. Почему в C/C++ тредах все такие напыщенные, но необразованные? Не ты ли писал в мой адрес, что я пхп-макака? Ох, лол.
Аноним 09/02/22 Срд 10:36:50 2291393 436
>>2291360
>> fn -> fn -> fn ->
>Проорал
Ну и глупенький. Слышал про кодировки Чёрча? Вряд ли. Сишники и плюсовики народ дубовый. Таким образом реализуют комбинаторы. Которые используют много где.
Аноним 09/02/22 Срд 11:04:34 2291433 437
Аноним 09/02/22 Срд 11:32:41 2291457 438
>>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 2291460 439
>>2291386
>Лисп считается самым выразительным языком.
Это его также самая знаменитая проблема. Каждый lisp-программист норовит написать свою DSL в которой другие программисты копаться отказываются. (Так я слышал несколько раз)
Аноним 09/02/22 Срд 11:57:01 2291478 440
Аноним 09/02/22 Срд 12:03:33 2291485 441
!!!rust-socks.jpg 55Кб, 800x450
800x450
Аноним 09/02/22 Срд 12:17:17 2291497 442
>>2291485
Скучный аргумент, ни разу такого на их житхабе не видел. Или в статьях о Rust, или на reddit/r/rust или еще где кроме двача и оппеннета с лором. Это всего лишь инструмент, не обязательно ориентацию менять.

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

Аноним 09/02/22 Срд 13:00:58 2291528 444
Аноним 09/02/22 Срд 13:37:43 2291575 445
Аноним 09/02/22 Срд 13:46:32 2291589 446
>>2291445
Как же школьнику ни пичот!

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

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

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

>>2291642
>ко-ко-ко, в системном языке не нужон этот ваш Computer Science.
Ух, как нипичот!
09/02/22 Срд 15:26:45 2291697 453
>>2291693
>Ух, как нипичот!
Правильно, нахуй производительность.
Аноним 09/02/22 Срд 16:50:09 2291785 454
Аноним 09/02/22 Срд 16:54:19 2291788 455
>>2291677
static inline
выбери что-то одно.
09/02/22 Срд 17:59:48 2291840 456
Зачем раст называют системным, если он больше конкурирует с плюсами, а не с няшной? Что плюсы, что раст не очень годятся для целей где используется Си. Я как-то хотел прикрутить раст к своему проекту, но произошла ситуация как с плюсами, пришлось выкинуть бОльшую часть языка вместе с проверками и получить огрызок, который не очень-то годен. Какого хуя тогда форсят его системность?
Аноним 09/02/22 Срд 18:10:45 2291854 457
>>2291840
Деньги у (((СЖВ))) есть, вот и форсят.
Аноним 09/02/22 Срд 23:19:09 2292108 458
>>2291840
>ситуация как с плюсами, пришлось выкинуть бОльшую часть языка
Нет.

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

Всё!
Аноним 09/02/22 Срд 23:31:30 2292116 459
>>2291589
> Я знаю. Но это ведь проблема программистов, а не языка. Нужно просто правильно использовать эту мощь. Никто же не говорит, что не нужно использовать огонь, потому что им можно обжечься.
когда у тебя есть миллиард способов сделать что-то одно - то программирование превращается в творчество. Просто со всеми ты не договоришься что надо делать так-то. У каждого свое видение, а еще много кто упрямый как осел.
у меня бля на работе я руби макака если че обколются своими ооп и рубишными "фишечками", такую лютую хуиту понаписывают, на код ревью устал уже спорить с ними, просто апрувлю если работает и тесты не ломает и линтер не ругается. Уже давно понял что дслы, фичи языка - яд и нахуй не надо. чувствую что надо вкатиться в голанг, и менять работу, то нервы не выдержат
Аноним 09/02/22 Срд 23:53:46 2292138 460
>>2291840
>Зачем раст называют системным, если он больше конкурирует с плюсами, а не с няшной? Что плюсы, что раст не очень годятся для целей где используется Си.
Чё? Наркоман?
Аноним 10/02/22 Чтв 00:31:29 2292172 461
>>2292138
Что тебе не понятно?
Аноним 10/02/22 Чтв 01:44:02 2292207 462
>>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 2292228 463
>>2292207
>можно смело писать банкомат
Почему именно банкомат?
Аноним 10/02/22 Чтв 05:45:27 2292262 464
>>2291677
Ошибки читать не пробовал?
Аноним 10/02/22 Чтв 10:05:02 2292327 465
>>2292116
>программирование превращается в творчество.
А потом когда в наследство остается такое "творчество" так и хочется посылать лучи "благодарности" творцу.
Аноним 10/02/22 Чтв 10:19:12 2292340 466
>>2292207
Блядь, ещё один в чулочках. Когда вы уже угомонитесь со своим ржавым
Аноним 10/02/22 Чтв 10:20:41 2292342 467
>>2292116
>Уже давно понял что дслы, фичи языка - яд и нахуй не надо
Ты просто не умеешь их готовить.

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

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

И все считают что их подход лучший и все умеют правильно "приготовить" посрать. Где истина? Истинна - конечно же срать так как ты срешь кто бы мог подумать.
Аноним 10/02/22 Чтв 13:08:59 2292519 471
>>2292449
>по наставлению Малышевой несет с собой табуретку.
Не знал что беру с собой табуретку по наставлению Малышевой.
Всегда думал что беру с собой табуретку, чтобы ноутбук удобно стоял. Не держать же его в руках, сидя на унитазе.
Аноним 10/02/22 Чтв 13:16:26 2292532 472
>>2292519
> беру с собой табуретку, чтобы ноутбук
опасные мувы делаешь, долго сидеть на толчке нельзя, геморрой может появиться.
Аноним 14/02/22 Пнд 03:34:01 2296548 473
>>2245453
Омегалул так марсоход на Си то гайсы,а еще Си будет жить пока будут существовать операционные системы(конкретнее ядро),так как ядро является нечто монолитным,а тут ООп то сосет:) мб не прав если что подправьте в качестве примера могу представить linux ось которую юзают везде практически кроме как десктоп конечно
Аноним 14/02/22 Пнд 04:02:26 2296553 474
>>2247084
Я не чекал >>2279664
Да пиздец жиза все четко рассказал мне тоже советовали сразу лютые пиздецки сложные залупы,и я старался но забил хуй а потом спустя месяц вкатился но по своей методике без книг нахуй как уебан скачал sololearn + видео дударя(ну тупо стартерпак для нуба) таким образом выучив питон с django/flask пофрилансил за копейки ботов для тг создавал А ПОТОМ УЖЕ по собственному желанию перешел на линукс начал изучать Си ядро линукс и алгоритмы со структурой данных и поперло ну кароче kernel hacking
Аноним 14/02/22 Пнд 09:24:43 2296589 475
>>2296553
>кароче kernel hacking
О, ты хакер, а можешь мне одноклассницу взломать? Я тебя друзьям порекомендую за это.
Аноним 14/02/22 Пнд 09:30:16 2296594 476
>>2296589
да, давай, скидывай ее телефончик. Она ведь не жируха?
>Я тебя друзьям порекомендую за это.
Лучше подругам рекомендуй
Аноним 14/02/22 Пнд 10:47:23 2296630 477
>>2296548
Блэт, в шкалке каникулы начались, чтоле?
Аноним 14/02/22 Пнд 11:06:45 2296643 478
О, да тут бамплимит назревает. Подожду-ка бамплимита, да закину "рыбу". После переката тред точно оживёт.
Аноним 14/02/22 Пнд 14:39:19 2296805 479
return 0;
Аноним 15/02/22 Втр 03:44:13 2297527 480
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов