Этого треда уже нет.
Это копия, сохраненная 5 августа 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C Programming Language.png78 Кб, 792x1023
C Programming Language #72 /clang/ # OP 2245329 В конец треда | Веб
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

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

Что в 2022 актуально делать на C?
3 2245495
>>45453

>Почему на C пишут для железа чаще чем на C++?


Потому что у С++ overhead чуть повыше. (особливо если не очень понимаешь, во что выродится твой код) Потому что exception будут недоступны (их можно отключить ключами компиляции).
Ну и просто потому что так повелось. На самом деле причин против С++ не так много.
Ну и конечно молодые долбоящеры будут пихать везде копирование, вместо ссылок.
4 2245499
>>45453

>Что в 2022 актуально делать на C?


Линковать с С++ кодом - очевидно же.

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

30 центов разницы в цене при многомилионных тиражах имеют значение.
5 2245552
>>45495

> Потому что у С++ overhead чуть повыше


Чтобы убедиться, что это не так, нужно всего лишь... хоть раз реализовать ADT на Си или хоть раз прочитать про constexpr

>>45453

> Так удобнее или есть другие причины?


Единственная причина - читаемость и, соответственно, предсказуемость.
6 2245708
>>45552
Чтобы убедиться, что это так, нужно всего лишь заменить string (с new) на чары в статических буферах. Или забыть расставить магию в виде nothrow.

>ADT


А какой у них overhead в сишечке.
7 2246490
>>45708

> А какой у них overhead в сишечке.


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

> заменить string (с new) на чары в статических буферах


На крестах можно писать свои дешевые реализации под задачу с любым количеством нечитаемой магии.
8 2246588
>>46490

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


А в плюсах у тебя типа данные волшебным образом размещаются на стеке, да? А потом происходит возврат из текущей функции и приходит дядя Сегфолт Бахометыч
9 2246591
>>46588
В плюсах данные можно передавать по значению во всякие алгоритмы/типы, потому что шаблоны.
10 2246592
>>46490

>Воид поинтеры


Необязательно. Узлы дерева или списка включаешь в свою структуру, потом containerof в помощь.
11 2246637
в преддверии хочу написать, что хотя и зашёл сюда за этот года раз 5, успел оскорбить кого только можно. но это не потому что я пидорас (хотя и это тоже) но просто это как-то нас заставляет двигать жопой, что ли. извините меня, ребят.
12 2246825
>>46637
пошел нахуй!
13 2246850
>>46591
Так откуда эти данные берутся, из жопы волшебной феи или из operator new, являющегося обёрткой над malloc?
14 2247001
>>46588
В плюсах у меня есть placement new, и размер я знаю заранее, поэтому могу разместить объект где угодно, хоть на стеке, хоть >>46850 в жопе волшебной феи. Опять же, у нас в Си тоже так можно, но сложнее, поэтому приходится каждый раз переизобретать структуры данных под конкретный проект, если важна производительность.
15 2247084
Зацените прогу, задание 1.4 из K&R написать программу для перевода цельсиев в фаренгейты

https://ideone.com/zlQ1k1
16 2247117
>>47084
Вместо
int upper;
upper = 200;

пиши сразу int upper = 200; Мы не в 89 году слава богу, и так можно. Более того создавать переменные как можно ближе к месту их использования - хороший тон.
17 2247138
>>45552
adt на си вообще без накладок можно на макросах делать, так в коде freebsd было сделано как то
а так да, все пердолят через указатель на неопределенный тип, потому что и привычней, и отладка работает, и через границы динамически загружаемых модулей удобно ходить
18 2247139
>>46490
даже добавить нечего, все так
19 2247140
>>46588
ага, в том числе, есть элегантные обертки того что на стеке размещается, даже есть стандартизированный std::array из коробки
20 2247178
>>47117
Так можно было и в 78.

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


Вкусовщина.
21 2247304
>>47296 (Del)

> Хуевый тон


Нет не хуевый. В С89 заставляли совать декларации в начало не для того, чтобы ты кушал и нахваливал. Просто технические проблемы тех времен, однопроходные компиляторы, было проще знать размер стекфрейма заранее. К счастью, те времена давно прошли, и смысла в этом ограничении больше нет.
22 2247313
>>47306 (Del)

> Если все переменеые обьявить в начале функции


То ты не только при изменении функции, но даже при чтении будешь прыгать туда-сюда, потому что какие-то пидары раскидали связанные по смыслу куски кода в разные места исходника. А еще ты очень часто лишаешься инициализации при объявлении, что делает твой код еще более ущербным. Зато ты можешь продолжать дрочить на технологии семидесятых.
23 2247322
>>47316 (Del)

> Высосаное из пальца преимущество


Действительно, вот почему во все языки массово тащат const, а в Си const принято только указателям расставлять - это чтобы анон мог не только оторвать переменную от использующего ее кода, но еще и значение этой переменной где-то в третьем месте задать. Зато как здорово код читается!

> В редакторах можно делить окна


Замечательно. Нам нужен специальный редактор, чтобы дрочить на багофичи семидесятых.
24 2247327
>>47306 (Del)
Нахуя тебе переменные перед глазами, если ты не видишь кода который их использует?
>>47323 (Del)
Константы хорошо описывают иммутабельную природу переменной.
25 2247328
чем больше углубляюсь в изучение С тем больше понимаю, что без ассемблера тут не обойтись... пиздос. И как его учить вообще, надеюсь nand2teris сойдет
26 2247335
>>47332 (Del)

> за сим прощаюсь.


Скатертью дорога. Предупреждаю если увижу тебя на работе и твой уебанский код с переменными в начале функции - дам пизды.
27 2247400
Функция должна быть маленькой, тогда никакой проблемы с переменными в начале.
Так легче визуально оценить размер фрейма.
const для локальных - это мусор навроде венгерской нотации.
Вместо структурирования кода дебилы блямкают одноразовые переменные с const.
28 2247482
Начал изучать С. Удивлен вот этим абзацем:

>При компиляции функции для ее параметров выделяются отдельные участки памяти. При этом для параметров типа float формируются в памяти объекты типа double...


Зачем для float'ов выделять двойную, избыточную память?
В чем тогда смысл использовать float'ы?
1. Экономия памяти в куче? Оперативная память и близко давно уже не узкое место, её можно напихать сколько угодно.
2. Некоторые процессоры умеют вычислять только double? Ну так некоторые умеют, некоторые нет, видеокарты только во float'ы умеют.
Поясните.
29 2247486
>>47482

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


Может ты лучше в другой язык пойдешь? Оно тебе с таким подходом не нужно.
30 2247740
>>47482

>для параметров типа float формируются в памяти объекты типа double


Хуирются. Значения типа float преобразутся в double. В памяти (не на стеке параметров) хранятся как float.

> Некоторые процессоры умеют вычислять только double?


PDP-11 не имел отдельных команд и регистров для float. Каждая программа начиналась с команды, включавшей режим double. Поэтому коньпилятор Ричи все float подвыражения расширял в double, а printf принимал %f как double. В C89 первое убрали, а вот printf никто не стал менять.
31 2247745
>>47327
Ни в одном языке прогромирования не рекомендуется раскидывать переменные по телу функции. Это плохой тон. Использование можно посмотреть с инструментом view usages, который, кроме блокнота, есть везде.
32 2247776
>>45329 (OP)
Хочу подобрать идеальный под мою железку набор GCC-флагов. Как можно затестить производительность с определённым их набором?
33 2247793
>>47306 (Del)
Все переменные надо объявлять как можно ближе к месту использования. Об этом уже тысячу раз писали Страуструп, Пайк, Мартин, Макконел.
34 2247805
>>47793

>Пайк,


Кто такой, чем знаменит?
35 2247823
>>47482
а не читай дурные учебники по си, которые вводят в заблуждение
расширение типа аргументов происходит в 2х случаях - если объявление функции составлено в старом стиле, и второе для функции с неопределенным числом параметров для аргументов попадающих в многоточие, и все, согласись, сегодня это довольно специфические условия, верно? по сути это нужно знать только для семейства функций printf
если объявление функции составлено в новом стиле, но никакого расширения типа аргументов (в том числе float в double) не происходит
ты какой учебник читаешь? какого то русского автора да?
1484a766b4f9490163ae9cdacb72241e.png13 Кб, 580x280
36 2247833
Вот вам говна с хабра принес

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

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

https://habr.com/en/post/59570/
37 2247858
>>47745

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


А в кодстайлах рекомендуется.

> Использование можно посмотреть с инструментом view usages, который, кроме блокнота, есть везде.


А можно не заниматься хуйней и семантически разделять блоки кода, объедения данные и их поведение/обработку.
C programming language.jpeg33 Кб, 600x423
38 2248135
Извините, не сдержался. Супротив языка С ничего не имею, годный даже, STMку вотъ недавно паял кодил.
39 2248139
>>48125 (Del)
Я не вижу смысла спорить и что-то доказывать. Большие программы делаться на модули, модули на функции, функции на блоки внутри функций. Если бы вам долбаебам сказали бы в 89 году, что все нужно писать в одном файле, так вы бы до сих пор так и делали, рассказывая про инструменты редактора которые позволяют во всем этом говне ориентироваться. У тебя нет понимания о том, что такое ясность и удобство восприятия информации. Ты привык к инструментам и постоянному перескакиванию с vu.
40 2248248
>>48139
Это ж просто зелёный и жирный, не корми его, он уже из треда вытекает блядь
41 2248349
В чём разница между:
CFLAGS="-Wl,--hash-style=gnu"
LDFLAGS="-Wl,--hash-style=gnu"
LDFLAGS="--hash-style=gnu"
42 2248971
>>48349
Wl говорит драйверу компилятора (сс/gcc), какие флаги передать линкеру (первый вариант). У линкера (ld) такого ключа нет, и он нахуй не нужен (второй вариант), поэтому ты просто указываешь напрямую (третий вариант). Если ты компилишь без -c или собираешь cc *.o - можешь выбрать 1 или 3, а если сам вызываешь линкер, то очевидно у тебя есть только 3.
43 2248981
>>48971

> можешь выбрать 1 или 3


Сам в цифрах запутался. 1 или 2, т.е., -Wl для cc, без -Wl для ld.
слоуфикс
44 2249023
>>48139
лол, в 89 году раскидывали по разным файликам чтобы компилировалось быстрее, а не из желания че-то там разбить на функциональные модули
перекомпиляция большого проекта занимала несколько часов
на персональных же пека даже компиляция одной единицы трансляции занимала ощутимое время
45 2249170
>>49023

>2022


>А давайте писать так, чтобы компилировалось как в 89

46 2249317
https://www.tuhs.org/cgi-bin/utree.pl?file=Linux0.96c/include/linux/ext_fs.h

Почему здесь объекты платформозависимых типов, если по идеи их размер должен быть чётенько определен?
linus-torvald-first-linux-email.png37 Кб, 504x356
47 2249363
>>49317
Потому что

> It is NOT portable

48 2249374
>>49170
не, сегодня многие пишут основной код в одном файле на тысячи строк кода
многие проекты на гитхабе так организованы, например
49 2249618
50 2249627
>>49023
А отсутствие неймспейсов тут никакой роли не играет, да?
51 2249686
>>49618
Ты же ведь в курсе, что привёл ссылку на исходники ядра версии 0.96, которая относится примерно к тысяча девятьсот девяностому году, и что в современных версиях (https://elixir.bootlin.com/linux/v3.1/source/include/linux/ext2_fs.h ) типы с чёткими размерами?
52 2249730
>>49686
Да это понятно. Меня файловая система интересует, а не ядро.
Хотел заебенить челлендж из ролл-листа, где bootloader (with extended file system), начал было писать под ext2 и тут напоролся на то, что в ext2 куча 32битных объектов, а в i8086 16-битная шина. И стоковая ext как и где скомпилируется, такой и будет. Теперь не понимаю формулировку задачи, и что там требуется.
53 2249732
>>49686
Да это понятно. Меня файловая система интересует, а не ядро.
Хотел заебенить челлендж из ролл-листа, где bootloader (with extended file system), начал было писать под ext2 и тут напоролся на то, что в ext2 куча 32битных объектов, а в i8086 16-битная шина. И стоковая ext как и где скомпилируется, такой и будет. Теперь не понимаю формулировку задачи, и что там требуется.
54 2249903
>>49732
На то он и челлендж. Возиться с 32-битными типами на 16-битной машине - это будет то ещё дрочево, да.
55 2249992
>>45552

>прочитать про constexpr


прикольно, жаль что в си нет
56 2250017
>>49903

> Возиться с 32-битными типами на 16-битной машине


Ну ты такой long x = 12345, и все. Не ассемблер ведь.
57 2250077
>>50017
И компилятор такой тебе с ехидной рожей
mov ax, 12345
58 2250080
>>49903
Мне вот даже интересно стало, что гцц закомпилит с арифметикой uint32_t и ключом -i8086. Думаю, запилит свою арифметику.
59 2250093
Как проверить, что программа будет работать с 16-битными интами? В ДОСЕ не могу, так как памяти не хватает.
60 2250142
>>50121 (Del)
*проверить работоспособность
61 2250510
>>50093
эмулятор?
62 2250744
>>47823
Читаю метанит краем глаза, т.к. удобно с телефона читать.
Пишут что он - сжатый конспект книги Брайана Кернигана и Денниса Ритчи. Т.е. вроде должно быть норм.
Что скажете о метаните? Читать? Дропнуть?
63 2250931
>>50077
А нет, потому что по стандарту long должен уметь минимум -231 ... 231 - 1.

>>50080
Так же, как и 32-битный x86 делает 64, или 8-битный МК делает 16-32 - будут два регистра, четыре регистра, дополнительные инструкции для арифметики (всякие там adc), часто лишние загрузки в память и обратно, если регистров не хватает. Все это может быть сильно медленно, но работать будет.
64 2250932
>>50744
k&r 280 страниц, причем собственно текст книги без приложени - 140 страници, неужели выросло поколение которому нужен конспект даже таких книг?
тогда это пиздец, замолкаю
65 2250994
почему ldexp(0.5, 1024) - не inf в выводе printf? frexp() возвращает экспоненту 1024
66 2250995
>>50931
ну, или будут функции, если на sdcc и z80 к примеру.
67 2251000
>>50994
и -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
68 2251006
>>51002 (Del)
что? я не читаю мысли.
69 2251012
наверно это какой-то мусор из стека, процессора, специфичного буфера?

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

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


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

Success
Success
70 2251020
cirno-gta.jpg49 Кб, 604x362
71 2253038
В чём подводные камни для битмапа группы функций?
Допустим я хочу сделать таблицу функций и замапить её на (к примеру) 8-битное значение:

https://pastebin.com/gjpXRxZb

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

Да, я тупой и просто не могу сообразить
72 2253357
>>53038
В таком виде абсолютно никаких подводных, кроме небольших накладных расходов на проверку бита по сравнению с массивом отдельных bool или size_t. Номер бита в числе измениться не может, это свойство системы счисления (показатель степени двойки). Он может меняться в битфилде, но у тебя-то не битфилд.
73 2254525
Что можно почитать натему системного прогрраммирования под винду? Базу языка я уже знаю. Есть доки майкрасофта, но не сказал бы, что это хороший учебник
74 2254596
>>54525
кернел или юзерспейс?
75 2254641
>>54596
Юзерспейс. Кернел как я понимаю, это драйвера?
76 2254673
>>54641
Рихтер (не знаю, что там актуально - Windows Via C++), потом какое-нибудь не очень старое издание Windows Internals (там и кернелмод, но все равно надо), потом MSDN по интересующим темам. Если интересует легаси (а тебя интересует, потому что под винду сейчас на няшной не пишут), то еще сверху что-нибудь про GDI и опять MSDN. Если сокеты, то Ohlund "Network Programming for Microsoft Windows", и да, снова MSDN. Вообще, MSDN вполне норм, там в каждом разделе есть введение и описание чего куда совать с примерами. С вопросами можешь сюда приходить.
77 2254689
>>54673
>>54673
Благодарю. Рихтер там же аж под семерку писал, если не ошибаюсь? Не устарело? У винды даже битность успела поменяться. А так, MSDN читаю, но это скорее справочник, очень много информации, которую я не очень понимаю, как приминять.
Мне бы найти что-то, что могло бы вкатиться в менеджмент памяти.
А то я смотрю, у винды дохрена своих функций под это
78 2254843
>>54689

> Рихтер там же аж под семерку писал, если не ошибаюсь? Не устарело?


Появились новые апи, но в целом там все с начала линейки 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 (см. слева в меню следующие главы). Навигация могла бы быть лучше, но в остальном вполне читаемо.
IMG20220107114605.jpg4,2 Мб, 4000x3000
79 2257900
тоже начну вкатываться
80 2258048
сап, почему при запуске проги в qtcreator строки меняются местами? На пике на белом фоне это вывод в кьюте. На фиолетовом в терминале запускаю исполняемый файл из папки Debug. Я сам отдаю предпочтение именно терминальному выводу, потому-что там выглядит как должно быть.
81 2258111
чёт вспомнил, я бы это посоветовал вкатывальщикам. https://buildyourownlisp.com/contents

сам не дочитал, просто я уже и так лисп написал и было любопытно.
82 2258813
Почему? В листинге вроде всё нормально, хотя я не уверен, что умею читать. Адрес структуры идёт в rax, оттуда в eax идут первые 32 бита node, которые и есть type - так ведь?
node != NULL, хотя там и так видно.

Не ручаюсь за качество скринов, но с компа всё хорошо видно, например.
83 2258916
>>58048

> ft


Опять школа 12345? Код неси.

>>58813
node != NULL не означает, что node указывает на валидный объект. Вполне может указывать на мусор. printf("%p\n", node);
84 2259258
>>57900
Такую же няшу купил недавно.
85 2259651
Вопрос может быть для /s/, но лучше спрошу тут. У меня в проекте с симейком есть несколько целей и хотелось бы иметь возможность по отдельности вызывать их через менюшку. А нету там такого. Одна цель у меня это компиляция, а другая - прошивка микроконтроллера через программатор.
https://doc.qt.io/qtcreator/creator-build-settings.html
Вот, можно только добавить "этап сборки", но потом эти этапы нельзя вызвать по отдельности через менюшку. Как же так?
Си тут при том что код у меня на нем.
86 2259666
>>59651
Предполагаю, что ты хочешь просто изменить Run или Deploy в настройках проекта. И уже оттуда дергать свою цель. Потому что это уже не сборка.
87 2259681
>>59651

> qt


это в c++
88 2259697
>>59666
Спасибо.

>Потому что это уже не сборка.


Так-то да, но у меня это такая же цель как и остальные. И мне казалось логичным дергать это как вариант сборки. По крайней мере в CLion оно работало как-то так.

>>59681
А какими IDE тут пользуются? По моему Qt Creator и для Си неплохо подходит.
89 2259700
>>59697

>А какими IDE тут пользуются? По моему Qt Creator и для Си неплохо подходит.


как скажешь - я в валенках и ушанке. в emacs и autotools. просто сам не знаю на чём сейчас что делают.
90 2259735
>>59651
add_custom_target пробовал?
91 2259895
>>59735
Так и было сделано. Проблема не с симейком, при вызове руками эти цели нормально отрабатывают. Хотелось из qt creator все это запускать, а я не туда пытался тыкать, анон выше правильно посоветовал уже.
Хотя все равно как-то не очень. А если мне потребуется запускать еще несколько целей? Там опять только одну конфигурацию деплоя можно сделать. Остается еще "Run", но как-то это не очень хорошо.
92 2261787
>>45329 (OP)
Только собрался плотно изучать этот божественный язык и решил качнуть VS 2019 (ибо в VS 2022, при добавлении "Разработка классических С++ приложений" у меня крашится драйвер видимокарты), как его хуй можно скачать с официального сайта. Остался только VS 2022. Мелкософт сам толкает в объятия пиратов штоле?
93 2261799
>>61787
vs это для шарпа, норкоман.
image.png28 Кб, 1069x408
94 2261829
>>61787
Пиздуешь на:
https://visualstudio.microsoft.com/ru/downloads/
Мотаешь в самый низ страницы и ищешь строчку "Старые загрузки"
На пике красным тебе выделил, чтобы не потерялся.
Алсо, может не надо тебе в C++, если ты даже ссылку найти не можешь?
95 2261834
>>61799

>vs это для шарпа, норкоман.


Даже комментировать сей высер неохота.

>>61829
Спасибо. Реально глаза замылило огромными кнопками для скачки 2022, что даже не подумал до футера домотать. Я уже прада нашел старый веб-инсталлер для 19 и кочаю пакеты.
image.png20 Кб, 408x385
96 2262937
Задание K&R 1.8 Написать программу для подсчета пробелов, знаков табуляции и символов конца строки
97 2263019
>>62937
??
Их все вместе подсчитать или сколько каждого в граммах?
98 2263205
>>62937
А как оно getchar() в int пихает?

мимокрокодил
99 2263258
>>63205

>А как оно getchar() в int пихает?


В сях у каждого символа есть свой цифровой код.
100 2263308
>>63019
Я так понял все сразу, задание сформулирвоано именно так, хотя для каждого в отдельности просто заводим отдельную переменную
101 2263330
>>62937
А ентот getchar() чего читает? Ввод в консоль? А как ЕОТF с клавиатуры вести?
102 2263515
Здравствуйте! У меня вот несколько вопросов возник, а как вообще программы крупные на Си пишутся? я тут пукаю что-то в ncurses и тд, но я вообще не представляю, как делаются приложения под линукс по типу htop, всяких инсталлеров да и просто операционок. Как это все можно на одном Си написать? я даже не понимаю от куда эту информацию взять можно, как придти к такому, для меня это слишком ту мач. Может кто поделиться как к этому идти? или хотя бы примерно ориентир дать, я дальше сам постараюсь разобраться, мне не нужны готовые ответы, а просто хотя бы куда направляться, чтобы я дальше информацию искал. Я правда не понимаю как на Си можно написать что-то такое с GUI в терминале, чтобы оно ещё и какую-то деятельность с ОС вытворяло, хотя бы вот просто какой-нибудь File Manager или текстовый редактор написать.
gigachad.jpg58 Кб, 1068x601
103 2263523
>>63515
Просто берёшь и пишешь.
104 2263542
>>63515
Удваиваю реквест.
105 2263641
>>63515
>>63542
дробишь одну большуюзадачу на много мелких и хуяришь потиху. Если чего-то не знаешь - гуглишь, изучаешь.
106 2263646
>>63339 (Del)

>Ктрл+з


это приостановка приложения
107 2263647
парни, сори конечно что не по теме, хз просто где спросить.
кто что думает о языке программирования zig?
108 2263648
>>63515
ну ос - это конечно враньё, потому что на ассемблере всё равно придётся писать. но можешь почитать криса касперски (хз почему у меня такая ассоциация возникла с твоим текстом)
109 2263649
>>63647
хайль
110 2263691
111 2264269
>>63691
'\0'-таки
112 2265347
>>64269
L'\0'
113 2265489
>>63641
Вот этот господин дело говорит. Так всегда нужно делать.
114 2265746
В школе и на первых вузах универа - я писал на си. Тогда - он мне казался удобным и все такое.
Но вот, в середине второго курса у нас было ООП. Там давали на выбор С++, С# и жаву. Я попробовал все и остановился на шарпе.
Так вот. Первое время мне было сложно. Я писал код в Си-стиле, а классы использовал просто как модули. Ничего более. Классы были большие. Было много статики.
Но затем я почитал книжек, и начал пытаться разобраться в чужих репках. Помогли, внезапно, репки жавы, потому что показали, как может быть устроен код в ООП стиле. И МНЕ ПОНРАВИЛОСЬ. Следущие 4 года - я писал исключительно в ООП парадигме.
Но вот закончилась учеба в вузе, я магистр, который немного фармил фрилансерством. Нужно было искать работу. И я пошел на завод. На заводе, внезапно, нужно писать на Си.
И я - буквально на текущий момент - пытаюсь изобретать способы, как привнести ООП в Си, не сломав то что там уже накодили. Я это могу сделать. Но я понимаю, что оно-то не нужно. Нужно майндсет перестроить обратно к процедурному и структурному подходу. Но это так сложно, когда ты везде видишь объекты, когда ты привык, что за памятью уже следить не нужно, есть GC, который следит за этим, а тебя только иногда какой-нибудь сокет или дескриптор нужно руками освободить.
Короче. Есть тут те, кто с ООП-языка обратно на Си переходили? Какие есть лайфхаки, чтобы быстрее переключить мозги обратно? Или проще таки сменить работу и писать в ООП-парадигме?

Да, понимаю, что вопрос не совсем по теме треда, но сам язык я знаю, как компуктеры работают - тоже, а вот момент с майндсетом не дает покоя.
115 2265749
>>63515
Открываешь гитхаб, ищешь nginx. Написан он на няшном. Смотришь и видишь, что все очень даже удобно и красиво. А главное - ПОНЯТНО.
116 2265769
>>65746

>Есть тут те, кто с ООП-языка обратно на Си переходили?


Нахуя? Ебашь дальше на шарпе/джаве/котлине/скале, нахуй тебе этот нищий завод и си усрался?
117 2265776
>>65769
Ну, тут железочки дают. Я поработал какое-то время на шарпе в вебе и это так уныло было: гоняешь туда-сюда жсоны. А тут - хоп, лампочка зеленая замигала, устройство начало сбор данных с других устройств, хоп другая лампочка, уже красная мигает, значит какая-то ошибка, подключаешься, смотришь код, ага - флешка сдохла, ты с приложухи послал сигнала - хоп, устройство релешкой щелкнуло. Короче, все не так абстрактно, как в вебе, где ты вроде что-то сделал, а поймешь что ты сделал и кому оно нахуй надо - через год разработки, когда придут менеджеры и фидбек от пользователей принесут.
118 2265799
>>65776
Какая зп?
119 2265807
>>65799
~60к после всех налогов. Да, когда я работал в вебе - я получал больше. Но опять же, тут - железки и видно результат работы, а там - ну, на сервере мой код крутится, является частью какой-то здоровой системы, хуй знает, будет ли хоть раз за год именно мой код вызван, хуй знает кто пользователь и что ему вообще от системы нужно, потому что на разработку задания давали менеджеры и они все поясняли конкурентным преимуществом или какими-то графиками, дескать вот, фича популярна, давайте у нас будет.
120 2265819
>>65807
>>65776
Анон, если ты кайфуешь от этого и тебе по зп нормально, то я рад за тебя.
мимо
121 2265821
>>65819
Двачую.
122 2265853
>>65776

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


Это же пишется на всяких МЭК-языках, типа IL, ST, FB, LD, а не на С. Или у вас там и железки самопальные?
123 2265865
>>65853
Не понимаю что ты под самопальными подразумеваешь. Комплектующие(платы, микроконтроллеры, диоды и т.д.) заказываются из-за бугра(что-то у китайцев, что-то из США, что-то с европы, в зависимости от требований к устройству и цены). Умные дядьки-инженеры это все в зависимости от требований к устройству компонуют на плате, дизайнеры - делают корпуса если надо. Когда тестовые образцы проходят все испытания - начинается производство. Сейчас весь наш код внутри устройств - на си написан. Судя по репкам, когда-то давно пытались на С++ писать, но что-то не срослось.
124 2265872
>>65865
А, ну да, сейчас еще кококо импортозамещение, государство хочет заставить переходить на НАШИ комплектующие, но судя по умным дядькам-инженерам - наше железо скорее всего не появится, потому что там цены такие, что пиздец, а качество уровня: ну да, работает, но отстает от зарубежного как по характеристикам, так и по качеству, про сервис - говорить не приходится.
125 2265873
>>65865

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


Но ведь на выходе получается слабоподдерживаемое говно жи!? Одно дело ПЛК, который может любой переконфигурировать, а другое дело самопальные платы, с залоченной прошивкой и отсутствием исходников. Нахуя вы это делаете?
126 2265877
>>65873

> Нахуя вы это делаете?


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

>но сфера - измерительные приборы


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


Чота ты запизделся ужо.
128 2265916
>>65891
Няша, ты когда последний разу какой-нибудь современный счетчик или УСПД видел? Лампочки для индикации состояний там в наличии. Подключились к серверу по GSM - лампочка горит, на дисплее - циферка 1 - установили TCP-соединение; 2 - зарегистрировались на сервере; 3 - работаем в штатном режиме, шлем данные и т.д. Релешки всяких счетчиков - так же: пришел запрос по какому-нибудь modbus или iec101/104 на контролирующую станцию, она передала уже конкретному устройству - у него переключили реле, в квартире отключили свет/воду за неуплату.
129 2265922
>>63515
Измельчал нынче программист...
130 2265924
>>65916
До чего технологии дошли...
131 2265934
>>65924
Вот ты рофлиш. А там в некоторых экспериментальных и дорогих образцах - линукс(порезанный, но вполне себе линукс), для веба ПХП, фронт на vue каком-нибудь, уже хотят приложения с сей на более современные языки переносить, проблема в памяти, т.к. если тот же .net или жаву запихнуть, то придется памяти больше покупать -> увеличение стоимости конечного устройства. В обычных массовых счетчиках этого конечно нет. Пока. Но будущее примерно такое: ты будешь иметь возможность прямо с компа посмотреть сколько ты там чего выжрал, оплатить сразу с мобилы или прикрутить автооплату.
132 2265954
>>65934

>Вот ты рофлиш


Я и не рофлю. Действительно удивлен до чего технологии дошли.
Зачем тебе спойлеры, анон?
133 2265958
>>65954

> Зачем тебе спойлеры, анон?


Ну, типа нерелейтед для треда. Типа тред-то про сишечку, а я про свой завод пишу.
134 2266479
>>65746

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


Я всегда говорил, что сирешётка разжижает мозг. Программист, которому нужен сборщик мусора, вместо кода пишет мусор. Серьёзно, блядь, ты ведь понимаешь, что GC необходим не для того, чтобы ты, долбоёб, мог не думать, а для того, чтобы следить за временем жизни объектов, попавших в замыкания в языках с лексической областью видимости и функциями высшего порядка?
135 2266648
>>66479
Таблетки принять не забудь.

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

136 2266674
>>65922
Ты хочешь сказать, что уже сам через 2-3 месяца изучения мог спокойно на си что-то написать без проблем и с пониманием того, что ты делаешь?
137 2266713
>>66674
Что ты понимаешь под пониманием того что ты делаешь?
Ну, вот допустим, я пишу хелло ворлд.

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

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

Я эту телегу к чему. К тому что понимать что ты делаешь - это очень расплывчатая вещь, которая еще и не делает тебя ближе к результату - законченная программа, которая что-то полезное делает. Допустим ты решаешь сделать текстовую адвенчуру. Все что тебе тут нужно это базовые if-else и printf, scanf и работа с файликами, если не хочешь текст хардкодить. Каким образом та телега приблизила бы тебя к тому чтобы ты сделал законченную текстовую адвенчуру - я лично не понимаю.
138 2266747
>>66713
Я имел ввиду не то, как оно работает под капотом, а то когда у тебя лапша из кода и нужно понимать что и к чему ты пишешь. Я не думаю что человек изучающий си месяца 3-4 способен сразу к осознанному написанию сложного по. К примеру взять питон макаку какую-то, там же просто пишутся скрипты которые надо «заучить», я не думаю что в си так получится, написать из коробки что-то осмысленное, да ещё чтобы оно и работало
139 2267124
>>66747
>>63515
Для написания хорошего ПО надо научиться архитектуру придумывать. Я уже лет 5 программирую, но начал задумывать над этим только сейчас. Потому что, если мой проект разрастается хотя бы до уровня комплиятора "непростого" языка программирования, то везде начинают слои абстракции друг в друга переливаться, WET образуется сам по себе и исправить его представляет сложности, один и тот же код приходится переписывать по несколько раз.

Если научить человека, изучающего Си 3-4 месяца создавать хорошую архитектуру, то и ПО он сможет нормально и внятно писать.
140 2267367
>>67124

>Если научить человека, изучающего Си 3-4 месяца создавать хорошую архитектуру, то и ПО он сможет нормально и внятно писать.


фантазии. и мало того что "нормально и внятно" никогда заранее не понятно, так он ещё и не поймёт как не надо.
586f6863c36188293b8b4667.jpg219 Кб, 945x686
141 2267396
Есть динамически выделенная память, типа 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];
142 2267471
>>67396
...prt = &((uint8_t*)array)[x]
143 2267578
>>67471
Спасибо, чувак.
Работает.
144 2267676
>>66648
Спасибо за великолепную иллюстрацию моего тезиса.
145 2267679
>>66713

>который прочитает из регистра данные переданные


Не из регистра, а из оперативки.
image.png23 Кб, 368x521
146 2268236
Задание K&R 1.9 Написать программу для копирования входного потока в выходной с заменой каждой строки состоящей из одного или нескольких пробелов - одним пробелом

Мне не нравится мой счетчик count который при вводе миллиарда пробелов даст слабину
как бы его убрать....
147 2268275
>>67676
Няша, ты же понимаешь, что ты шиз? И то что GC впервые начали использовать в лишпе - не значит что

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


Блядь. Горит. Сука. Давай, объясняй тогда, нахуя нужен был GC в жавах первых версий? Хули он там делал? А нахуя он в бейсике? А хули есть реализации GC даже для сей? Нахуя они там? Сука. Объясняй. Раз уж спизданул хуйню - давай, поясняй нахуя? Жду. Блядь, когда ты продемонстрируешь функции высшего порядка в няшных си(да, блядь, свой GC в си имплементировать никто не мешает) и покажешь мне замыкания в бейсике.
148 2268278
>>68236
Делаешь обычный флаг. IsSpaceFound.
Встречаешь пробел - выставляешь его в true. Когда видишь первый непробельный символ - проверяешь флаг, если там флаг true - вставляешь пробел, сбрасываешь флаг и выставляешь следующий непробельный символ.
149 2268295
>>68275

> Давай, объясняй тогда, нахуя нужен был GC в жавах первых версий?


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

> А хули есть реализации GC даже для сей?


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

> А нахуя он в бейсике?


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

>Блядь. Горит. Сука.


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

Эх, Луговского на вас, долбоёбов, не хватает, он бы вас сразу нахуй опустил, это я такой добрый, объяснять ещё что-то пытаюсь, нести светлое знамя прогресса в безграмотные народные массы.
150 2268304
>>68236
Короче, ты странно условие расписал. Я не совсем понимаю. Судя по коду - ты просто копируешь символы, при этом первый пробел - два раза.
Если тебе нужно было серию пробелов заменить одним, то:
whie(1){
c = getchar();
if(c == ' '){ putchar(c); do{c = getchar(); }while(c == ' ');}
if(c == EOF) break;
putchar(c);
}
151 2268310
>>68278
на момент чтения мной этого задания bool еще не введен в оборот
152 2268313
>>68304

>Если тебе нужно было серию пробелов заменить одним


мой код ровно это и делает
153 2268328
>>68313
Я в упор тогда не понимаю каким образом. Может быть я обдабался.
Смотри, ты встретил пробел. Заходишь в условие. Увеличиваешь счетчик. Проверяешь что счетчик равен 1. Засовываешь пробел в выходной поток если счетчик 1. Выходишь из условия. Засовываешь значение из переменной c - в поток, это второй пробел уже. Затем ты обнуляешь счетчик, что значит что ты если снова встретишь пробел - счетчик снова будет равен 1.
Я в упор не понимаю, как оно у тебя работать должно. Может быть мне нужно поспать.
image.png24 Кб, 326x543
154 2268333
>>68328
не ты прав, я случайно удалил else
.png5 Кб, 263x336
155 2268343
>>68333
Ну, тогда раз ты таки беспокоишься о переполнении и при этом типа про bool еще не знаешь - можешь просто int как тот же флаг использовать.
156 2268418
>>45329 (OP)

>- Visual Studio Community Edition


Достопочтимый сэр, вы ёбу дались? Вы действительно советуете для хэллоувордов устанавливать и настраивать этого стоголового монстра?
157 2268456
>>45329 (OP)
Прохожу вводный курсик на степике так сказатьб. Кто-то может пояснить, что в данном случае не так?
У меня всё работает, а на сайте не проходит. я бы и там в комменты отписал, но автор курсика под этим заданием людям лишь год назад отвечал
Ну и код на пастебин: https://pastebin.com/rccCL2ER
158 2268469
>>68456

>Ну и код на пастебин: https://pastebin.com/rccCL2ER


Я правда туда забыл main и includы добавить, но тут я думаю и так понятно какие инклюды добавить надо, чтобы работало.
159 2268488
>>68295
а я был за тебя в этой дискуссии. хотя и не понимаю/понимал зачем gc.
160 2268491
зацените вычисление угла между векторами
https://pastebin.com/uuvVjBqA
я тоже хочу внимания
161 2268492
>>68491
точность 1*10^-3. градусы в 0...1
code.png174 Кб, 1392x1514
162 2268504
Такой вопрос. Вот есть связной список типа пикрелейтед. Вот если я захочу его очистить мне нужно пройтись и вычистить каждую ноду, или достаточно только сам список в free кинуть?
163 2268510
>>68504
достаточно. но ты распиши, почему ты решил что нет.
164 2268512
>>68510
Да я ноль в сишке. Ну я думал что так-как ноды не хранятся непосредственно в стракте списка то и free не может знать сколько и где памяти освобождать. Ну кроме как рекурсивно пройтись по всем поинтерам.
Алсо, не подскажите с какими флагами надо запускать gcc чтобы он хоть как-то ексепшены показывал. А то сейчас он молча все компилирует, и так же молча при запуске вылетает.
165 2268514
>>68512
1. free знает размер, потому что он записан по тому же указателю, но до.
2. держи мой скрипт (уже устарел наверно) https://pastebin.com/JSgeTbq7
166 2268516
>>68512
[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
167 2268517
>>68516

>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

168 2268519
>>68517
$ sh ~/zprof/dev/pro/utils/ccflags/ccflags.sh --get-ldflags --with-debug gcc
-fsanitize=address
169 2268520
но это не факт. как что в нашем мире линкуется, тем более, в разных ос - это одному богу известно.
170 2268522
>>68519
Да, из-за фсанитайзов крашится. Наверное не поддерживает форточки.
Ну я

>-std=gnu2x -Wpedantic -w -Wfatal-errors -g -Werror -Wduplicated-cond -Wshift-negative-value


вписал, вроде начало ругаться когда пытаюсь стековые поинтеры освобождать.
171 2268523
>>68522
наверно - не проверял. раньше и линковать не надо было. такая, ещё экспериментальная штука, чтоли. но советую.

ещё новый-модный https://github.com/IntelLabs/control-flag можешь прогнать. он по базе проектов определяет ошибку-около (на самом деле ложных я ещё не видел)
172 2268606
>>68418

>и настраивать


Чо там настраивать то? Установил и хэлловордишь как не в себя.
173 2268750
>>68606
Почему хэллоуворлдишь? Я вот просто установил и просто открыл жоповывернутую хуйню, и она просто работает. Никаких настроек.

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

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

Как происходит разработка таких больших проектов?
177 2269583
>>69516

> Можешь объяснить, что в моём не так было


Могу.
Строчка

> return a.valid ? a : b;


Ты проверяешь что а - валидно и возвращаешь в этом случае a.
А задача - вернуть минимальное в случае если оба валидны.
178 2269586
>>69519
бамп

как быстро вносить исправления и проверять без перекомпиляции?
179 2269589
>>69583
Господи, я уже в глаза долблюсь. Спать пора
Эта строчка

> return a.value > b.value ? a : b;


Больше на меньше поменяй
180 2269596
>>69516
А вообще. Потому и придумали TDD. Пиши для себя тестовый код в котором у тебя будет проверка ожидаемого результата и реального.
В си есть такая штука как assert.h используешь assert() сравниваешь там ожидаемый результат и реальный, выводишь в stderr значения аргументов и сразу видишь где и с какими данными у тебя проблемы. Потом можешь загнать эти данные и в дебагере по шагам пройтись, если сразу не заметишь ошибку.
Как-то так. Да.
181 2269626
>>69589
>>69583
Бля, ахахах. Ебать я долбоёб, там же меньшее нужно было возвращать, а не большее. Ахахах. Сука. Опять больше/меньше неправильно стоит, я так же ещё в 2х заданиях тупил, пока не сообразил. Ахахахах.
>>69596
Понял, посмотрю.
182 2270125
execlp("ls", "-l", "-a", (char *) NULL);

Почему первый параметр ("-l"), не передается?
Выполняется "ls -a"
183 2270140
>>70125
Передаётся. Он становится arg0. Почитай, как конвенциально используется arg0 в контексте вызова программ. Пиши
execlp(" ls", "ls", "-l", "-a", (char *) NULL);
184 2270141
>>70140
пробел случайно поставился
dope3iatlut41.png469 Кб, 960x717
185 2270429
Подскажите как в Си сделать данные доступными для записи \ чтения двумя параллельными процессами?

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

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

Мне поможет двусвязный список или что-нибудь ещё?
186 2270523
>>70429
процессы - это только через файлы (в плане интерфейса). https://man7.org/linux/man-pages/man7/shm_overview.7.html
(ни разу не пользовался - может напиздел)

треды можно юзать?
187 2271145
>>70523

>треды можно юзать?


Я не знаю, это закрытая железка (под капотом какая-нибудь RTOS) и закрытое ПО.
Позволено создавать параллельные процессы \ задачи самого примитивного вида.
188 2271162
>>71145
не может быть что там нет posix threads
Снимок экрана от 2022-01-20 10-58-32.png491 Кб, 628x887
189 2271260
>>57900
Выкатываюсь из Windows с этой.
190 2271347
>>71260

> камран амини


это кто? звучит как чмо из индии.
191 2271351
>>71260
Если на книге есть ебло автора - то эта книга шлак галимый в 90%
192 2271356
>>71351
У Пакта часто такой дизайн обложек.
{EAB07ECC-23B8-4CE3-8E03-D2E59BB518D2}.png966 Кб, 1191x1684
193 2271375
>>71356
Двачую
194 2271398
>>71260

> ООП


В помойку, индус не знает куда еще свое ооп засунуть
195 2271784
>>71398
Нармальна! ООП там для понту больше. Чисто показать как можно наследелование, инкапсуляцию реализовать. И его подход с вынесением в хилеры минимально необходимого интерфейса мне нравится. А так там в основном про многопроцессность/многопоточность в никсах.
196 2271867
Подмогните, пожалуйста.

Почему эта скотина ругается на закомментированный кусок кода? В симуляторе код нормально исполняется. В железе - вот такая фигня.
197 2272036
>>71867
С недосыпа проебался в указателе на следующий узел.

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

Всем спасибо. Ложная тревога.
198 2272044
>>72036

>продал


продрал*
slow_fix
199 2273186
>>62937
Так сдесь де блок цикла не правильный, нужно или else if или в {} запихнуть.
200 2273209
Привет! в общем тут такой вопрос, я редактирую в самой программе строку и хочу сохранить её в файл, то есть если я сам её редактирую, то /0 по дефолту не будет добавлен, да? так вот, для того, чтобы правилньо сохранить буффер в файл, мне надо добавлять самому 0 символ, или нет? просто насколько я помню EOF не 0, а вообще отрицательное число, поэтому я вообще не знаю как тут быть, нужен совет
201 2273252
>>68456
Что за курс? Скинь ссылку
202 2273483
>>71356
Так пакт это и есть шлак, там издаться может почти кто угодно, надо очень тщательно фильтровать. Это не орейли тебе.
203 2273507
>>73209
Ты путаешь конец строки с концом файла
204 2274038
Плохая ли практика писать сразу в cpp файликах и не использовать хедеры?
205 2274058
>>73209
\0 это признак конца сишной строки в памяти(крайне хреновый кстати, из-за которого нельзя \0 использовать в самой строке). В текстовом файле конец строки это \n или \r\n в зависимости от ОС. По крайней мере так разруливают все основные популярные апи дргугих языков, при работе с файлами. Допустим в шарпе, если ты будешь использовать File.ReadLinse("path") - то разделителем этих строк - будет \n или \n\r в зависимости от ОС, а при записи с помощью File.AppendAllLines ("path",strings[]) - в конце каждой строки - добавятся эти символы.
EOF - в сях/плюсах - это просто флаг того что файл/поток закончился и никуда его лепить не нужно. Да, во времена доса - там таки был такой символ, но использовалось это как костыль для своих досовских нужд.
Чтобы сохранить строку в файл ты должен, внезапно, просто записать все символы в файл, предварительно разрулив кодировку.
206 2274249
>>73209
Открой одинаковые файл и буфер в хекс-редакторе/отладочном вьювере и посмотри как оно устроено.
207 2274307
>>74058

>крайне хреновый кстати, из-за которого нельзя \0 использовать в самой строке


Зачем тебе его использовать в строке?
208 2274308
>>74038
В больших проектах плохая, в ~1к строчниках имеет смысл.
209 2274311
>>69586
Разбить на модули и тестировать их отдельно, иначе только мощное железо.
210 2274314
>>74307
Ну, банально потому что символы в строке могут быть не однобайтовой кодировки?
211 2274326
>>74314
Зачем тебе в ANSI строке терминальные нули? Для твоей задачи существуют широкие строки.
https://www.opennet.ru/man.shtml?topic=wchar.h
212 2274336
Как узнать чем является нестандартный тип, структурой или псевдонимом?
213 2274341
>>74336
Если объявлен, как struct NAME { ... };, то это структура, а если объявлен, как typedef ... NAME;, то это псевдоним.
214 2274343
>>74336
В Emacs M-x xref-find-definitions
215 2274359
как дела?
216 2274508
>>74341
Как найти где оно там объявлено
1505714785414.png59 Кб, 531x300
217 2274723
вот почему у вас горит?
218 2274885
>>74723
Лол, раст особо не помогает. Конечно он позволяет избежать глупых ошибок при работе с памятью, которые можно допустить по невнимательности, но всего того, что написано в твоем посте он не решает.
Раст - продукт от корпораций для корпораций, чтобы ускорить время и понизить стоимость разработки продукта, заменив высокооплачиваемых спецов на пару индусов. В общем, системное программирование может ожидать такая же участь как и веб с энтерпрайзом. У раста будет своя определенная ниша, но как УБИЙЦА няшной и плюсов он точно не годится.
G2BQZ6Z2.png92 Кб, 500x499
219 2274930
>>74885

>этот дэмэджконтрол


>от жирной типовой пасты про вирджина и чэда
220 2274982
>>74930

>этот дэмэджконтрол


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

>от жирной типовой пасты про вирджина и чэда


А когда было иначе? Традиции нужно соблюдать.
221 2274992
>>74982
у него же есть эдишны
отсутствие стандарта позволяет вносить новые фичи
222 2274997
>>74992

>отсутствие стандарта позволяет вносить новые фичи


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

>новые фичи


Которые ограничены llvm, который развивается для плюсов, лол. Поэтому у раста по определению не может быть больще функционала чем у плюсов.
223 2275108
>>74997
кстати, лямбды будут в 23 стандарте
224 2275119
>>75108
Разве это уже решено? Все обсуждения в комитете уже прошли?
225 2275122
>>75108
Что что? В C будут лямбды?
Если мне нужен C++, я знаю где его взять, как говорится.

(эта цитата про ADA была оригинальная)
226 2275126
>>74997

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


Ну тут уже определение "системный" у каждого своё будет.

>Которые ограничены llvm, который развивается для плюсов, лол.


Ты ещё учишься, да? Или это троллинг тупостью?
227 2275127
>>74997

>Зачем там нужны лямбды и прочая ересь, которая стоит дополнительных ресурсов процессора?


https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
Сейчас разработчики пинуса и gcc жидко пёрнули со своими вложенными функциями, ренджами в свитчах и ещё полусотней нинужных фич. Ведь можно было всё захуярить на ANSI C и не прибивать яйца к жопаельному компилятору...
228 2275130
>>75127
Хотя судя по гуглу уже почти пару лет можно ядро пинуса вполне билдится шлангом, так что можно считать их пердёж высохшим, кек.
229 2275131
>>75126

>Ты ещё учишься, да? Или это троллинг тупостью?


А что не так, лол? Rust - фронтэнд для llvm, который в свою очередь изначально писался и пишется под плюсы. Специально по раст его никто изменять пока что не будет.
230 2275132
>>75127

>Ведь можно было всё захуярить на ANSI C и не прибивать яйца к жопаельному компилятору...


ДА.
231 2275134
>>75119
Ещё нет.

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

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
Мне больше вот это понравилось. Кто-то посмотрел как в Go выживают походу.
232 2275137
>>75131

>Rust - фронтэнд для llvm


Реально учишься походу.

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


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

>Специально по раст его никто изменять пока что не будет.


А ты хотел бы лайфтаймы в IR добавить?
233 2275140
>>75137
Пидорас ты адекватный.
234 2275149
>>75140
Т пропустил, о расте же говорим.
Так что пиздуй в спать, скотина, завтра в школу.
235 2275166
>>75149

>завтра в школу.


Ох, если бы это было правдой, то я бы обрадовался.
Увы, но я уже зрелый мужик, который должен сам себя содержать и обслуживать. Как же я заебался...
image.png719 Кб, 854x956
236 2275216
Привет.
Сижу сейчас компилю ядро Linux. Просто так. 20 лет этого не делал, решил вспомнить молодость. Прифигел от размера исходников.
237 2275236
>>75216
Дед, чем это ты занимаешься?
Мам, смотри Дед с ума сошел!
238 2275247
>>75216
Привет Денис, как дела?
239 2275266
>>74343
а что за теги нужны?
240 2275267
>>74982

>даже стандартов нет


мне вот это главное не понятно - почему они всё время меняют поведение? делали бы уже, за выдержкой лет, раст 2, 3, 4 - как культурные люди делают.
241 2275270
>>75267
или, вероятно, это попеннет в голову так проник, и там нет нарушений, а только нарост функционала. правда не понимаю раст, даже стыдно иногда становится, что все говорят про него, а я даже синтакстис не знаю.
242 2275273
>>75216
отключай сходу в конфиге все драйвера кроме тех что тебу нужно - скорость взлетит в небеса компиляции.
243 2275381
>>75266
Exuberant ctags. Хотя с clangd тоже должно работать.
244 2275382
>>75137

>>Rust - фронтэнд для llvm


>Реально учишься походу.


Пажжи, так для ржавого есть другие бэкэнды, кроме llvm?
мимо растохейтер
245 2275397
>>75382
Ещё один вкатыш не отличает языка от имплементации.
Это оксюморон уровня "С — фронтэнд для LLVM".
Фронтенд для LLVM — это конкретно rustc, как и clang.

>Пажжи, так для ржавого есть другие бэкэнды, кроме llvm?


Есть gccrs, mrustc. Хотя сути не меняет, даже не будь их.
246 2275399
>>75166
Перекатывайся в раст и начинай траповать, очевидно же что делать.
247 2275433
>>75399
а можно ли натягивать растотрапиков будучи СиГосподином?
248 2275532
>>75433
Можешь конечно.
Правда проблему самосодержания ты только ухудшишь для себя...
249 2275544
>>75433

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


они только в интернете есть, в реальности это джава-квазимоды
1643121333712.jpg21 Кб, 300x440
251 2276597
Хорошему проверенному человеку нужна помощь в выполнении заданий по С#, а именно по Windows Presentation Foundation.

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

Заранее спасибо
252 2276719
чё там, униженные подскочили >>76597 ? отпишитесь зачем
253 2276802
>>76719
Жду, пишите.
image.png36 Кб, 393x620
254 2277020
Задание K&R 1.10
Написать программу для копирования входного потока в выходной с заменой знака табуляции на \t, символа возратат строки (бекспейс) на \b , а обратных косых черт на \\
255 2277127
Сап аноны. Есть чисто теоретический вопрос почему если в конце первой строки \n то вывод нормальный те 1 строка за ней 2-я. Но если поставить \t или любой другой управляющий символ то первой выведет jjjjj? Прога вроде бы не должна паралельно исполнятся .

#include <stdio.h>

main () {

printf("Hello scum\t");
system("echo jjjj");
//return 0;
}
256 2277140
>>77127
Подозреваю, что как-то связано с буферизацией, ньюлайн сливает буфер.
мимо
257 2277209
Мужики, libc или glibc? Или вообще musl
sage 258 2277276
>>76597
Нахуй пошёл.
259 2277277
>>77209
Так под линупсом libc == glibc.
Newlib нахой.
260 2277285
>>77277
Некоторые даже под линукслм libc/musl используют для своих програм. Вот и хочу понять для чего.
261 2277314
>>77285

>libc


Нет, ты не понял. libc - это название для стандартной библиотеки C. glibc, musl и newlib - это её конкретные реализации.
262 2277319
>>77314
Ну вот на BSD системах используется стандартная реализация, так и называется libc. В линуксе используется уже другая реализация стандартной библиотеки - glibc. Я вот и хочу понять в чем между ними разница.
263 2277337
>>77127
man system
он форкает процесс и ждёт, пока тот исполнится.
в итоге он сначала сбрасывает буфер echo, а потом main
264 2277383
>>77319

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


https://ru.wikipedia.org/wiki/Стандартная_библиотека_языка_Си

>Стандартной библиотекой языка Си (также известная как libc, crt) называется часть стандарта ANSI C


Если всё ещё не понял — под libc понимают любую реализацию, соответствующую стандарту. А в BSD просто не стали запариваться с названием для своей.
265 2277402
>>77383

>А в BSD просто не стали запариваться с названием для своей.


Вот, это и запутало, теперь понятно.
266 2277714
Анончик, у тебя не бывало такого чувства, что после того, как напишешь что-то сложное и стоящее лично для себя, не сможешь после этого проекта ничего выдавить из себя? ну типа вот бывает кураж такой, начинаешь писать, получается, идеи сами лезут в голову, но после него(куража) не сможешь вообще ничего выдавить, даже банального чего-то. Если у тебя такое было, можешь поделиться че делать в таких ситуациях, или это само с временем пройдёт и не надо загоняться?
267 2277741
>>77714
Отвлекись и отдохни, сменив род деятельности. Сходи на рыбалку, в театр, и т.д. После "выжималки" обязательно нужно отдыхать.
268 2277961
>>77337
>>77140
Добра Аноны.
269 2278124
Извечный вопрос gcc vs clang.
Я как начинающий байтоеб хочу знать во что более перспективно вкатываться. Или это не имеет значения?
270 2278166
>>78124

>Или это не имеет значения?


Аюсолютно никакого.
271 2279213
>>78124
В стандарт С11 через KnR
272 2279241
Как пишут обёртки над разными либами? Допустим есть веб-сервер на C++, как можно использовать его из кода на python или другом языке?
273 2279248
>>79241
У языка есть интерфейсы для этого, с которыми он знает как работать. Тебе надо их реализовать и заработает, очевидно же.
274 2279258
>>79248

>У языка есть интерфейсы для этого, с которыми он знает как работать.


Очень абстрактно. На практике как это выглядит? Есть https://github.com/uNetworking/uWebSockets веб-сервер с феноменальными показателями производительности (обходит Nginx как стоячего). Каким то образом его используют https://github.com/uNetworking/uWebSockets.js на Node.js. Как используют не знаю, в доке не описано, а в коде я не смог разобраться. Автор не хочет портировать на другие языки. Вот мне стало интересно, можно ли использовать этот сервер например из PHP.
275 2279288
>>79258

>PHP


Как там в нулевых?
276 2279292
>>79288

>Си


Как там в 60-х?
277 2279331
>>79292
Заебись, через 63 года новый стандарт выходит, с лямбдами и STM
278 2279394
>>79241

>как можно использовать его из кода на python или другом языке?


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

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

>>79258

>Очень абстрактно.


Для нативных языков — это все 100% работы, которую для такого надо сделать, ничего абстрактного.
280x1782.jpeg34 Кб, 560x356
279 2279397
>>79288
Шутки шутками а пол хуя в желудке, но без всякой иронии это всё ещё один из самых используемых языков на бэке.
280 2279549
>>79397
Миллион мух не может ошибаться.
281 2279634
>>79549
Это относится и к Си. Не даром современные программисты стараются вместо C/C++ использовать другие компилируемые языки. Вот ты знаешь C/C++, а можешь написать такой же https://github.com/uNetworking сетевой стек? Если нет, то выброси свои "знания", они бесполезны. Если ты со своим Си не можешь написать ничего, то не гони на PHP и другие языки. Язык нужен чтобы на нем писать софт, решать задачи. Если задачи не решаются, то язык такой никому не нужен. На Си что то писать нормальное могут единицы. Просто потому, что нужны очень глубокие знания платформы и сопутствующего. Если у тебя таких нет, то твои понты не стоят ни гроша.
iwl4Yz7Fok.jpg25 Кб, 500x314
282 2279642
Zdraste, начал учить программирование.
Полузнакомый-полудруг полупрогер-полупокер посоветовал начать изучение с языка си, сказал что это наиболее оптимальный язык для понимания сути программирования. Посоветовал книги: Дейтел, Пратта, Керниган Ричи
Ну вот я начал с самой тонкой и вскоре понял что чот трудно. Ну открыл книги потолще и вроде стало полегче постепенно эти циклы там переменные форматирование и т.п. мелочи. И дохожу я значится то массивов и вот уже прошло времени где-то с месяц, а я до сих пор туплю на массивах на всех этих элементарных вещах вроде заданий с учебников даже на одномерных массивах. Причем когда подгляжу решение т.е. код. И вчитаюсь в него, то все становится вроде понятным, а как только снова надо решить задачу чуть чуть отличающуюся вернее с дополнительным действием, то сразу возникают трудности с реализацией этой задачи. Я что тупой что ль и программирование не мое? А дальше ведь указатели и ещё какие-то функции из стандартных библиотек на полкниги всякие проверки условий гетчары путчары эндоффайлы строки структуры жонглирование и фристайлинг ими....
16414546622790.jpg10 Кб, 512x382
283 2279659
>>79634
Как же годно у пхп-обдристыша пичот, аж пустился в какую-то софистику.
284 2279664
>>79642
Сейчас бы слушать кого попало. Если ты на дваче или у знакомого программиста спрашиваешь "какую книгу мне прочитать?" Приготовься, что тебе посоветуют лютую хуйню. Проблема не в самом программировании, а в том, как вы обучаетесь.

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

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

Нагрузку нужно повышать постепенно. И закреплять всё на практике. Самую базу выучил - пишешь код. Ещё чуть-чуть подучил - ещё написал кода. На гитхабе можно чужой проект найти и поковырять его внутренности. Без реальной работы с кодом ты просто не поймёшь теорию.
285 2279757
>>79634

>Вот ты знаешь C/C++, а можешь написать такой же https://github.com/uNetworking сетевой стек?


Любой каприз за твои деньги.

> Если ты со своим Си не можешь написать ничего


Не проецируй.
286 2279792
>>79664

>На гитхабе можно чужой проект найти и поковырять его внутренности.


Охуенно пошутил, учитывая уровень проф проектов и уровень вкатывальщика.
287 2279949
>>79659

>пук



>>79757

>пук



Ну и где ваш код? Все что можете это щеки надувать.
288 2279956
>>79642

>хнык-хнык


Щас бы слушать жалобы, что не получается стать программистом за 21 день. За такой срок ты даже верстке нормально не научишься. Скорее всего за этот месяц ты 99% времени читал и только 1% писал код. Вот и делай выводы. У тебя всего несколько часов практики, а чтобы стать профи нужны тысячи часов.
289 2280210
>>77402
а libc на bsd только для неё самой? просто glibc не только под линукс, а линукс не цельная система, так что это оправдывает _своё_ название.
290 2280225
>>79956
вово. я вон например читаю-вспоминаю геометрию, и не ленюсь все задания решать и чертить. иначе нихера не поймёшь.
291 2280362
>>80210
POSIX даже в Африке POSIX.
292 2280372
>>80362
posix это надмножество стандарта си.
293 2280435
>>79949

> аппеляция к авторитету на анонимной имиджборде


похапе-макака продолжает бурлестать
294 2280436
>>80210

>а libc на bsd только для неё самой?


Конечно, любая libc прибита гвоздями к ядру ОС, для которой она написана.
295 2280482
Сап,

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

int8 foo[];

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

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

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

int32 foo;

foo = 0x11223344;
func(foo);

foo = 0x55667788;
func(foo);

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

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

Но конечно, рука так и хочет написать:
foo = {11, 22, 33, 44};
295 2280482
Сап,

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

int8 foo[];

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

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

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

int32 foo;

foo = 0x11223344;
func(foo);

foo = 0x55667788;
func(foo);

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

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

Но конечно, рука так и хочет написать:
foo = {11, 22, 33, 44};
296 2280483
>>80482

>int8 foo[4];



фикс
297 2280499
>>80482

>foo = {11, 22, 33, 44};



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

И зачем ты в функцию передаешь указатель на указатель?
298 2280518
>>80499

>И зачем ты в функцию передаешь указатель на указатель?


Да по ошибке, просто не стал второй раз делать фикс.

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

А ты уверен, что так можно на 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} };
299 2280525
>>80518

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


>


>typedef struct {


>UINT8 baz[3];


>} bar;


>



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

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

#pragma pack(1)
300 2280572
>>80518

> А ты уверен, что так можно на C?


Начиная с C99 можно: https://en.cppreference.com/w/c/language/array_initialization
301 2280579
>>80435
Школота-хеловорлдщик
302 2280684
>>79642
Обычно самоучки чем-то стоящим становятся месяцев через 6. Пригодными для решения реальных задач становятся через год. И лишь через два года они могут создавать большие и надёжные проекты. Разумеется, это усредненные числа, у каждого индивидуально может наступить каждый из моментов раньше или позже в зависимости от выбранных методов обучения, количества свободного времени и сил, способностей и связей с другими.
photo2022-01-2912-38-54.jpg60 Кб, 960x540
303 2280778
>>80579
Расмус-то? Ясен пень.
304 2280806
>>77714
Обыкновенная физиология. За сильное возбуждение нервной системы неизбежно расплачиваешься утомлением. Если очень интересно, можешь почитать "Гениальность и помешательство" Ломброзо, там этот вопрос часто поднимается.
305 2281104
>>45329 (OP)
Какие есть альтернативы protobuf, пригодные для описания различных закодированных или сериализованных структур данных? Чтобы работать с бинарными протоколами различными. Думаю, реализовать для себя нечто подобное, или изучить готовое, если есть.
306 2281342
Аноны из ембеддеда, системщины и других низкоуровневых отраслей.
У вас на работе тоже имеются QA, аналитики, ПМы, менеджеры и прочие социобляди в огромном количестве?
307 2281640
>>81104
Есть flatbuffers, есть bencode, но проще всего сделать что-то свое. Есть ровно три варианта: срать текстом, срать сырыми структурами (тебе будут говорить, что это плохо, но ты не верь) или срать каким-то подобием TLV (отправляешь tag/type, опционально length и потом value).

Алсо, чем тебе протобуферы не угодили кроме отсутствия официальной поддержки сишки?
308 2282686
>>81342
у меня дома только мама и тётя.
309 2282757
>>81640

>чем не угодил


Вот есть уже готовый протокол древний какой-нибудь, описанный в толстом PDF или xls файле. Там по сути структуры, по-разному закодированные строки (то с размером, то null-terminated), числа, enum, массивы и структуры в структурах.
Protobuf, как я понял, для такого не годится, так как он для новых протоколов заточен, и там не настолько всё гибко, чтобы поддерживать легаси. Или я ошибаюсь? Возможно, что-то такое реализовано где-то в Wireshark, там есть поддержка огромного числа протоколов, всё разбирается по полям.

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

По поводу сырых структур, там ещё бывает нужно с endianness разобраться, если машины разные.
310 2282952
>>47328
В какой момент возникло такое понимание? В чём сложности?
311 2284546
>>45329 (OP)
Хочу познать как пишут клиент-серверные приложения в телекоме. Что и где читать? Какой язык, Си или Эрланг, или оба? Где вообще лучше такие вопросы задавать?
312 2284571
>>84546
Прям телеком-телеком уровня коммутаторов? А так плюсы и ява.
image12 Кб, 470x151
313 2284600
Бамп.
code.png115 Кб, 539x1284
314 2284641

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


>нравится ограничивать длинну строки до 80 символов


>не нравится добавлять много белого пространства


>не нравится 2 пробела для таба, слишком мало


>не нравится 4 пробела для таба, слишком много


>3 пробела это ебланизм


че делать, выглядит уродливо. как как победить аутизм?
20220202163555963315291.png12 Кб, 227x56
315 2284664
>>84641
4 пробела выглядит лучше, чем 3 или 2. Потому что когда пишешь "if (", то следующая строка начинается там же, где и условие в if, что выглядит ровно и красиво. Используй 4 пробела.
316 2284706
>>84664
А мне вот не нравится, когда следующая строка начинается там же, где и условие в if.
317 2284726
>>84641
Царь, ты?
318 2284729
>>80778

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


Всем адекватным людям тоже на это похуй.

База, кароче говоря. У руби например долгое время вообще не было виртуальной машины и язык работал проходясь по сгенерированным парсером АСТшкам.
319 2284738
>>45329 (OP)
Можно как то зарабатывать не устраиваясь никуда и не влезая во фриланс? Просто так писать код не интересно, хочется чтобы это приносило хоть какие то деньги. Можно написать приложение для андроида, но это долгий путь. Нужно сделать хороший интерфейс, нужно продвижение. Писать какие нибудь парсеры? Это нужно искать заказы. Есть способы заработать написав приложение, которое продавать на маркетплейсе или же написав приложение, которое будет как то деньги добывать?
320 2284842
>>84664

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


Самый тупой аргумент. Почему именно для if? Существуют же еще for и while, почему тогда не 5 или 7 пробелов?
321 2284966
>>84738

>можно ли зарабатывать не платя налоги

322 2284979
>>84738
Создай подобную хуйню, если выстрелит, то можешь больше не работать и сычевать ближайшие лет 5 минимум. https://ru.wikipedia.org/wiki/Yandere_Simulator
323 2285002
>>84842
Потому что if встречается в C-коде значительно чаще циклов (из-за обработки ошибок). Ну и это, аргумент не был на 100% серьезным, если ты не понял.
324 2285335
Как же меня печёт. Хочу похвастаться своим git, но не хочу деанониться на двачах. Придётся хуячить статью на Хабре, плюсы в карму зарабатывать.
325 2285355
>>85335

>Хочу похвастаться своим git


100 форков крупных проектов без изменений?

>Придётся хуячить статью на Хабре, плюсы в карму зарабатывать.


Слишком толсто.
326 2285356
А если в сторонней либе есть enum{}, то я никак не могу, не трогая код из нее, добавить в него еще значений?
327 2285358
>>85356
Никак, к тому же зачем? Если в сторонней библиотеке есть enum, значит его значения используются внутри нее, зачем тебе изменять его возможные значения, если они не будут использоваться внутри нее?
328 2285359
>>85358
Ну, например, эта либа задает базовый функционал, например, в ней есть базовый набор кубиков для конструктора. Но используя ее, нужно расширить этот функционал, а тип этих кубиков задается в enum, а не строковому названию. Поэтому для расширения требуется как-то впихнуть еще значения в enum, но не трогая код самой либы базовой. Вроде в SDL что-то такое было для добавления своих event и они там тоже в своем enum были, но точно не помню
329 2285365
>>85359
В современном мире это делается за одни пул-реквест дорогому Виджаю.
330 2285367
>>85365
Так принцип-то не тот: базовая либа она и предназначена для только базового функционала, а пользователи расширяют ее под свои задачи.
А не знаете в плюсах такое тоже отсутствует?
331 2285369
>>85359
Мне в какую-либо функцию поступает enum, принимающий значения EVENT_HUY, EVENT_PIZDA, EVENT_JOPA, в моей (внутренней) функции, реализуется функционал для каждого значения, скажем через таблицу строк, функций и т. д.. Чтобы какой-то анон с двача, изменил поведение моей функции, ему надо переписать ее, иначе я бы использовал define для принимаемых констант, если бы добавил (хотел добавить) возможность расширение функционала без вмешательства в исходники. Ты же хочешь просто добавить еще какие-то значения, которые моя функция не ожидает, если я использую таблицу (массив) строк, для каких-либо строковых представлений значений (для отладки, вывода и т. д.), то твое расширение функционала - это потенциальная запись/чтение, в какую-то память, что приведет к ошибкам, уязвимостям в конечном (твоем) продукте. Вывод: переписывай исходники или найди документированный способ добавления нового функционала в нужную тебе библиотеку без изменения исходников.
ТУПОЕ РАСШИРЕНИЕ ПЕРЕЧИСЛЕНИЯ НЕ ВЫХОД!
332 2285378
>>85367
Нету. На это завязана проверка switch, а еще некоторые компиляторы сами выбирает ширину типа для enum.
333 2285382
>>85369
>>85378
Спасибо, значит только через hashmap такое реализуется
334 2285419
>>45552

>нужно всего лишь... хоть раз реализовать ADT на Си


Подскажи как это делать, в каких книгах или мануалах почитать?
335 2285504
>>84729
Блядь, похаперебёнок, почему ты всё ещё копротивляешься? У тебя был шанс тихо уйти из треда размазывать своё говно по ляшкам, а теперь тебе придётся ещё рот от мочи полоскать.
336 2285845
>>85504
Пёс, голос!
337 2285855
>>85504
Чем ты хвалишься, дура? Язык Си не ты создала. Своим есть чем похвалиться? Код хоть есть какой? Какой же ты ребенок. Только дети хвалятся не своим.
338 2285883
>>85855
ГОВОРИШЬ ЧТО ЯЗЫК ГОВНО
@
СДЕЛАЙ ЛУЧШЕ!

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

ГОВОРИШЬ ЧТО ЯЙЦА ПРОТУХЛИ
@
САМ СНЕСИ СВЕЖИЕ!
339 2285902
>>84729
Очередное подтверждение того что скриптоложество, и пхп в частности, разжижает мозг..
340 2285917
>>85504
>>85883
Тупой школьник, только дети хвалятся тем чего не добились. Например, что у них папа ко-ко-ко. Только вот они ничего не сделали для того чтобы их отец чего то достиг. Они получили отца которого получили. У кого то отец успешный, а у других алкоголик. Это не значит, что ребенок успешного отца приложил усилия для чего то. Также как хвалиться национальностью или местом рождения. Тупица, ты не заслужил это, не добился, не выбирал, ты просто получил это как есть.

Ты такой же недоразвитый дегенерат. Восхваляешь себя из за Си, который не ты разработал. Ты просто им пользуешься (очень сомневаюсь, что ты написал что то на нем). Ты мог бы похвалиться написанным кодом, но у тебя его нет. Так что закрой рот, щенок.
341 2285924
>>85504
>>85883
Ты тупее осла. PHP это все лишь инструмент. Почему меня должны волновать твои высеры в сторону PHP? Да, я им пользуюсь. Как и многими другими языками. И что с того? Почему мне должны быть стыдно или что ты там имеешь в виду? Дегрод. Это тебе нужно стыдиться, что ты такое чучело недоразвитое. Отброс.
pepe-smoke.png183 Кб, 630x630
342 2285932
>>85917
>>85924
Иди отсюда пхпвоен.
8926d22b02f9c3b2303ec19157d84c29.jpg53 Кб, 600x600
343 2285935
>>85917
>>85924
Кокой сердитый пхпешник. Наверно сам столько сделал для величия языка, что не может сидеть сложа руки, когда на анонимном форуме о нём неодобрительно высказываются.
Ещё и своего батю-алкоголика приплёл зачем-то.
344 2285936
>>85355

>100 форков крупных проектов без изменений?


Гы. Ни одного форка. Три проекта на сях. Один из них учебное говно для студентов, который неплохо было бы прибить. Второй - консольная игрушка десятилетней давности. А вот третий... тоже на сях и думаю что вскоре он будет популярен. Не потому что проект крутой, а потому что я "запрыгнул на спину" крупной компании, выводящей новый продкукт. Короче говоря - я подсуетился и сделал к этому продукту консольную утилиту.
345 2285941
>>85932

>Иди отсюда


Червя-зумера забыл спросить.

>>85935

>о нём неодобрительно высказываются


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

>своего батю-алкоголика приплёл


Мой отец не пьёт, дегрод ты пустоголовый. Как будто ты не видел, что я не своем отце писал. Хотя, ты же червь безмозглый, поэтому не удивительно.
346 2285945
не рвемся сохраняем спокойствие
347 2285946
>>85941

>Червя-зумера забыл спросить.


>Переобуваешься, червь.


>Тупая дура, школьница.


>дегрод ты пустоголовый


>ты же червь безмозглый


Пхпдев пытается в общение.
348 2285947
>>85335

>Хочу похвастаться своим git, но не хочу деанониться на двачах.


Боишься, что в школе затроллят?
349 2285949
>>85945
Червь делает вид, что имеет поддержку. Лол

>>85946
Типа ты общаться можешь. Ты червь, а с червем общение короткое.
350 2285951
>>85949

>Червь


>Лол


>Типа


>червь


>червем

351 2285957
>>85951
Я ЧЕРВЬ-ПХПШНИК ХУЖЕ МЕНЯ УЖЕ НЕТ
352 2285962
>>85947

> в школе


Как что-то плохое. Ну ваще-то первую зряплату за программирования я получил в 1993 году. Внезапно это была программа на Си для отдела кадров. Никаких 1С тогда и в помине не было.
353 2286113
>>85917
Друг, я ничем не хвалился, я просто на пальцах разложил, почему твой любимый язык программирования - говно. По какой причине ты продолжаешь копротивляться, мне неведомо.
354 2286180
>>86113

>твой любимый язык программирования


К твоему сведению, мой любимый язык программирования это Лисп. Если порассуждать, то окажется, что Си по сравнению с Лиспом это как Запорожец по сравнению с Ламборджини. Поэтому не стоит плеваться желчью, сам себя обольешь.
355 2286351
>>86180

>Ламборджини


Ну да, по затратам цп и памяти.
꧁꧂
356 2286359
>>85962
Какой лвл?
Пенсия сколько?
357 2286453
>>86180
Так а чо ж ты за пыху тогда уже полтреда впрягаешься? Не пора ли притушить свою анальную боль и пойти дописывать свой кластер метапарадигм на твоём действительно любимо языке?
358 2286510
>>86453
Любимый лисп — это как любимый хаскелль, он в сердечке, а не в проктах.
359 2286685
>>86351
Есть компилируемые лиспы. Есть без GC. Язык это прежде всего мощь абстракций, а не оценка затрат. Ну сэкономишь ты жалкие 500 Мб оперативки, ну сэкономишь немного процессора. Это железо можно купить за 300-500 рублей в месяц. Зато ты потратишь в 5-10 раз больше времени на разработку. А еще 100% у тебя будет очень много багов, которые потом еще долго нужно будет фиксить. Вот поэтому Лисп это Ламбо, а Си это Запорожец. Да, Запорожец экономней, но на нем ты быстро не доедешь до цели, также и на Си ты быстро не напишешь проект.

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

https://career.habr.com/walkin

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

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

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

>>86453

>Так а чо ж ты за пыху тогда уже полтреда впрягаешься?


Во первых, где? Во вторых, а что не могу? Или ты тут за Си не впрягаешься? Ну тогда и PHP тебя не должен беспокоить.
360 2286716
>>86685
Ты долбоёб не умеющий в иронию.
Етого ты не заметил?
Обо мне

Специализация и профессиональные навыки:
Unix, Internet, C.
361 2286763
>>86716

>Етого ты не заметил?


Чего этого?

>Обо мне


?

>Unix, Internet, C.


И ??? А, ты наверное хочешь выкрутиться и сказать, что Валкин не писал ни на каком Окамле и т.п.? Загугли, инфы про него много. Здесь есть все ключевые слова, и Lisp тоже https://www.slideshare.net/j2a/ss-4625844
16218584099170.jpg119 Кб, 993x549
362 2286908
>>86685

>Во первых, где?


>>86180
>>85917
>>84729
>>80579
>>79949
>>79634
>>79397

>Во вторых, а что не могу?


Ради б-га, у нас пока свободная страна.

> Или ты тут за Си не впрягаешься?


Нет, я делаю жирнейшие набросы на похапе, а ты уже вторую неделю генерируешь своим горящим пердаком килобайты копипасты. Я так не веселился со времён форса митрополита токийского.
363 2286927
>>86359

>Какой лвл?


49

>Пенсия сколько?


Я ж программист, а не "силовик". До пенсии ещё надо дожить.
364 2287191
>>86685
Ваши лиспы тупо обосрутся на перекладывании байтиков между сетевухами 40g. Ну а если выполнятся код должен на нескольких серваках, это не 500р в месяц.
365 2287348
Есть тг канал по сишечке?
366 2287537
>>87191

>Ваши лиспы


Лиспы не наши. И Си не твой.

>>87191

>обосрутся на перекладывании байтиков между сетевухами 40g


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

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


Чиво? Как раз таки Си из коробки не годится для параллельных и распределенных вычислений.
367 2287552
>>87348

>Есть тг канал по сишечке?


Зачем?
368 2287685
>>87537

>Как раз таки Си из коробки не годится для параллельных и распределенных вычислений.


Чиво так?
Вообще-то на Си можно написать абсолюно всё. Только при этом труда придётся положить не мало.
369 2288017
>>86180

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


Сергей Кочу...ев, ты?
370 2288048
>>87537

>Чиво? Как раз таки Си из коробки не годится для параллельных и распределенных вычислений.


Тебе ли, пхп-макакену, об этом пиздеть?
Берёшь и запускаешь тыщу инстансов синглтред говна, раз макака и не могёшь в программирование — и всё равно выходит по железу в 500 раз дешевле, кекс.
371 2288049
>>86685

>Вот поэтому Лисп это Ламбо, а Си это Запорожец.


В твоей воспалённой пхп голове?

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


Ладно ещё раст, но окамл... У тебя вообще всё ок? Или ты ещё учишься?
372 2288084
Лень всем отвечать. Хотя, скорее всего это единственный школьник пишет. Отвечу только на один вброс. Окамл? Да, Окамл. Покажи сколько языков за последние 10 лет написано на Си и сравни с языками написанными на Окамле. Раз ты этого не знаешь, и вообще не понимаешь почему пишут на Окамле, почему Си плохой язык, то не вижу смысла тратить свое время чтобы все объяснять. Про параллельность и распределенность на Си это вообще смех. В Эрланге все есть из коробки. В Си же надо написать тысячи строк кода.
373 2288105
А под Android как узнать какая версия C поддерживается нынче?
374 2288118
>>88105
Как понять твой вопрос?
375 2288123
>>88118
Ну там C89/C99/C11/C17..
В вики написано, что C17 поддерживается шлангом от 7 версии, на android сейчас по дефолту все шлангом обычно, получается, что вроде все должны...
376 2288135
>>88123

>C99/C11/C17


Эти должны, но не вижу причин использовать выше 11.
c11.png36 Кб, 878x370
377 2288136
>>88135
или только по 11..

> но не вижу причин использовать выше 11


ну выше 11 только 17 пока, там просто исправления 11 стандарта
inline.png2 Кб, 371x84
378 2288292
А есть разница какая-то в этих двух вариантах, кроме что первый всегда поменяет одну функцию на другую, а второй теоретически - не всегда
379 2288303
>>88292
В первом случае, у тебя используется подстановка на этапе препроцессора, а во втором на этапе компиляции. В зависимости от компилятора\его параметров, у тебя может быть, или вызов func_1()->func_2(), или сразу подставиться func_2() вместо func_1(), но в первом гарантировано будет сразу вызвана func_2().
Насколько я помню, некоторые компиляторы могут игнорировать inline, с флагами точно.
380 2288406
>>88084

>Покажи сколько языков за последние 10 лет


Реально либо тупой либо ещё учишься. Язык написанный на языке, проиграно с подливой.

>написано на Си


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

>языками написанными на Окамле


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

>Раз ты этого не знаешь, и вообще не понимаешь почему пишут на Окамле


А что пишут-то? Полтора компилятора для бутстрапа написали за 20 лет?

>почему Си плохой язык


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

>Про параллельность и распределенность на Си это вообще смех. В Эрланге все есть из коробки.


Пхп-воен, ты же даже не понимаешь о чём вообще пишешь. Нахуя ты продолжаешь себя закапывать? Просто съеби и смой урину с ебала.
381 2288417
>>88406

> Раст — альтернатива плюсам, и то не везде.


Они же вроде наоборот как си альтернативу показывают, что вот можно отключить стандартную либу раста и пользоваться только стандартной от си для эмбэда?
мимо другой анон
382 2288422
>>88406
Школьник, на Си никто уже давно языки не пишет. Потому что дерьма наелись. Такие неучи как ты может быть. Так что не гони, что Окамле ничего не пишут. Много чего пишут. Даже веб-приложения, что для Си недостижимо. И сколько бы ты не пытался принизить PHP, от этого ты лучше не становишься. Наоборот, показываешь свою никчемность. Ты же даже такой язык не написал. Вообще сомнения в твоих способностях. Не может человек с таким мышлением быть программистом. Максимум копипастером.
ocaml.png56 Кб, 897x594
383 2288432
>>88422
Ну так по факту
384 2288435
А языки теперь если и пишут новые, то под LLVM транслятор
385 2288457
>>88417
Да такой хуйнёй в целом на любом компилируемом языке можно заниматься хоть на том же окамле, было бы желание. Другое дело, что это будет банально больно делать.

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

Из альтернатив именно си я видел только zig, но он в такой стадии развития, что даже для написания петов надо подождать ещё года полтора-два.
386 2288461
>>88432

>Ну так по факту


???

Не понял о чем ты. Насчет веба на Окамле, имел ввиду Ocsigen. Он дает фулстек тулзы для написания веб-приложений. И бекенд и фронтент можно писать на Окамле. Крутая вещь.
387 2288465
>>88422
Спок, скрипткидди, их и на окамле не пишут. Точнее на нём вообще почти нихуя не пишут.
Что рантайм окамла, что виртуалка эрланга — всё на сях. Было и будет.

Так что можешь расслабить своё зумерское очко, и идти играть в фортнайт. Написанный на плюсах.
388 2288471
>>45329 (OP)
Что там насчет языка V? Узнал о нем когда он занял первое место в одном из тестов Techempower. Он собственно и сейчас на первом месте в тестах plaintext.

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

https://vlang.io/

Судя по отзывам, автор языка или безумный и обманщик или гений. Комменты разнятся противоположно. Кто что думает?
G2BQZ6Z2.png92 Кб, 500x499
389 2288472
>>88461

>Не понял о чем ты. Насчет веба на Окамле, имел ввиду Ocsigen. Он дает фулстек тулзы для написания веб-приложений. И бекенд и фронтент можно писать на Окамле. Крутая вещь.


Чел походу думает, что ему тут доказывают что си — лучший язык для вротенда и пхп-крудов.
Вот вы издеваетесь — а ему ведь реально сложно...
390 2288484
>>88471
Это гибрид го и раста?
Снимок экрана 2022-02-06 в 13.15.11.png44 Кб, 1050x282
391 2288486
>>88471
Зумер-инноватор изобрёл RAII.
Лет через 15 мб половину из обещанного и запилит на нормальном уровне.
392 2288507
>>88484
Типа того, да. Только проще.

>>88486
Как ему удается компилировать сотни тысяч строк не более секунды?
393 2288556
>>88471

> Что там насчет языка V?


живет и развивается
394 2288559
>>88507
Посмотри исходники.
Наверно минимизирует количество проходов, задрачивается чтобы ничего динамически не аллоцировать.

Да и синтаксис у языка простой + нет препроцессора и вообще макросов. Тот же D тоже очень быстро собирался, при том, что там заёбистость синтаксиса не сильно ниже плюсов.
395 2288570
>>88507

> Типа того, да. Только проще.


а что там от раста?
396 2288580
Пояснити суть D. Зачем дебики создали раст, а не стали использовать д?
397 2288590
>>88570
Кейворд mut видимо.
398 2288591
>>88570
А в расте что-то есть, кроме уебанского синтаксиса?
399 2288592
>>88590
ага, и функция как fn пишется, а так вообще ничего общего
400 2288597
>>88580
Ты ещё спроси почему на жабе/шарпе писать не пошли.
401 2288600
>>88580
потому что GC
volt.png305x51
402 2288640
сюк)) открыл приложение на V https://volt-app.com в текстовом редакторе, а там Пыню ))
403 2288940
>>88640
ты б его блять еще в пеинте открыл. или ты троллишь двач бинарниками не в hex-редакторе?
404 2288944
>>88940
тяжело наверное жить без ЧЮ
16414638346390.png116 Кб, 736x736
405 2288971
>>88640
А ты все бинарники в текстовом редакторе открываешь?
16414638346390.png116 Кб, 736x736
406 2288973
>>88640
А ты все бинарники в текстовом редакторе открываешь?
407 2288988
>>88973
а то, я жи у мамы хакир
тоже решил, что не стоит вскрывать эту тему и стремишься ее замять? )
408 2289014
>>88988
Неудобненько, кек.
1614888290767-?.png677 Кб, 1278x982
409 2290416
>>88471
Когда его обсуждали на лейнчане, то выяснилось, что даже у простого хеллоуворлда память утекает. Может сейчас всё изменилось, конечно
410 2290429
>>47328

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

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

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

Подскажите, плез, что к чему.
415 2290543
>>90541
Сообщение - "Мой текст"
sprintf((char*)&foo, "\xCC\xEE\xE9\x20\xF2\xE5\xEA\xF1\xF2");

Дальше - сам.
416 2290605
>>90543
Эй-эй, не так быстро.

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

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

https://onlinegdb.com/xVHmh5nIf
417 2290692
>>90506

>по тутору LLVM


>гуглишь "compiler dragon book" и задрачиваешь


И то и другое понты, что обосновано в этом
http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf труде.
418 2290739
>>90605
И ещё, почему не работает:
snprintf(tBuf, sizeof(tBuf), "\xd2\xc5\xd1\xd2: %s\t", \xd4\xd3\xd3);

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

Какой правильно?
419 2290837
>>90692

>И то и другое понты


По которым учится и работает весь мир.
420 2290855
>>90837

>По которым учится и работает весь мир.


Миллиарды мух не могут ошибаться.
421 2290865
>>90855
Какой-то араб из американских ебеней, написавший курсовую типа: швой лишп в 100 строк пейпер в 2006 точно не мог ошибаться.
Особенно учитывая что он там про это вообще ничего не пишет.
422 2290990
>>90506
>>90837
Здесь http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf показана раскрутка компилятора. А то что вы советуете это пустая теория, и без раскрутки. Короче прежде создать хоть что то примитивное надо потратить несколько месяцев. НЕ НУЖНО!

>>90865

>Какой-то араб из американских ебеней


Он профессор вообще то и действующий программист. Если не знаешь ничего, то не лезь со своим никому не нужным мнением. По его принципу многие писали компиляторы. Метод раскрутки придуман конечно не им, но больше инфы с кодом по раскрутке в интернете найти трудно.
16441402576320.jpg67 Кб, 555x604
423 2291017
>>90990

>нюфаг не понимает даже куда код сувать


>РЯЯЯ ВЫ НИ ПАНИМАИТИ И ВААБЩЕ НИПРАВЫ ВСЕ ЭТА НИНУЖНА ВОТ РАСКРУТКА СМАТРИТИ РАСКРУЧИВАЕШЬ КАСЯК И ВОТ КОМПИЛЕР РЯЯ


Хорошо, ты выиграл.
424 2291103
>>90990
Зачем ты вообще лезешь что-то писать, если не хочешь учить теорию и дрочить базу? Чтобы сделать действительно годную вещь, один хуй придется учить много материала и возможно, что не один год. Ты, видимо, просто поиграться хочешь и палочкой потыкать, чтобы потом говорить "А я в ко-ко-компиляторах разбираюсь. Вот даже свой написал".
мимо
425 2291162
>>91103

>Ты, видимо, просто поиграться хочешь


А что нельзя? Еще бы у вас разрешения спрашивать.

>>91017

>ко-ко-ко

426 2291176
>>91162

>А что нельзя? Еще бы у вас разрешения спрашивать.


Конечно можно, просто не стоит копротивляться, когда тебе теоретическую базу хотят посоветовать. Так и сказал бы, что просто хочешь палкой потыкать и кирпич в виде книги дракона - это оверкилл для твоих целей, тогда пропала бы и почва для бесполезного срача.
16414546622790.jpg10 Кб, 512x382
427 2291191
>>91162

>А что нельзя? Еще бы у вас разрешения спрашивать.


Можно конечно. Но книжку хотя бы про си придётся прочитать, код по файлам сам себя не разложит. Ну или поищи статеек с "раскруткой" си, если не воспринимаешь инфу вне привычного тебе тиктокерского формата, кек.
428 2291311
>>91176
>>91191
Я не против фундаментальных знаний, но есть несколько НО. Вы сами много в этом разбираетесь, что раздаете советы? Книга дракона может и хорошо объясняет как устроены и как строить компиляторы, но она плохо учит это делать на практике. Вот я выяснил, что для понимания как писать компилятор нужно изучать формальные языки, грамматики и методы трансляции. Это такая дисциплина, ей в ВУЗах учат. По ней книги есть. В книге Дракона сомневаюсь, что об этом написано. А потому она плохо годится как в качестве учебника.
429 2291316
>>91311

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


Откуда ты знаешь, если не читал? Вообще советую хотя бы скачать книгу и ознакомиться с содержанием.
430 2291321
>>91316
Спасибо за подсказку.
431 2291349
>>74997
Вот функция, которая возвращает лямбду, которая возвращает число 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
432 2291356
>>91349
Вот тут еще можно посмотреть https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/edit#slide=id.p

Есть еще многие приятности вроде https://rust.godbolt.org/z/G3a9GY73r когда в структуре присутствует ссылка (а компилятор гарантирует что она не может быть null благодаря правилам языка), получаются такие оптимизации в байтиках. Работает также на Result, а эти типы повсюду в кодовой базе.
433 2291359
>>91349
>>91356
Ну да, статически подставленные функции дают меньше оверхеда чем виртуальные методы. И на цпп тоже, и на других компилируемых языках. Сказать-то что хотел?
434 2291386
>>74997

>лямбды


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

>Я вот этого никогда не понимал


Отсутствие некоторых фич делает язык чемоданом без ручки. Нести его становится тяжело (код писать тяжело, много кода требуется). Возьмем к примеру Лисп. В нем почти нет синтаксиса, но благодаря некоторым фичам, его небольшой синстаксис становится убойно выразительным. Лисп считается самым выразительным языком. Особенно хорошо эти свойства проявляются при парсинге сложных данных. Попробуй на Си парсить сложные протоколы. Это очень тяжелый ручной труд. Кода писать нужно тонны. Для Лиспа никаких сложностей нет и кода не нужно много.
435 2291390
>>74997

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


Чиво? Раст написан на Расте. Почему в C/C++ тредах все такие напыщенные, но необразованные? Не ты ли писал в мой адрес, что я пхп-макака? Ох, лол.
436 2291393
>>91360 (Del)

>> fn -> fn -> fn ->


>Проорал


Ну и глупенький. Слышал про кодировки Чёрча? Вряд ли. Сишники и плюсовики народ дубовый. Таким образом реализуют комбинаторы. Которые используют много где.
437 2291433
>>91402 (Del)
Школьник что ли? Если бы ты учился Computer Science, то знал бы. А у тебя похоже образование уровня макаки.

https://en.wikipedia.org/wiki/Combinatory_logic
https://en.wikipedia.org/wiki/Parser_combinator
438 2291457
>>91359
Отвечал на

>Зачем там нужны лямбды и прочая ересь, которая стоит дополнительных ресурсов процессора?


Можно еще разницу между итератором и циклом взять (это тоже вызовы функций и лямбды)
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
439 2291460
>>91386

>Лисп считается самым выразительным языком.


Это его также самая знаменитая проблема. Каждый lisp-программист норовит написать свою DSL в которой другие программисты копаться отказываются. (Так я слышал несколько раз)
440 2291478
>>91445 (Del)
Все-таки комбинаторы хороши тем что позволяют сократить шаблонный код. И вдвойне приятно когда не требуют ничего взамен https://play.integer32.com/?version=stable&mode=debug&edition=2021&gist=985f8954ee2c443a1233fa302e55632f
!!!rust-socks.jpg55 Кб, 800x450
441 2291485
>>91349

> rust

442 2291497
>>91485
Скучный аргумент, ни разу такого на их житхабе не видел. Или в статьях о Rust, или на reddit/r/rust или еще где кроме двача и оппеннета с лором. Это всего лишь инструмент, не обязательно ориентацию менять.

Единственный раз когда происходило что-то странное, это когда мозилла в своем блоге за СЖВ начала топить. Но им тогда много от самих растаманов прилетело, которые не желали чтобы от их имени говорили политики. Мозилла больше в Rust не сольная скрипка.
image.png98 Кб, 859x966
443 2291502
rust, lisp, python, golang, php, java и прочая хуета в этом треде не нужны.
Вот с++ и ассемблерщики тут не помешают.
444 2291528
>>91502
Про Ada/SPARK забыл, и D
445 2291575
>>91497

> Скучный аргумент, ни разу такого на их житхабе не видел.


Ага, как же, только недавно драма была
https://thenewstack.io/rust-mod-team-resigns-in-protest-of-unaccountable-core-team/
Каково это, чувствовать тёплый, пульсирующий CoC в свой влажной тугой попке?
446 2291589
>>91445 (Del)
Как же школьнику ни пичот!

>>91460

>Это его также самая знаменитая проблема.


Я знаю. Но это ведь проблема программистов, а не языка. Нужно просто правильно использовать эту мощь. Никто же не говорит, что не нужно использовать огонь, потому что им можно обжечься.
447 2291615
>>91589

>Нужно просто правильно использовать эту мощь.


Прикол в том, что если что-то есть языке — оно будет юзаться, даже если это какой-то баг говна.
Алсо, под таким предлогом можно сказать что раст не нужен — просто никто не умеет юзать си.
sage 448 2291642
Лол, что за наплыв борщехлебов в СИСТЕМНОМ ЯЗЫКЕ?
449 2291667
>>91642

>борщехлебов


На этой доскаих меньше всего в 1с, жс, жава и пхп тредах. Милости просим к шалашу, так сказать.
450 2291668
>>91667

> доскаих


доске*
screenshot.png108 Кб, 1353x497
451 2291677
Что у меня с gcc не так?
452 2291693
>>91615

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


>Алсо, под таким предлогом можно сказать что раст не нужен — просто никто не умеет юзать си.


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

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

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

>>91642

>ко-ко-ко, в системном языке не нужон этот ваш Computer Science.


Ух, как нипичот!
sage 453 2291697
>>91693

>Ух, как нипичот!


Правильно, нахуй производительность.
454 2291785
>>91775 (Del)
Может ты перевод не знаешь? https://ru.wikipedia.org/wiki/Информатика
455 2291788
>>91677
static inline
выбери что-то одно.
sage 456 2291840
Зачем раст называют системным, если он больше конкурирует с плюсами, а не с няшной? Что плюсы, что раст не очень годятся для целей где используется Си. Я как-то хотел прикрутить раст к своему проекту, но произошла ситуация как с плюсами, пришлось выкинуть бОльшую часть языка вместе с проверками и получить огрызок, который не очень-то годен. Какого хуя тогда форсят его системность?
457 2291854
>>91840
Деньги у (((СЖВ))) есть, вот и форсят.
458 2292108
>>91840

>ситуация как с плюсами, пришлось выкинуть бОльшую часть языка


Нет.

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

Всё!
459 2292116
>>91589

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


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

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


Чё? Наркоман?
461 2292172
>>92138
Что тебе не понятно?
462 2292207
>>92138
Он просто не понимает что лоулевел там будет такой же как в "няшной", но писать его придется просто потому что он лоулевел и байтоебство. С другой стороны забывает про возможности типов Rust при нулевом оверхеде. Именно в embedded они могут просиять если понимать что делаешь. Вот так можно сделать проверяемый на стадии компиляции ввод-вывод через порты/память https://opensource.com/article/20/1/c-vs-rust-abstractions
комбинируя это с проверяемыми на стадии компиляции стейт-машинами http://cliffle.com/blog/rust-typestate/ (и аффинными типами. Первый пример из той статьи, с закрывающимся файлом) можно смело писать банкомат. Без смс и регистрации.
463 2292228
>>92207

>можно смело писать банкомат


Почему именно банкомат?
464 2292262
>>91677
Ошибки читать не пробовал?
465 2292327
>>92116

>программирование превращается в творчество.


А потом когда в наследство остается такое "творчество" так и хочется посылать лучи "благодарности" творцу.
466 2292340
>>92207
Блядь, ещё один в чулочках. Когда вы уже угомонитесь со своим ржавым
467 2292342
>>92116

>Уже давно понял что дслы, фичи языка - яд и нахуй не надо


Ты просто не умеешь их готовить.

>чувствую что надо вкатиться в голанг


Ага, вот бы не нужно было, когда срать хочешь, вставать с дивана и идти в туалет, вот бы можно было в штаны себе насерить и сидеть двачевать капчу дальше. Так просто, и никакого тебе места для творчества.
468 2292415
>>92327
Хуйпойму о чём вы тут спорите.
Например, у меня есть три стиля написания - 1) максимально понятно для студентов, 2) просто по канонам, 3) максимально оптимально, десятки приёмов хакерских, но уже через неделю с трудом понимаешь как оно работает.

Стиль выбираю от задачи. И иногда от настроения.
Только не верещите тут, мол, надо студентов сразу учить писать по канонам. В реальной жизни это недостижимо. Они (большинство из них) просто не научатся программировать в таком случае.
469 2292445
>>92415
Нафиг студентов, туда хакерские приемы и следом творчество.
Код, в первую очередь, пишется для других людей. А уж потом оптимизация (через выбор более подходящих алгоритмов, организации единиц и уж потом хакерских приемов).
470 2292449
>>92342

>Ты просто не умеешь их готовить.


Я когда хочу срать - действую по простому алгоритму, пришел в толчок, снял штаны, сел на унитаз, посрал, жопу подтерел, смыл, ершиком толчок шлифанул, освежаком попшикал.
а кто-то кто занимается не программированием а творчеством:
1) срать подъезжает на гироскутере со смузи,
2) тащит с собой биде
3) по наставлению Малышевой несет с собой табуретку.
4) идет в толчок, ложится на пол, делает бочку и срет себе на лицо.
5) комбинирует 1-4 пункты в различных вариациях в зависимости >>92415
>от задачи. И иногда от настроения.

И все считают что их подход лучший и все умеют правильно "приготовить" посрать. Где истина? Истинна - конечно же срать так как ты срешь кто бы мог подумать.
471 2292519
>>92449

>по наставлению Малышевой несет с собой табуретку.


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

> беру с собой табуретку, чтобы ноутбук


опасные мувы делаешь, долго сидеть на толчке нельзя, геморрой может появиться.
473 2296548
>>45453
Омегалул так марсоход на Си то гайсы,а еще Си будет жить пока будут существовать операционные системы(конкретнее ядро),так как ядро является нечто монолитным,а тут ООп то сосет:) мб не прав если что подправьте в качестве примера могу представить linux ось которую юзают везде практически кроме как десктоп конечно
474 2296553
>>47084
Я не чекал >>79664
Да пиздец жиза все четко рассказал мне тоже советовали сразу лютые пиздецки сложные залупы,и я старался но забил хуй а потом спустя месяц вкатился но по своей методике без книг нахуй как уебан скачал sololearn + видео дударя(ну тупо стартерпак для нуба) таким образом выучив питон с django/flask пофрилансил за копейки ботов для тг создавал А ПОТОМ УЖЕ по собственному желанию перешел на линукс начал изучать Си ядро линукс и алгоритмы со структурой данных и поперло ну кароче kernel hacking
475 2296589
>>96553

>кароче kernel hacking


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

>Я тебя друзьям порекомендую за это.


Лучше подругам рекомендуй
477 2296630
>>96548
Блэт, в шкалке каникулы начались, чтоле?
478 2296643
О, да тут бамплимит назревает. Подожду-ка бамплимита, да закину "рыбу". После переката тред точно оживёт.
479 2296805
return 0;
480 2297527
ПЕРЕКАТ: >>2297526 (OP)
ПЕРЕКАТ: >>2297526 (OP)
ПЕРЕКАТ: >>2297526 (OP)
Тред утонул или удален.
Это копия, сохраненная 5 августа 2022 года.

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

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