[ b / news / + ]
Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 473 47 138
C язык программирования #666 clang /clang/ Аноним 11/02/25 Втр 13:28:00 3386488 1
ca.jpg 6Кб, 235x250
235x250
Тред, посвященный прародителю всех С-подобных языков и по совместительству всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит или ∗.

Что читать:

- Stephen Prata "C Primer Plus, 6th Edition" (2014) (в русском переводе: Стивен Прата "Язык программирования C. Лекции и упражнения (6-е издание)" ): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Идеально для начинающих.
- Brian Kernighan, Dennis Ritchie "The C Programming Language".
- Стандарт 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 (февраль, с диффами)
- Последний черновик ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2583.pdf (октябрь)

Прошлый тред: https://2ch.hk/pr/res/3304338.html
Аноним 11/02/25 Втр 13:33:18 3386491 2
>>3386488 (OP)
Лудчший езык. Изучил за пару недель си, еще пару недель на сисколы. И ты уже у мамки хакер.
Аноним 11/02/25 Втр 15:23:54 3386589 3
Когда люди изучают разговорный иностранный язык, то им рекомендуют максимально погрузиться в языковую среду. Так и с языком программирования - лучше на время изучения забыть про винду и делать все на линуксе. Средства разработки там легко доступны, исходники - тоже. Хотя не все исходники одинаково полезны. Начинать лучше с изучения минималистичных программ, типа тех, что на suckless.org чтобы не только искусственные упражнения делать, но и что-то реально используемое дорабатывать для своих нужд.
Аноним 12/02/25 Срд 02:53:08 3387008 4
image.png 306Кб, 1331x497
1331x497
>>3386589
>лучше на время изучения забыть про винду и делать все на линуксе
Не понимаю, зачем?
Я учил С по видео этого толстячка. Виндовс + студия.
Аноним 12/02/25 Срд 05:59:41 3387030 5
Замечательный язык. Первый язык, кроме Паскаля в школе, но изучение Паскаля не особо зашло.

Увы, но этот язык я изучал не по той литературе, что рекомендуется в посте, а по руководству некоего Полякова(4 файла по 20 страниц в каждом) так как именной тогда от нечего делать я случайно нашел сайт Полякова.

Теперь работаю с c++(пишу динамические библиотеки для некоторых проектов под Андроид). И пусть с чистым си я сейчас особо не пересекаюсь, но именно этот язык дал путь к понимании всех трюков с адресами и одной из самых главных сущностей программирования, от которой не убежать, а лишь чуть-чуть замаскировать: все данные - лишь набор байтов.


Просто снимаю шляпу перед этим языком.
Аноним 12/02/25 Срд 09:07:06 3387163 6
>>3386488 (OP)
В книжках Праты и Ритчи нет ничего про многопоточку, мьютексы и прочие семафоры (а в Си это все есть). Нет ничего про архитектуру.
Аноним 12/02/25 Срд 11:24:29 3387292 7
>>3387163
>про многопоточку, мьютексы и прочие семафоры
Windows для Профессионалов, крутая книга для настоящего программиста. Никакой гуманитарной академической блевотины, чисто по делу, техника для технарей, есть система и книга как с ней работать.
Аноним 12/02/25 Срд 11:39:32 3387307 8
>>3387163
Есть книжка роберта лава системное программирование в линупс. Для нубов есть книжка иванова программирование в линупс. Есть новая книжка си бранд билдинг дебагер от трапа из майкрософта. Хоть книжка и про написание дебугера на си плас плас, но книжка хорошо поясняет для нубов про сишные сисколы в линупсе и ахитектуру пк.
Аноним 12/02/25 Срд 11:44:12 3387311 9
>>3387292
У виндовса нет си компалера и никогда небыло. У вижуал студии плюсовой компилятор. Были только древнии компиляторы от ноунеймов как пелес си компилер
Аноним 12/02/25 Срд 11:45:26 3387316 10
Аноним 12/02/25 Срд 11:46:54 3387321 11
>>3387316
Си это исключительно юникс лайк системы, ну еще эмбед. Сам брысь в плюсовой тред.
Аноним 12/02/25 Срд 11:51:47 3387328 12
image.png 810Кб, 1300x815
1300x815
>>3387311
>>3387321
>У вижуал студии плюсовой компилятор
И что? С89 он компилирует без проблем. И туторы есть хорошие от толстячка.
Аноним 12/02/25 Срд 12:05:52 3387341 13
>>3387328
Ну и си под винду никакого практического смысла не имеет. Чисто забава для задротов. Под линупс же системные вещи активно пишут - возьми например разработку ядра linux или например рантайм для контейнеров crun от красношапки
Аноним 12/02/25 Срд 12:13:16 3387351 14
>>3387341
А еще где-то разрабатывают банковские системы на коболе, и что? Нинужное нинужно это никак не меняет, засунь себе в сраку линупс с чистоси, ведь это твоё хобби хипстера - пороться в сраку мечтая отрезать себе хуй.
Аноним 12/02/25 Срд 12:20:29 3387360 15
>>3387351
1) ты мне свои фантазии не приписывай, соевый любитель ретро игр под винду
2) кобол + хипстер? Ты дурачек?
3) виртуализацию и контейнеризацию майкрософт тоже в линупс комитит, нейронки на линупсе на фермах запускаются Так что с коболом сравнение линупса нерелевантное
Аноним 12/02/25 Срд 18:09:47 3387816 16
>>3387360
Хватить срать, урод, ты кто из них:
- разработчик ядра линукс?
- разработчик виртуалок майкрософт?
- разработчик контейнеров красношапки?
Правильно, никто, тупой урод который вообще никто никакого кода не пишет, простой хисптосральник с линуп.сру и подобных помоек для быдла попугающих соевую пропаганду.
Аноним 12/02/25 Срд 18:35:57 3387857 17
>>3386488 (OP)
Ну хотя бы потому в линуксе сишка это буквально часть системы и работать там на низком уровне гораздо проще и приятнее чем на винде.
Аноним 12/02/25 Срд 18:36:54 3387858 18
Аноним 12/02/25 Срд 18:39:42 3387863 19
>>3387163
Шапка сильно устарела, вышло много неплохих книжек с тех пор, те же дейтелы постоянно обновляют книги по си.
Аноним 13/02/25 Чтв 13:00:48 3388345 20
>>3387863
А что они там такого важного наобновляли? Ведь основной стандарт сейчас в индустрии это C99.
Аноним 13/02/25 Чтв 13:05:06 3388351 21
>>3387008
>Не понимаю, зачем?
Для эффективности.

>Я учил С по видео этого толстячка. Виндовс + студия.
По виндовидосикам тоже можно выучиться программировать. Только времени это займет гораздо больше. Ну знаете, как в школе люди иностранный язык годами учат, а толку мало.
Аноним 13/02/25 Чтв 14:21:35 3388401 22
>>3388345
Ну как бы Прата не единственная и не самая важная книга по современной сишке, я это хотел сказать.
Аноним 14/02/25 Птн 12:52:52 3389029 23
>>3388351
>По виндовидосикам тоже можно выучиться программировать. Только времени это займет гораздо больше.
Ну не. По мне так как раз книги для вкатунов очень малоэффективны. На видосиках обычно учат программированию, делая какой-то большой сложный проект. В большинстве же книг для вкатунов сюжеты очень элементарные, решаемые в пару строк. В итоге, когда вкатун пытается сделать что-то полезное, а следователньо и большое, он не знает даже за что браться.
Против же книг по углубленным темам против ничего не имею.
>>3387857
1) Зачем вкатуну рабоать в линуксе на низком уровне?
2) Я честно не понимаю, зачем для чего комитить. Я могу понять осуществление просветительской работы забесплатно, но делать забесплатно продуктовую рабоу, на которой потом наварятся меты-гуглы, как-то зашкварно.
Помню вначале нулевых было полно маленьких утилит, с которых авторы получали копеечку. Сейчас же благодаря опенсурс выблядкам так не заработать, остаются варианты только ебашить на дядю.
Аноним 14/02/25 Птн 13:25:06 3389061 24
>>3389029
Чтобы перестать быть вкатуном. Двощ - борда 18+, а не дом детского творчества. С агуша-кормом в виде игрулек под винду с житием бытием типичного сишника ничего общего не имеет.
Аноним 14/02/25 Птн 13:46:26 3389081 25
>>3389029
>По мне так как раз книги для вкатунов очень малоэффективны.
А ты сам-то по видосикам вкатывался в программирование?

>делая какой-то большой сложный проект
При обучении должен быть виден явный прогресс, чтобы с первых же дней была рабочая программа, к которой потом уже можно добавлять какие-нибудь фичи. А большой и сложный проект демотивирует.
Аноним 14/02/25 Птн 13:59:51 3389090 26
>>3389029
>Сейчас же благодаря опенсурс выблядкам так не заработать, остаются варианты только ебашить на дядю.

Если б ты не пиздил виндовый софт, то ты б вообще нихуя не смог бы на винде сделать. Своему дрочу на винду ты обязан прежде всего пиратству. Это не говоря о том, что слозетсурсного фриваре/шареваре софта всегда было дохуя. Не факт, что на винде кто-то бы позарился на твои проприетарные поделки. Так же бы ебашил на дядю, не выдержав конкуренции с корпорастами.
Аноним 14/02/25 Птн 14:53:05 3389116 27
>>3389029
>но делать забесплатно продуктовую рабоу,
Ты не в курсе, что кроме денег на свете существует и другая мотивация?

>на которой потом наварятся меты-гуглы, как-то зашкварно.
Эти наварятся в любом случае. Тотальная закрытость всего софта не спасет.
Аноним 14/02/25 Птн 15:34:36 3389140 28
>>3389029
>Я честно не понимаю, зачем для чего комитить.
Чтобы резюме пополнить, если говорить о монетизации.
Аноним 14/02/25 Птн 15:49:35 3389151 29
>>3389029
>работать в линуксе.
Шо це?
>линукс и сишка
Пчелик, у тебя документация функций для сишки прямо из командной строки доступка, есть ебейший конпелятор, который ставится обычным пуком в современном дистре.
Аноним 14/02/25 Птн 15:53:02 3389153 30
>>3389140
Либо они и сами пользуются софтом, который помогают разрабатывать, а не только ради чужих хотелок.
Аноним 14/02/25 Птн 16:08:00 3389157 31
>>3388401
Только не надо говорить про устаревание инфы, ведь сишка это не какой-то там одноразовый язычок, в котором часто ломают совместимость и дропают говнофреймворки. Про быстрое устаревание - это к веб-макакам.
Аноним 15/02/25 Суб 00:20:59 3389469 32
Тред говна. Худший тред по Си. Обсуждают залупинукс и вкатунов. Моча, снеси.
Аноним 15/02/25 Суб 00:28:09 3389472 33
>>3389469
Так весь раздел деградировал. 95% постов от дегенератов, которые к айти вообще отношения не имеют. Срут бессмысленными постами в треде-чатике и временами с троллингом тупостью протекают в другие треды.
15/02/25 Суб 00:44:38 3389473 34
>>3389469
>>3389472
Что вы там под винду на си пишете ебанутые
Аноним 15/02/25 Суб 04:25:06 3389509 35
image.png 17Кб, 675x135
675x135
>>3389061
Раньше все игры на С писались. Не только во времена ДОСа, но и во времена Виндовса уже. Тот же Q3A на С.
>в виде игрулек под винду
Игры самый сложный софт, если брать коммерческую разработку, а не академическую. Потому не понимаю твоего пренебрежительное отношения. Ты ведь наверняка веб-петухан вообще. Не будь ты веб-чмом, не был бы зомбирован линуксом.
>>3389081
>А ты сам-то по видосикам вкатывался в программирование?
Да.
>чтобы с первых же дней была рабочая программа
По мне так сложно испытывать восторг от программ уровня подсчитать факториал.
>>3389090
Видишь, винда даёт заработать на пиратстве, взломе. Опеншурш же ничего не даёт. Только отбирает. Либо твоя поделка будет незамечена, либо ею буду тпользоваться корпорации, генерирующие себе миллиарды в день, а ты будешь без денег сидеть.
>>3389116
>Ты не в курсе, что кроме денег на свете существует и другая мотивация?
Имело бы смысл, если бы опенсусрс нельзы было использовать коммерчески. А так ты просто генерируешь прибыль Безосу, Брину и прочим.
>>3389473
Что угодно можно написать. Ты просто промытка. Заразили тебя вирусом и ты его разносишь дальше.
Аноним 15/02/25 Суб 06:17:18 3389520 36
>>3389509
>А так ты просто генерируешь прибыль Безосу, Брину и прочим.
Оправдания жлоба. Сначала говоришь не хочу бесплатно помогать гуглу, потом будешь говорить не хочу бесплатно помогать соседу-васе, потом бесплатно никому помогать не хочу. Жлоб это жлоб, дегенерат-вырожденец у которого интерес только один - нахапать самому и отобрать у других. Что-то кому-то дать? Нет, у жлоба от этого дикая ломка, весь его организм восстаёт, жаба давит. Эгоистичная тварь мечтающая чтобы у соседа корова сдохла, а не кому-нибудь помочь.
Аноним 15/02/25 Суб 07:11:16 3389533 37
>>3389520
Что же такого бесплатного сделал ты?
Аноним 15/02/25 Суб 08:30:32 3389546 38
>>3389533
Всё, целая куча прог которыми куча народу пользуется, плюс мои инициативы подтолкнули других разработчиков создавать подобное и намного лучше, а до меня не могли жопы оторвать от дивана. И всё выкладываю с открытыми исходниками, без защит, лицензий, кредитсов, вниманиеблядства, требований донатов, нытья, и прочего говна. Просто потому, что сам пользуюсь чужой работой, естественно хочется дать в ответ. Полюс, многие разрабы припизднутые неадекваты, так что открытые исходники совершенно необходимы для исправлений которые они сами делать не хотят, а без этого кривым говном пользоваться невозможно.
Аноним 15/02/25 Суб 11:35:43 3389607 39
>>3389509
>>А ты сам-то по видосикам вкатывался в программирование?
>Да.
Ну и нахуй ты так быстро слился? Кто после этого будет подыгрывать твоему тупому троллингу?
Аноним 15/02/25 Суб 11:57:45 3389628 40
>>3389520
>Оправдания жлоба.

Вначале годами живут на спизженном софте, играх, книгах, музыке, фильмах, а потом, когда у самих софт даже не спиздили, а просто создали бесплатную альтернативу в рамках закона, то поднимают вой: ОБОКРАЛИ! НЕ ДАЮТ ЗАРАБОТАТЬ ВЫБЛЯДКИ! АААА111!!! ВСЕ ЗАКРЫТЬ!!! ВСЕХ ПОСАДИТЬ!!!111

Я лично, ничего против пиратства не имею, особенно в бедных местах нашей планеты. Кстати, а вы уже удалили у себя всю пиратскую порнуху?
Аноним 15/02/25 Суб 12:16:31 3389640 41
>>3389520
Не удивлюсь, если у него и бабы до сих пор нет. Патологические жлобы с ними несовместимы. Такие и на детей, на джунов смотрят как на врагов, да и вообще реальный общественный прогресс не жалуют.
Кстати, лучше всех типы жлобства описывал Салтыков-Щедрин. Почитайте, например, его "Господа Головлевы".
Аноним 15/02/25 Суб 12:41:23 3389661 42
>>3389473
>Что вы там под винду на си пишете
Игрульки.
Аноним 15/02/25 Суб 12:57:43 3389665 43
Какие библиотеки для удобной работы со строками в Си считаются наилучшими?
Аноним 15/02/25 Суб 13:30:47 3389682 44
>>3387307
>Есть новая книжка си бранд билдинг дебагер от трапа из майкрософта. Хоть книжка и про написание дебугера
Спасибо за наводку. Надо будет почитать.
Аноним 15/02/25 Суб 14:09:17 3389698 45
>>3389665
CString, UnicodeString, std::wstring
Аноним 15/02/25 Суб 22:04:27 3389962 46
>>3387307
> си бранд билдинг дебагер от трапа из майкрософта
Чего? как это гуглить епта
Аноним 15/02/25 Суб 23:04:39 3389979 47
ну давайте, показываете свои макросы, кто что умеет
Аноним 15/02/25 Суб 23:14:59 3389982 48
Без имени.jpg 70Кб, 1578x291
1578x291
Аноним 16/02/25 Вск 03:05:21 3390030 49
>>3389509
>ею буду тпользоваться корпорации, генерирующие себе миллиарды в день,
Стандартная лицензия GNU GPL не дает возможности генерировать миллиарды. Если ты сам распространяешь свой код под более либеральной LGPL или тем более MIT, то это уже твои проблемы.
Core-JS распространяется как раз под MIT.
Аноним 16/02/25 Вск 23:51:34 3390572 50
Аноним 17/02/25 Пнд 00:11:02 3390579 51
Расскажите про винапишку, прям четенько что бы по полочкам всё разложено было
Спасибо всем кому не трудно будет это)
Аноним 17/02/25 Пнд 12:28:51 3390791 52
>>3390579
Винапишка — это народное название игры, которая в официальных источниках называется "винопишка" или "виноснаряд". Это игра с карточками, которая популярна на вечеринках и в компаниях, особенно среди молодежи. Суть игры заключается в том, чтобы с помощью карточек и их комбинаций придумывать интересные задания, которые игроки выполняют, а за нарушения (или невыполнение заданий) могут быть наказаны — обычно это выпить определённое количество алкоголя (чаще всего вина).
Аноним 17/02/25 Пнд 16:37:08 3391020 53
>>3390579
Древний набор мрачноватого вида функций прямиком из 1995 года. Когда-то знание этой хрени давало возможность работать с виндой на низком уровне, но сейчас это мало актуально.
Аноним 17/02/25 Пнд 18:23:53 3391098 54
>>3391020
>но сейчас это мало актуально.
А что сейчас актуально? Жить в Индии? Красить волосы в розовый цвет? Совать в жопу мобилку?
Аноним 17/02/25 Пнд 18:25:50 3391101 55
>>3391098
У сишорперов спроси на чем актуально писать под новую винду
Аноним 18/02/25 Втр 06:46:08 3391379 56
>>3391101
Сишорперы как все пишут вебмакакинг. И ты не ответил на вопрос, отвечай. Или молчание знак согласия?

Ну я так и думал, очередной "актуальный" петух в си-треде, который даже не может сказать что это за актуальность такая, слишком позорно и мерзко чтобы говорить вслух. Но ничего, я озвучил >>3391098
Аноним 18/02/25 Втр 13:03:49 3391618 57
>>3390791
Очень занимательно)
Аноним 18/02/25 Втр 13:06:22 3391621 58
>>3391379
Если не затруднит, что есть похожие на winapi , что бы работать на низком уровне?
Аноним 18/02/25 Втр 13:50:47 3391669 59
>>3391621
Это какой-то тупой тралль накидывает, не слушай его истерики. Скорее всего он вообще ничего не программирует, просто срет тут во всех тредах. Посмотри в сисп треде - там такой же дебильный наброс.
Ладно, по сути. Короче смотри.
Есть винапи - набор системных функций винды, он очень древний. Да, на нем все еще можно программировать, но современные приложения под винду пишут не на нем, а на .NET - это такая надстройка над системой, у которой свои функции и свои правила.
Аналог винапи - это системные вызовы ядра в линуксе.
Короче определись что ты хочешь кодить и тогда будет ясно что тебе для этого нужно.
Аноним 18/02/25 Втр 14:01:39 3391686 60
>>3391669
Syscall?
.net не очень нравится, вот хочешь чисто c/c++ , но что бы на уровне ядра работать)
Аноним 18/02/25 Втр 14:04:43 3391694 61
У меня просто любительский проект, и нужно что то кроме winapi , для работы на уровне ядра)
Аноним 18/02/25 Втр 14:08:20 3391697 62
Просто на линухе не делал ещё программы, можем пойти в лс все объясню, если не лень будет можешь оставить контакты, я напишу
Аноним 18/02/25 Втр 14:20:27 3391707 63
>>3391697
1) Какая связь между линухом и винапи?
2) И что ты понимаешь под уровнем ядра? Сисколы в линуксе используются в юзерспейсе. Это прослойка между ядром и прикладным софтом. Низким уровнем это называется потому что на этом уровне мало абстракции и для реализации простых вещей надо много кода написать. Это все уже все написано в стандартной библиотеке. У тебя любительский проект где надо свой личный malloc писать?
Аноним 18/02/25 Втр 14:53:26 3391743 64
Типо )
Мне не под userspace и под kernel mode
И ещё нужно написать kmdf
Аноним 18/02/25 Втр 14:56:11 3391747 65
173987890394187[...].webp 6Кб, 300x168
300x168
Аноним 18/02/25 Втр 14:59:55 3391754 66
1vidur.jpg 101Кб, 1920x1080
1920x1080
Аноним 18/02/25 Втр 15:03:06 3391760 67
Двач съел качество
Аноним 19/02/25 Срд 09:51:02 3392194 68
В юбилейном треде дам советы малятам:
- архитектура важнее реализации
- не оставляйте непродуманных ветвей в алгоритме
- покрывайте тестами с самого начала
- если очень хочется сделать ограничение статикой, сделайте его в 10 раз больше
- об UB и ID не шкварьтесь
Аноним 20/02/25 Чтв 10:11:21 3392962 69
А можно ли написать рантайм для си? Свой сборщик мусора и безопасное управление памятью
. 20/02/25 Чтв 12:31:36 3393049 70
>>3392962
Сборщик мусора прикрутить можно с такой-то матерью (Boehm GC).
Безопасное управление возможно только в такой форме, что программа остановится и сообщит об ошибке, а не ОС её убъёт.
И всё это не на 100% надежно.
Аноним 20/02/25 Чтв 13:03:02 3393077 71
image.png 8Кб, 416x260
416x260
image.png 16Кб, 848x97
848x97
Каким образом fgets понимает, где заканчивается строка?
Изначально есть "hello world", это 1 пик. Потом его читает fputs и помещает файл, по пути он убирает тернарный символ в конце. Получается пик 2.
Каким образом fgets понимает, что файл всё, если у него нет тернарного или символа пробела?
https://pastebin.com/kujNxU08
x 20/02/25 Чтв 13:10:09 3393082 72
>fgets(buffer, 256, fp) == EOF
А давай ты варнинги включишь для начала?)
Аноним 21/02/25 Птн 01:36:36 3393680 73
>>3392962
Нет, бро, операционки пишут, дрова пишут, а простейший алгоритм подсчёта ссылок, увы, реализовать не получится.
Аноним 21/02/25 Птн 13:20:13 3394001 74
Аноним 21/02/25 Птн 14:49:36 3394049 75
>>3394001
> Каким образом fgets понимает, что файл всё
Ну давай подумаем как устроен fgets. Сделай strace, посмотри сисколлы, там наверняка будет какая-нибудь форма сискола read.

man 2 read
If the file offset is at or past the end of file, no bytes are read, and read() returns zero.
Сискол тебе возвращает 0 = файл закончился.
Аноним 22/02/25 Суб 21:53:35 3395245 76
>>3386488 (OP)
Сап, аноны кто-нибудь шарит в winapi? У меня тут непонимание некоторых вещей возникло, часто вижу что текст(label) инициализируют через createwindow("static"....), но как только текст должен быть красивый то есть иметь не стандартный цвет/шрифт/ размер то заместо первого метода все начинают подключать GDI и рисовать в wm_print, неужели нет нормального способа работы с текстом как и с остальными контролами и обязательно нужен gdi?
Аноним 23/02/25 Вск 02:05:46 3395324 77
>>3395245
>неужели нет нормального способа работы с текстом как и с остальными контролами
Остальные конторылы которые не стандартные то же отрисовываются пользовтелем, другого нет
Аноним 23/02/25 Вск 03:03:26 3395326 78
>>3395245
Ну так winapi это очень старая хрень, в те времена были только самые примитивные контролы, а нормальные шрифты вообще только начали появляться.
Аноним 23/02/25 Вск 14:33:24 3395515 79
>>3395245
Контролы так и так рисуются через GDI. Windows это стандартизованная система, контролы такие как положено в системе им быть, дизайн сделан гениальными дизайнерами, аналогов нет. Хочется васянства, значит рисуй сам как хочешь, никто не мешает.
Аноним 23/02/25 Вск 17:09:55 3395641 80
>>3395515
>Windows это стандартизованная система, контролы такие как положено в системе им быть, дизайн сделан гениальными дизайнерам
Windows ХР is dead, старче...
Аноним 23/02/25 Вск 18:15:52 3395684 81
>>3395641
WinAPI не менялся со времен Windows 95, там вся архитектура осталась именно такой какой была в 90е, включая захардкоденные контролы.
Аноним 23/02/25 Вск 18:20:07 3395685 82
>>3395684
И где в винапи "стандартный интерфейс" видовс сторе, настроек и прочей современной гуйни напоминающей вебприложения.
Аноним 23/02/25 Вск 20:33:57 3395763 83
>>3395515
Спасибо, я почему-то думал что GDI был создан уже после стандартных элементов, а стандартные элементы какая-нибудь совсем глубинная хуйня рисует, теперь более менее осознал.
Аноним 23/02/25 Вск 20:47:59 3395769 84
Какой есть годный контент (статьи, книги, видео и пр.) для тех, кто знает базу, чтоб углубиться в нюансы под разные системы, разные компиляторы и т.д.

P.s. В частности под Linux и ведро
Аноним 24/02/25 Пнд 00:45:17 3395859 85
>>3395769
В ведроид-студии, когда делаешь приложение NDK, то есть с использованием C/++, компилятор - это простой Clang, сконфигурированный под кросс-компиляцию. И система сборки CMake. Чтобы посмотреть пример, как это объединяется с гуем, нагугли на гитхабе файл с именем "SDLActivity.java".
Аноним 24/02/25 Пнд 06:26:00 3395889 86
>>3395763
>я почему-то думал что GDI был создан уже после стандартных элементов, а стандартные элементы какая-нибудь совсем глубинная хуйня рисует
Потому что ты скриптовая макака с магическим мышлением привыкшая к черным ящикам. Да, скрипты именно так устроены, непонятные черные ящики в себе, а пользователю дают отдельно огрызки. И пишут код на скриптах именно так, наугад воображая хуйню и тыкая методом проб и ошибок.
Но Си это программирование, а не скриптинг. Нельзя программировать сам не зная что, черный ящик, нельзя писать код наугад, сам не зная как работающий. Программирование - не шаманизм, не посыл молитв богу машины в надежде получить результат. Программирование это техника. Прежде чем что-то писать, необходимо открыть документацию и разобраться как работает машина, только потом уже пишешь код осознавая что делаешь. Но макака уже испорчена скриптами, такое обычно не лечится, психика изуродована, это конец.
Аноним 24/02/25 Пнд 14:46:37 3396195 87
>>3395889
Я не знал о GDI потому что на него не похуй 0.1% включая меня. В документации описаны общие положения и описания функций, никакой исторической сводки, или инфы о том как оно все функционирует изнутри нет. Собираю инфу о winapi по ебаным крупицам в интрнете. А вообще пошел нахуй, зачем ты мне вообще отвечаешь?
Аноним 24/02/25 Пнд 14:56:59 3396207 88
>>3396195
> Собираю инфу о winapi по ебаным крупицам в интрнете.
Книги же есть, ну. Ты классику не читал что ли.

мимо
Аноним 24/02/25 Пнд 15:07:35 3396217 89
>>3396195
Главное, чел, вот таких слушать опасайся >>3395889
Они якобы логичные и компетентные, но на самом деле они только свой шизомусор в голове по полчкам раскладывают.
Аноним 24/02/25 Пнд 15:07:45 3396218 90
>>3396207
Так оно точно так же работает. Тебе дают функцию, ее параметры и то что она делает, и больше ничего. Информация о том как и что работает изнутри это крохи, потому что си это высокоуровневый язык, никто не хочет разбираться как оно работает изнутри.
Аноним 24/02/25 Пнд 16:30:37 3396291 91
>>3396218
>ищу инфу про винапи
>дают инфу об апи
>ря крохи нито шта нада
Ты даже не макака, а просто тупой скот. Говорит одно, тут же требует другое, даже не замечает что несет бессмыслицу не понимая значения слов которыми пукает.
Аноним 24/02/25 Пнд 18:09:31 3396382 92
>>3396291
Слабоумный, ты сам себе противоречишь
>>3395889
> Но Си это программирование, а не скриптинг. Нельзя программировать сам не зная что, черный ящик, нельзя писать код наугад, сам не зная как работающий.

Не пиши мне больше
Аноним 26/02/25 Срд 10:48:36 3397570 93
>>3395769
>то есть с использованием C/++

Он про ядро спрашивает, а плюсы там не к месту. Есть пояснение от создателя ядра, почему писать ядра операционных систем на c++ является неимоверной тупостью https://lkml.org/lkml/2004/1/20/20
Аноним 26/02/25 Срд 11:08:36 3397576 94
>>3397570
>создателя ядра
>Пинус Трольвальдос
Ты так тролякаешь? Пинус говноговна в ядрах ОС
Аноним 26/02/25 Срд 12:43:26 3397622 95
>>3397576
А самая распространенная ось, почему не на C++ написана?
Аноним 26/02/25 Срд 15:23:29 3397721 96
>>3397622
>А самая распространенная ось, почему не на C++ написана?
А почему она должна быть на С++ написана?
Аноним 26/02/25 Срд 15:52:40 3397734 97
>>3397570
>Есть пояснение от создателя ядра
>any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel
Поэтому он пропихивает хрюст который не только скрывает, но еще и активно верещит на тех кто не скрывает? Типичная шавка, что хозяин ему сказал, то и тявкает. Но ему хотя бы за это платят, а тебе, шавка, разве платят за подтявкивание корпоративному барину, или бесплатно сосешь?
Аноним 26/02/25 Срд 15:53:25 3397736 98
>>3397721
Ты тупостью троллишь? Разговор про был про плюсы и ядро ОС.
Аноним 26/02/25 Срд 16:21:55 3397760 99
>>3397736
Ядра серьезных ОС писались в то время когда плюсов либо не было, либо они были в зачаточном состоянии. Никто не будет писать ядро системы рассчитанной на долгосрочный успех на васянском языке который может завтра сдохнет, пишут на взрослом развитом языке проверенном временем и опытом. В данный момент С++ уже давно такой, нет причин на нем не писать, кроме политического визга наймитов триллиардных еврейских фондов.
Аноним 26/02/25 Срд 17:11:01 3397800 100
>>3397736
Твой Пинус Трольвальдос Раст в свое говноядро тянет, а ты чего то до Крестов докопался
Аноним 26/02/25 Срд 20:02:48 3397928 101
17356500042620.jpg 292Кб, 1590x400
1590x400
>>3397760
>В данный момент С++ уже давно такой
А что там к лучшему с тех пор изменилось? Многие плюются от новых стандартов.

>>3397800
С++ хуже раста. Даже Троллвалдс это понимает.
Аноним 26/02/25 Срд 21:12:32 3397951 102
>>3397928
Кстати, сишка еще хороша тем, что облегчает интероп с другими языками. Так называемый lingua franca в программировании, который полезно знать.
Аноним 26/02/25 Срд 23:26:50 3398009 103
>>3397928
>Многие плюются от новых стандартов.
С++ мультипарадигменный, ничто не мешает в ядре установить правила, и ничто не обязывает писать по самому новому стандарту, я же кажется говорил, что ядро должно писаться на стабильном проверенном временем, это не хипсторская игрушка дрочить на обновления, а потом потыкал и бросил, читай руст, и ничего пидор проплаченный готов угробить ядро гнилью, а вот С++ - низя, нидопущу, ну конечно барину не надо, вот и кукарекает как болванчик, кукла сраная.
Аноним 27/02/25 Чтв 00:01:23 3398021 104
>>3386488 (OP)
В чем особенное отличие С++ от Си, кроме того что в С++ добавили ООП, то есть если я например возьму не GCC а G++ и скомпилирую код Си, будет ли какая-то разница в ассемблере?

Вообще если посмотреть на С++ со стороны глазами не профессионального программиста С++ выглядит как какой-то костыль когда код стартует с ФУНКЦИИ main, когда читая чужой год часто встречаешь какую-то мешанину из stdlib/io вместе с высокруповневыми библиотеками, и все это выглядит как какая-то мешанина, особенно позабавило как запихивают string в сишные функции которые принимают char* и там вродебы какой то костыль прикрутили в методы, типо string.tochar.
Аноним 27/02/25 Чтв 05:18:15 3398075 105
>>3398021
>кроме того что в С++ добавили ООП
ООП это цела парадигма, а не что то малозначительное
Аноним 27/02/25 Чтв 05:18:50 3398076 106
>>3398009
>готов угробить ядро гнилью
Оно изначально гнилое
Аноним 27/02/25 Чтв 08:22:02 3398103 107
>>3398021
>когда читая чужой год часто встречаешь какую-то мешанину
Как я понял С++ это и есть адская мешанина которой недоволен никто. Тем не менее, надо учить. Не вечно же на С красноглазить. Надо и к современным технологиям переходить. Может хоть работу найду
Аноним 27/02/25 Чтв 08:59:14 3398112 108
>>3398103
>Может хоть работу найду
Ооо, мнение безработного вкатуна по ЯП очень важно конечно
Аноним 27/02/25 Чтв 09:23:24 3398118 109
>>3398021
>как какой-то костыль когда код стартует с ФУНКЦИИ main
А как будет не костыль?
Аноним 27/02/25 Чтв 10:31:42 3398145 110
Аноним 27/02/25 Чтв 12:27:41 3398236 111
>>3398021
> костыль когда код стартует с ФУНКЦИИ main

В си тоже самое, чел.
Аноним 27/02/25 Чтв 12:49:16 3398251 112
>>3398236
>>3398145
>>3398118
>>3398112
>>3398103
Вы задолбали тут чатик устраивать. Когда код писать будете, балаболы? А ну быстро запилили драйвер на сишке до завтра к 14.00
Аноним 27/02/25 Чтв 14:10:31 3398303 113
Аноним 27/02/25 Чтв 14:12:25 3398304 114
>>3398236
Так Си функциональный, там это норма.
Аноним 27/02/25 Чтв 14:17:27 3398307 115
1740655022469.jpg 186Кб, 987x1886
987x1886
Аноним 27/02/25 Чтв 15:55:11 3398397 116
В чем претензия ко точке входа и почему это костыль, лол? Она есть у любого компилируемого языка как минимум. Да и чем предлагается ее заменить?
> if __name__ == '__main__'
как в питоне?
Аноним 27/02/25 Чтв 16:04:58 3398403 117
>>3397928
>Даже Троллвалдс это понимает.
Торвальдс ВСЕ.
Плюсы в своей время он просто не осилил, а сейчас ему уже на все похуй и он даже своей жопе не хозяин. Что барья из корпораций скажут, то и будет делать. От гениального руководителя куча крупных мейнтейнеров ушла за последний год, даже некоторые именитые растовики сьебались, лол. Про политическую возню даже говорить не буду.
Аноним 27/02/25 Чтв 16:23:34 3398415 118
1740662610596.png 26Кб, 1054x541
1054x541
Аноним 27/02/25 Чтв 16:42:01 3398433 119
>>3398415
Я понимаю, что это троллинг, поэтому все же хотелось услышать ответ от автора оригинального поста.
Аноним 27/02/25 Чтв 18:10:18 3398521 120
>>3398307

Если тебе так сильно хочется, то в аргументах линковщика ты можешь указать другую функцию, как точку входа, но как уже написали выше, не понятно, в чем тут вообще костыль.
Аноним 28/02/25 Птн 01:26:27 3398870 121
>>3398307
Ебать шиза. Си тред.
Аноним 28/02/25 Птн 02:17:46 3398878 122
>>3398870
Это между прочим сотрудник Intel
Аноним 28/02/25 Птн 04:32:19 3398888 123
>>3398878
Это соевый урод, тралящий тупостью интернет. Такого говна нынче как грязи, даже тараканов наверное меньше чем сральщиков в соцсетях.
Аноним 28/02/25 Птн 11:04:40 3398993 124
>>3398878
>Это между прочим сотрудник Intel
Я помню, мне как-то давно попадалась статья на хабре, где чел воротил какую-то дичайшую хуйню. Нашел, на какой ноге проца у ардуино 5 вольт и пытался от них запитать распберри пиай. То, что в даташите явно написано, что максимальный ток 90мА его вообще не смущало.
А потом он принялся писать какой-то "эмулятор провода", чтобы это все как-то работало.
В общем, за отсутствие понимания как электроника работает, его даже дети из радиокружка попустили бы.

Когда я статью читал, ей уже года четыре было. Я решил загуглить никнейм автора, нашел его соцсети. А он за это время в США переехал и в Интел устроился. Вот и думайте.
Аноним 28/02/25 Птн 15:20:24 3399199 125
Аноны подскажите по сабжу. Часто сталкиваюсь с тем что какая-то структура или переменная должна быть обработана в нескольких файлах, как организуют такие глобальные объекты? Использовать гетеры и сетеры как в ооп и передавать в них указатель? Или как то глобально объявлять переменную? Как вы решаете такие моменты?
Аноним 28/02/25 Птн 15:20:59 3399201 126
>>3398993
>Интел устроился. Вот и думайте.
Типа Интел не говно производят
28/02/25 Птн 17:21:32 3399307 127
>>3387030
Как я понял С лучший язык для новичка. Честно сказать кажется будто плохая идея начинать с этого языка. Эта страшная троица: С, С++ и С#
Аноним 28/02/25 Птн 17:32:57 3399322 128
>>3399199
Глобальные структуры передаются статическим функциям. Какие нах гетерысетеры в Си?
Аноним 28/02/25 Птн 19:15:56 3399386 129
>>3399322
Я имею в виду, как организовывать большие проекты на Си? Вот есть структура которая пишется и читается в куче файлов, как такие вещи организовывают? Потому что все говорят о том что "глобальные переменные это зло", но как без них организовавывают такое?
Аноним 28/02/25 Птн 22:52:18 3399486 130
>>3399386
>глобальные переменные это зло
>goto зло
Меньше долбоебов-кукаретиков слушай
Аноним 01/03/25 Суб 01:37:44 3399507 131
>>3397928
https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF
плюсы лучше раста, но раст пропихивает американская гебуха, а по патриотическому акту находящееся в юрисдикции американского суда лицо не имеет права даже сказать о том что его к чему-то принуждает гебуха без её разрешения.

так что гебуха говорит корпорациям - програмировай на расте. корпорации они же платиновые спонсоры linux foundation говорят яфинскому - програмировай на расте. сын одного финского коммуниста https://en.wikipedia.org/wiki/Nils_Torvalds учившегося в москве на кремлёвские деньги на это реагирует по принципу "партия сказала надо комсомол ответил есть".

вот и вся причина по которой раст барским сапогом забивают в холопьи жопы.
Аноним 01/03/25 Суб 02:37:11 3399517 132
>>3399386
Кто все лол? Меньше таких всех слушай.
>>3399507
Это понятно. Но останься вопрос начальной причины пропихивания. Ну это же не голивуд куда гомолезбонегров квотировали.
Аноним 01/03/25 Суб 06:12:34 3399532 133
>>3399199
>структура или переменная должна быть обработана
1.
static_shluha.c -> static type_of_shluha _shluxa;
static_shluha.h -> bool static_shluha_put(...);
Через функции, чтобы не ебаться с многопотоком в вызывающем коде.
user_(1-1000).c -> static_shluha_put(...);

2.
shluhset.h -> shluha_1, shluha_2
user_(1-1000).c -> abstract_shluha_put(ПОКАЗЫВАЕШЬ ПАЛЬЦЕМ НА ИСПОЛЬЗУЕМУЮ);
Аноним 01/03/25 Суб 09:37:26 3399566 134
image.jpg 176Кб, 728x900
728x900
>>3399307
>Честно сказать кажется будто плохая идея начинать с этого языка
Говорят, что начинать с С - действительно плохо. Начинать лучше с Pascal.
Но я уже не вспомню почему. В С по-моему более гибкий синтаксис, соответствующей больше функциональной парадигме. Например, в С ты можешь спокойно написать
(A = B) == C + D
Новичкам обычно это выражение кажется лишённым смысла, так как "императивный полход" подразумевает последовательность команд, продедур, операций. А тут какая-то каша не понятная из операций. На самом деле если рассматривать это с парадигмы функции которые что-то возвращают, то тут всё просто:
Вначале выполняется "А = B", еоторая присваивает, B к А, и самое важное - сама эта операция превращается в выражение B, как функция. В паскале такого нет. В паскале присваивание A := B нельзя никуда запихнуть. А тут можно. Итого, "А = B" теперь имеет значение B , затем "B == C" даёт 1 или 0, Да. Как ты только что понял. В С нет никакого "логического типа bool". Тут всё близко к аппаратной основе, поэтому у нас есть только целые числа разных машинных слов, и флоаты с фпу. Поэтому B == C возвращает нам int, либо 1 либо 0. И к этому 1 либо 0 уже прибавляется D.
И такие конструкции вполне легально писать, и это считается нормой.
Например, типично
while( (int c = getc()) != EOF){
То есть вначале инициализируется "с" значкнием прямо из потока, а потом сразу же сравнивается с EOF.
Кстати, я сказал недавно что в С нет типа "bool". Так вот, не только его нет. В С вообще мало что есть. В С нет:
- массивов (даже одинарных!)
- операции возведения в степень
- строк
- модулей
Ты наверное подумал что я пиздабол, ведь как можно кодить на языке без массовов, в то время как С один из популярных языков? Так вот. В С есть "указатели на массивы". А самих массивов не завезли. Квадратные скобки [] - эквивалентны операциям адресной анифметики. Что это такое - ознакомишься позже, но суть в том что в С можно прибавлять числа к указателям (т.е. к адресам) и это будет означать "следующий адрес" , и таким образом и достигаются "псевдо массивы" из обычных типов. А когда хочется сделать двойной массив, на помощь приходит тип "указатель на массив", т.е. при помощи него можно смешаться сразу на пачку адресов. Вот такой мозгоеблей приходится заниматься сишнику, если он захочет сделать что-то прикладное.
На счёт строк - ещё проще. В С нет даже букв! Значения типа char тут равносильны типу byte в паскале - то есть это просто один байт. В одном байте, как мы знаем, помещается одна буква ascii. Функции стандартной библиотеки благо эту кодировку поддердживают, да ещё и на уровне синтаксиса одинарные литералы типо 'F' уместны. Так и получается что массив чисел от 0 до 255 - это и есть "строка". Но разумеется.. никто тебе не даст её так просто расширить или сложить, или что хуже - взять с ввода. Если вывести строку можно стандартной функцией printf("%s") где "%s" - это строка, во вводить её scanf хоть и физически можно но строго запрещено - в программе появляется уязвимость переполнения буфера таким образом. Дело в том что если у тебя строка 5 байт, а слово ты ввел 36 байт, то программа никого жалеть не будет и смело захуярит все 36 байт в твои 5 байт нарушив стек впизду. Правило очевидно "для ввода данных нужно заранее знать их количество"
Что ещё в С нет? Модулей. Да, в С каждый файл компилится сразу в обьектный или в исполняемый. #include тупо нещадно вставляет весь файл в твой проект. А заголовки .h - это просто "хак" прилуманный программистами чтобы избежать путаницы, которая и так появляется периодически.
Так что вот так как-то. Мне лично С понравился.
Аноним 01/03/25 Суб 10:20:16 3399586 135
>>3399566
По сути си по его устройству можно назвать прокачеными макросами для ассемблера?
Аноним 01/03/25 Суб 10:31:36 3399590 136
>>3399586
Ну, скорее нет. Но да, суть С в том что он низкоуровневый. У него чистый zero-runtume, т.е. он не тащит в компиляцию никаких своих библиотек и транслирует всё прямо в машинный код. Тем не менее, с точки зреня парадигмы он на ряду с паскалем, годится и для прикладного программирования. Универсальный язык получается.
Аноним 01/03/25 Суб 13:23:02 3399636 137
>>3399566
Вообще я когда только начинал изучать программирование, я первым попробовал Си, около 4 месяцев на него потратил и мне тогда показалось что во первых он очень сложный из-за указателей, отсутствия строк, арифметики указателей, малок/калок и всего веселого а во вторых было ощущение что написать настоящую программу на нем сложно из-за низкого уровня. И я начал как сдвгшный ребёнок прыгать в поисках "нормального" языка и мне каждый раз очередной язык бил по голове, это нельзя, то нельзя, это ошибка синтаксиса, это переполнение стека(рекурсия в питоне ага), половина вещей без си вообще не возможна и постоянно утыкается в то что делают какие-то костыли типо cython и другой хуйни. И вот спустя 1.5 года я опять здесь, я опять пришел к богу. Все что выше это интерпретаторы Си, пошло оно все нахуй.
Аноним 01/03/25 Суб 15:04:01 3399668 138
>>3399636
Двачую. Я правда ещё сам вкатун, и у меня обратное поведение. Я всегда с детства бросал кодить на первом же уроке пайтона, потому что я не понимал "а зачем все эти if-else, еще какая то аутическая срань. Возьмите да на языке схем сделайте все что нужно, и понятее и удобнее. Что за глупым каким-то бесполезным вещам нас учат". Учится программированию я начал вовсе не последних курсах унивеситета, когда начались микроконтроллеры, релейные схемы. Вот тогда уже был создан так сказать "лор" компьютерного знания. То есть стало отдаленно понятно, что из себя представляет железо, и как оно должно работать. После чего естественно пошел Паскаль, ассемблер и С.
Так вот, если Паскаль просто был не особо интересен ввиду довольно кривого синтаксиса, ассемблер мне показался довольно бессплодным в плане написания прикладных программ. Ну а С как-то затянул своим подходом. Говорят что в нем нетипичный синтаксис для языков тех лет, а мне он наоборот показался каким то догичным и понятным. Собственно, около года я на этом сраном С прокодил, и понял, что с такими знаниями я никогда в жизни работы не найду. Надо переходить на С++ потом на Python или Java где больше платят. В общем то пока что обучение С++ не задаётся - синтаксис кажется таким тупым и нелогичным, что вот порой думаешь, что кроссворды какие-то решаешь, а не код пишешь. Вроде как классы должны упрощать построение программы, но в итоге по несколько часов чешишь репу как это класс правильно сделать, чтобы не выскочило непредвиденных ошибок. И порой кажется что обычны С куда более предсказуем и понятен, чем С++ со всеми его наворотами.
Ну а Python с его производительностью вообще непонятно как может полноценно использоваться. Ладно если ещё нужно сделать то, для чего и предназначены скрипты: различные парсеры, обработка текста, сортировка, статистика, машинное обучение в конце концов. Но писать " прикладную программу" или игру на python? Зачем? Все ведь явно будет тормозить. У меня сложилось впечатление, что вообще не существует ни одного языка общего назначения помимо С.
Аноним 01/03/25 Суб 15:35:09 3399683 139
>>3399668
Есть момент, на С++ больше времени тратится на архитектуру программы чем собственно на саму программу что сильно дизморалит при разработке своих проектов в одиночку, я помню ситуации когда я просто бросал проекты потому что в один момент код становился просто ужасен и я не мог организовать программу, да это моя вина, я не осилил плюсы, но на си при организации проектов проблем в сто раз меньше, я как то создавая очередную 2d игрушку на плюсах поймал себя на том что я просто не хочу писать очередной класс и описывать ебаные ооп системы из-за которых полезного кода(который что-то делает) остается 50% остальное это ебаные абстрактные сальтомортале которые нужны только для того чтобы вызвать этот самый код. И это я писал на по принципу "Си с классами" а потом я посмотрел что такое настоящий С++ с шаблонами на шаблон, абстрактными класами, виртуальными методами и просто выпал в осадок, это же ад. Когда в C++ QT только у одного класса 100 наследников блять, это настоящий пиздец.

Во первых я слаб для плюсов, во вторых я не работаю программистом поэтому я не хочу ооп.
Аноним 01/03/25 Суб 18:12:08 3399763 140
>>3399683
Не, ну если в одиночку по фану что-то пилить, то можно и сишкой обойтись.
Аноним 01/03/25 Суб 18:30:52 3399774 141
Подскажите GUI фреймворк , библиотеку, функцию или как это называется? Для windows. Нужно что-то совсем простое и быстрое. Манипулирование пикселями в окошке, реагирование на курсор мышки. И всё. Минимум возможностей, но и код должен быть простой, понятный и красивый. Я новичок в этом. Сейчас пробую язык Processing, но это java и графика медленно работает.
Что хочу вообще? Написать симулятор распределения тепла, в объектах кубиках. Ну, просто цветные пиксели: красные движутся вверх, синие вниз. Перераспределение тепла от объекта к объекту и т.п. и т.д.
Вообщем, домашний долгострой, для изучения языка.
Хотя вот думаю, если код на С и выбранный gui фреймворм будет жуткий, то лучше останусь на Processing.
Аноним 01/03/25 Суб 18:39:19 3399782 142
Аноним 01/03/25 Суб 22:54:42 3399860 143
>>3399774
Про WinAPI и GDI уже сказали.
Всякие библиотеки для UI-шек говно ебанное и каждый пишет кто во что горазд.
Проще изучить DirectX или OpenGL и рисуй окошки через них, а для остального запили конечный автомат, который перехватывает сообщения(клава-мышь-таймер) от оконной процедуры.

Для твоего симулятора лучше всего подойдет писать все на пиксельном шейдере.
Если взялся писать на C, то лучше на OpenGL с библиотекой glfw. Минимум мороки и готовый фрейворк для конечного автомата.
Если совсем не хочешь связываться, просто запили минимальный рендеринг одной текстуры, которая будет транслироваться из удобного тебе массива.
Можешь и на DirectX, но он заточен на C++ и на C всякие ООПшные кишки не спрятаны под капот и придется в ручную с ними работать. А еще он более низкоуровневый чем opengl, отчего его сложнее освоить.
Аноним 02/03/25 Вск 06:48:24 3399930 144
>>3399860

Ну насчет dx/og я не согласен, все таки они больше для 3д, GDI для 2d графики намного удобнее, очень легко рисуются линии, круги, квадраты и все остальные базовые фигуры, не надо самому описывать внутренние системы для отрисовки этих самых примитивов, можно сразу же приступить к созданию своих виджетов.

Мимо >>3399782
Аноним 02/03/25 Вск 06:51:54 3399931 145
>>3399860
Но насчет мультиплатформености да, GDI уже не подойдет, кроме opengl ничего не остаётся.
Аноним 02/03/25 Вск 21:01:40 3400376 146
>>3399931
Мультиплатформа это чтобы на семерке и икспи работало. А линукс не мультиплатформа, а долбоебизм. Написание графических приложений под роутер иначе как даунизмом нельзя назвать, это не платформа настольных приложений. Если даже до такого додуматься не можешь, наверное стоит пойти нахуй из программирования, ну или продолжать инфоцыганить поносом из СМИ, всё равно код не пишешь, только попугаишь инфомусор как нейросеть.
Аноним 03/03/25 Пнд 14:16:25 3400647 147
>>3400376
>Мультиплатформа это чтобы на семерке и икспи работало.
Нищебродина, спокуху оформи. Такую мультиплатформу ты себе сам на помойке соберешь из отходов.
А линукс это удобная, современная и прогрессивная операционная система для компьютеров последнего поколения.
Аноним 03/03/25 Пнд 14:27:48 3400664 148
>>3400376
Не-не, линупс нахой не нужен. Я ибал писать под него. В новостях постоянно читаешь, как очередную программу героически переписаои на свежайший фреймворк. Я прям соболезную потери сил и времени затраченное на очередное (!) переписывание с гтк3 на ГТК4, с кути5 на кути6. Что там на очереди ?. При этом программа остаётся по сути той же самой, но на новом фрейворке и с новыми багами. А так же с новыми аппетитами на цпу и рам. Без слез не посмотришь, как эти бедолаги варятся в своей экосистеме да ещё и гордятся этим. Жесть просто. Как хорошо, что я вовремя всё это понял и спрыгнул с этого поезда.
Аноним 03/03/25 Пнд 15:24:55 3400696 149
>>3399590
>У него чистый zero-runtume, т.е. он не тащит в компиляцию никаких своих библиотек
libgcc
> и транслирует всё прямо в машинный код.
Как и хаскель. Причем простой оператор С может обернуться десятками команд.
Аноним 03/03/25 Пнд 18:13:22 3400856 150
>>3400664
Это еще цветочки, я на гитхабе наблюдаю обновление программ, консольная залупа, думаешь что там обновляется? Фреймворки? Нет. Библиотеки? Нет. Обновляется язык программирования.
>"Обновлен язык до 2.3"
>"Обновлен язык до 2.4"
>"Обновлен язык до 2.5"
И ко всему прочему, обновляет бот, и на каждое обновление, такой гордый релиз новой версии публикуется. Молодая, дерзкая, активная разработка ПО из 10, охуеть просто.

А ответ прост - имитация деятельности.
>Без слез не посмотришь, как эти бедолаги варятся в своей экосистеме да ещё и гордятся этим.
А чего им плакать, они довольны как коты обожравшиеся сметаны, имитируют работу, но за результат никто не спросит. Они и не хотят ничего делать рабочее, это же работать надо, труд, ответственность. Не, это не про сою, которая развлекается с кодом всю жизнь играя в показуху.
Аноним 03/03/25 Пнд 18:33:02 3400868 151
>>3399930
GDI легаси говно из бородатых 90-ых, когда графон на CPU рисовали. Оно тормозит даже при аппаратном ускорении, ибо реализация однопоточна и идет через еблю системных вызовов и постоянном переключении контекста. Рисовать графон несколько десятков линий и битмапов может и проще, но когда дело доходит по кастомного виджета, то становиться хуево.
И DirectX и OpenGL универсальны и в себе содержат фреймфорки для 2D графики и текста. Хотя зачем они нужны если есть шейдеры?
Аноним 03/03/25 Пнд 20:32:57 3400938 152
>>3400376
Хуя неосилятор бабахнул
Аноним 03/03/25 Пнд 20:36:41 3400942 153
>>3400868
Просто судя по тому что анон спрашивает он не имеет достаточно опыта, и отправлять его на OpenGl это а тем-более DX это в его случае 99% забрасывание своего проекта, щас он нарисует первый разноцветный треугол и охуеет.
Аноним 04/03/25 Втр 03:32:49 3401087 154
>>3400868
>>3400942
Я уже охуел. Такая большая портянка для одного треугольника? Нет, спасибо.
Аноним 04/03/25 Втр 05:31:44 3401100 155
Аноним 04/03/25 Втр 06:43:34 3401108 156
>>3401100
Пишут, что медленно. Вот, сколько теоретически ФПС выдаёт окно 800х600 в котором черно-белые пиксели в виде шума рисуются?
Аноним 04/03/25 Втр 07:51:31 3401123 157
>>3401108
>Пишут, что медленно.
Самое простое что ты можешь сделать, это рисовать свои точки в память RGB буфер, а потом его выводить сразу 30 раз в секунду как картинку или через GDI или GL. А еще лучше, реализуй это на JS + Canvas в браузере и не еби мозги.
мимо
Аноним 04/03/25 Втр 08:23:47 3401135 158
>>3401108
Вызов одной функции рисования примерно 5-10 тыщ тактов процессора + задержка памяти. В итоге выходит 12-30 микросекунд. При самом оптимистичном варианте у тебя около 80 тыщ вызове в секунду, если ты рисование в отдельный поток вынесешь. На практике же не более 50 тыщ вызовов в секунду.
Точки и линии довольно одинаково прожорливые как и отображение битмапа. Так что рисуй в массивы и отправляй на рисовку как спрайты.
По сложности это примерно как разместить два треугольника и натянуть на нею свою текстуру в opengl. В GDI тебе нужно заново создавать устройство, привязать к окну, создать контекст устройства и привязать к нему структуру, в которую входить битмап.
Аноним 04/03/25 Втр 11:15:58 3401262 159
>>3401123
>>3401135
Сейчас я использую Processing, как написал здесь >>3399774
И по быстродействию предложенное вами медленнее. Значит нет смысла переходить на С.
Аноним 04/03/25 Втр 11:59:14 3401321 160
>>3401135
>Точки и линии довольно одинаково прожорливые как и отображение битмапа.
Отображение битмапа бесплатное. А точки, линии и прочее зависит от того каким образом их рисуешь. Рисовать пиксели по алгоритму, будут дичайшие тормоза.
Аноним 04/03/25 Втр 13:02:42 3401408 161
>>3401321
Чтоб битмап отобразить, то нужно как минимум переключение контакта для обработка абстракции железки. Видеопамять бутылочное горлышко и оно создает главный тормоз. Так получается, что функции отображения битмапа стоят примерно так же как и рисовании линие или изменение одного единственного пикселя.
Аноним 04/03/25 Втр 14:43:22 3401544 162
>>3400696
>libgcc
Это если динамически линковать, то да, типа рантайм. Причём он уже в системе, загруженный сотней системных утилит и под капотом у каждой третьей прикладной.
Не, ну если кто-то принципиально против stdlib, то компиляй статически только те функции, что реально используешь. Или велосипедь свои. Запарно но выполнимо.
>простой оператор С может обернуться десятками команд
C не перегружает операторы, это тема плюсов.
Аноним 04/03/25 Втр 15:26:22 3401583 163
>>3400696
>libgcc
Gcc не является единственным компилятором С, более того, он не является каноничным.
>Как и хаскель. Причем простой оператор С может обернуться десятками команд.
Нет. Если простой оператор С превращается всего лишь в десять команд, то хаскел вообще делает другое: он вначале подрубает функции из стандартной библиотеки, и также выполняет сборку мусора. Хаксель ни разу не низкоуровневый. А С вполне себе. На С можно писать без стандартной библиотеки вообще, чисто как на ассемблере.
Аноним 04/03/25 Втр 15:51:22 3401593 164
>>3401408
Брехло, ты же никогда не писал ничего, тупой баран, ничего не понимаешь, только серешь инфомусором изображая ыксперда.
Аноним 04/03/25 Втр 16:10:59 3401614 165
>>3401583
>не является каноничным
Дико извиняюсь, а что есть каноничный компилятор? Portable заточенный под стандарт `69?
Аноним 04/03/25 Втр 16:44:09 3401639 166
Аноним 04/03/25 Втр 17:04:27 3401653 167
>>3401639
двачую
tcc -r batch-rename-files.c форева
но блин попробуй хотя бы calcurse через него собрать
Аноним 04/03/25 Втр 18:40:39 3401714 168
>>3401639
Охуеть, его 1 человек делал? Это реально? Насколько сложно реализовать компилятор, это же пиздец.
Аноним 04/03/25 Втр 18:54:59 3401721 169
>>3401714
Нереально, поэтому заброшенный бесполезный кал годный только для хеллоуворлда. Игрушка уровня тех хакерских соревнований делать графические демки не более килобайта в размере. Показать дебилам, те покудахтают "вау! крута!" и на том всё, уровень тиктоко-видосов.
Аноним 04/03/25 Втр 22:57:32 3401866 170
>>3399566
> массивов (даже одинарных!)
Формально таки есть, можно сделать же
int arr[] = {};
И arr будет массивом.
Аноним 05/03/25 Срд 08:34:38 3401949 171
>>3401866
Не будет, в си нет массивов, это просто еще один вид указателя обмазанный чуток сахарком. То же самое со строками, строк в си нет, это буфера байтов, чуток обмазанные сахарком. Заметь, буфера байтов, а не массивы, потому что массивов, как уже сказано, в си нет.
Аноним 05/03/25 Срд 09:18:44 3401966 172
>>3401949
Как раз arr будет статическим массивом, ты же сам только что признался, что для него и sizeof по-другому работает.

А почему нет строк? Есть же стандартная библиотека string.h

Я понимаю, что ты говоришь об структурах данных и о сопутствующих им методах, но на уровне железа это и будут те самые участки памяти в куче.
Аноним 05/03/25 Срд 09:38:02 3401979 173
>>3401966
>sizeof по-другому работает
Это не делает из указателя массив, указатель есть указатель.
>Есть же стандартная библиотека string.h
Поэтому сишники пердолят сырые литералы и буферы?
Вот в крестах есть std::string, все юзают, понятно как, а что с твоим файликом? Покажи как его используют и где. Ты же не считаешь что натравить какую-нибудь strlen(void*) на байтобуфер это строка?
Аноним 05/03/25 Срд 09:49:35 3401986 174
>>3401966
>А почему нет строк? Есть же стандартная библиотека string.h
Стандартная бибиотека С... Увы не "стандартная". Все функции в ней также написаны на С и предсталяют собой пердолинг с буферами. Как я уже и говорил, из-за этого некоторые функции запрещено использовать, так как они несут уязвимость переполнения буфера, а во время создания string.h никто даже не думал что найдется еблан которому зачем-то нужно будет переполнять буфер. В С++ вроде бы есть полноценные строки из настоящей "стандартной" библиотеки которая идёт в рантайм.
Аноним 05/03/25 Срд 09:49:37 3401987 175
>>3401979
А использование питона не отменяет использования ассмеблера и что?
Нет, делает, потому что sizeof возвращает количество байт, которое относится к массиву, а не максимальную длину машинного слова, ок-да? Да, сопутствующих методов методов нет для массива нет, но это статический массив в стэке, а не указатель.

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

Тебе надо, чтобы в заголовочном файле был typedef struct {char* str, int size;} string; или что? Я понять не могу.
Аноним 05/03/25 Срд 09:52:15 3401990 176
>>3401987
>Нет, делает, потому что sizeof возвращает количество байт, которое относится к массиву, а не максимальную длину машинного слова, ок-да?
Так тебе уже пояснили, что это достигается за счёт типа "указатель на массив". Т.е. в С можно указать на произвольное количество байт, причем сами эти байты не ведут себя как массивы в привычных языках, и массивами не являются даже чисто из определения.
Аноним 05/03/25 Срд 10:12:24 3402000 177
>>3401987
Ты дятел, троллишь тупостью, даже не понимаешь что такое тип. Вот в си есть тип int это число, пишешь a=123; и получаешь свое число, пишешь a+b и получаешь сумму чисел. Вот что такое тип. А что со строками или массивами? Их не существует, нет никаких строк и массивов, это лишь указатели на память. Ты не можешь сложить две строки, ты не можешь сложить два массива, это не типы. Работая со строками и массивами в си ты думаешь не о строках и массивах, а о байтах. Это байты, а байты не тип, это сырая память, машина.

Про определению типа невозможно выйти за его пределы. Ты не можешь выйти за пределы int, потому что это тип числа, нельзя выйти за пределы числа работая с числами, это абсурд. Если ты выходишь за пределы типа, это значит ты работаешь не с типом, а с системой ниже уровнем, то есть типа нет, ты бредишь, отыгрываешь тип которого нет у себя в воображении, это шизофазия.
дедушка 05/03/25 Срд 10:12:54 3402002 178
>>3401990
>не ведут себя как массивы в привычных языках,
Нет ошибки при выходе за границу.
Многомерная индексация ломается при передаче в функцию.
Вот и всё.
> и массивами не являются даже чисто из определения.
Определение массива хоть на вики прочитай.
Аноним 05/03/25 Срд 10:24:25 3402008 179
>>3402002
>Нет ошибки при выходе за границу.
>Многомерная индексация ломается при передаче в функцию.
Так это уже о многом говорит. Ещё нет ключевого слова array как во многих языках. Потому что такого типа как "массив" нет в С. Поведение квадратных скобочек [] аналогично поведению операции разыменовывания. Сказать что в С есть массивы, это всё равно что сказать "В С есть ссылки" и привести в качестве ссылки - указатель. Потом можно ещё больше дристануть и сказать "в С есть классы" - и привести в пример структуру с указателем на функции. Ну уж нет. С не предусматривает ни ссылок, ни классов, ни массивов. Однако для простоты можно сказать "масссивы", как мне неоднократно говориои " попробуй передать значения по ссылке" - явно имелось ввиду что по указателю, ссылок то в С нет.
Аноним 05/03/25 Срд 10:33:02 3402014 180
image 44Кб, 806x436
806x436
image 37Кб, 747x713
747x713
>>3401990
Ладно.
>>3402000
В языке типы есть, но на уровне железа это всё равно байты в памяти, ими можно манипулировать как хочется. если язык позволяет.
Аноним 05/03/25 Срд 10:39:09 3402017 181
image 28Кб, 523x384
523x384
>>3402014
Хотя пусть даже так будет. Оно наверное даже по-разному обработается или чепуху выведет, а не содержимое str...
Аноним 05/03/25 Срд 10:42:22 3402019 182
>>3402008
Гы-гы-гы, угадай на основе чего реализованы ссылки в плюсах.
Но спорить не буду, механизм классный.
Аноним 05/03/25 Срд 10:49:08 3402026 183
>>3402017
>>3402014
Я же не спорю, что в стандарте Си нет именно строк и векторов как структур данных.
Но это фича, Си минималистичен и гибок.
Аноним 05/03/25 Срд 16:04:00 3402314 184
>>3402026
>Но это фича, Си минималистичен и гибок.
Фича фичей, но не будь дауном пердолящим сырые сишные строки, кончается это очень плохо, коррупцией памяти с непредсказуемым результатом. У меня есть программа работы с текстом написанная лоулевел-дебилом, она падает, может раз в день или даже раз за разом, а может год не падать, вот и сиди думай что там не так. Аналогично с массивами являющимися такими же указателями как строки. Самый верный путь обсёра - пилить на сишке эти математические задачки которые так любят в шкалках, типа "сортировка массива". Игра в сапера, один неверный шаг и подрыв.
Аноним 05/03/25 Срд 16:24:21 3402328 185
>>3402314
Вим и емакс написаны на ассемблере и Си. Что-то не замечал, что они часто падают.
Аноним 05/03/25 Срд 16:54:16 3402376 186
>>3402314
> меня есть программа работы с текстом написанная лоулевел-дебилом, она падает, может раз в день или даже раз за разом
Ну, потому что дебил неправильно сделал программу.
Я вот на С++ пытаюсь перейти, и не понимаю в чём суть: дроч со строками и с памятью остался. А поведение стало более непредсказуемым. Если твой С-шный код лего отдебагать и выяснить в какой момент происходит ошибка, то С++ код это какой-то говняк, в котором половина всего происходит на уровне компилятора, и нихрена не понятно что куда должно пойти.

А если брать python - то там очевижно производительность низкая, да и в бинарнико по нормальному не откомпилишь.
Аноним 05/03/25 Срд 18:13:17 3402415 187
Аноним 05/03/25 Срд 18:29:46 3402423 188
>>3402376
Питон это вообще не язык. Питон, java, Lua там всякие..
На C++, C#, ASM, и даже на Bas и Pas'e пишешь код и получаешь готовый продукт.
Ну что это за языкы , если для запуска творений написанных на этих языках, необходимо тщательно организовать среду выполнения (окружение так называемое) . Потом надо убедиться есть ли трансляторы этих языков на ПК (питона транслятор , джавы и т.д). Потом что-то там скомпилировать через ёбаный в рот и с божьей помощью, через какое-то консольные команды. А потом выясняется, что под эту платформу код не подходит. А писал на 32й машине, но запустить надо к примеру на 64й.

Вы извините меня за грубость конечно же, но и накипело просто.
Меня убивает главный лозунг джавы
"Напиши единожды и запускай везде"
Да нихуя это не так. Там ебля жёсткая будет если даже с разных Винд будешь байт код запускать.
Там весь код нахуй переделывать придётся.в чем смысла тогда этой ихней мультиплатформенностм?!
Я тогда лучше буду на ассемблере писать. Один хрен как и там придётся под каждую платформу переписывать код, так зато я на голом железе буду код делать высокоскоростной, чем на тех «мультиплатах» которые нихуя не мульти на самом деле и к тому же интерпретируемые.
Аноним 05/03/25 Срд 18:33:43 3402426 189
>>3386589
А да, ещё по Линуксу.
Эх Линукс Линукс.. (ниже буду метафоры использовать)

А какой смысл вообще овладевать Линуксом? ( не важно на низком уровне / или на высоком уровне). Какой в этом смысл если это мёртвая система. Ну ок пусть не мертвая но сугубо «Островная» ОСь не имеющая связи с материком.

Если и овладевать Линуксом на очень хорошем уровне, то надо сразу же первым делом софт писать начинать для него. Моё мнение. Чтобы он постепенно приобрёл «связь» с материковым миром.
Материковым миром я называю софтовую экосистему где Word'oвские файлы открываются хорошо (одинаково) у всех пользователей на любых машинах, директивы одинаково выглядят, приложения легко протираются. Или чтобы хотя-бы исходные коды компилировались и запускались и там и там без проблем.
А Линукс ну хз.. Реально остров какой-то сделали непонятный. В далеке от материка.
И ладно бы если этот остров начали заселять и развивать, но нет же сука. Рядом ещё Островок поменьше сделали. И ещё рядом. И в итоге островков наебенили кучу. И все полудикие в итоге.
Аноним 05/03/25 Срд 18:41:54 3402437 190
А вообще мне нравится философия Линукса. Хотя я больше провёл времени за чтением статей про Линукс чем за просиживанием штанов за своей Убунтой ( поскольку все-же предпочитаю свой второй более древний комп с windows 7).

Но он сырой же , ваш этот Линукс. Ну чувствуется же
Аноним 05/03/25 Срд 18:43:40 3402438 191
>>3402426
>Материковым миром я называю софтовую экосистему где Word'oвские файлы открываются хорошо (одинаково) у всех пользователей на любых машинах
Что за бредятину ты несёшь? Я думал ты сейчас зайдёшь с козырей, начнёшь рассказывать что в ентерпрайсе используют windows server, и админ винды - намного более образованный человек чем рукожоп на линупсах. Но нет, началось "пук серьк, а на моём линуксе 1С предприятие не открывается!!! это што получается линух - не актуал". Твой вонючий ворд и 1С - не актуал. А на libreoffice всё отлично работает.
Аноним 05/03/25 Срд 18:48:53 3402440 192
>>3402438
Нет Линукс не не актуал
> > на моём линуксе 1С предприятие не отурывется, это што получается линух - не актуал".
Нет, дело не в актуал или не актуал.
Идея Линукса хорошая. НО он просто СЫРОЙ.
Понимаешь. Их много очень просто и вместо того чтобы оставить 2-3 разновидности Линьки и довести их до ума, их наплодили несколько десятков.
В этом вся проблема.
Аноним 05/03/25 Срд 18:53:57 3402446 193
>>3402440
> НО он просто СЫРОЙ.
Какой впизду сырой. То что на линуксе нет 1С и нескучных обоев - это проблема только твоей больной головы. Сырой блядь... А вот если заменить линукс полностью на винду то не сырой. Траву потрогай.
Аноним 05/03/25 Срд 19:53:07 3402480 194
Аноним 05/03/25 Срд 19:55:17 3402483 195
>>3402440
Это фича, а не баг. Комуто убунта, а кому-то арч. А не как барин за всех решил, то и жрите.
Аноним 05/03/25 Срд 20:05:24 3402491 196
>>3402480
Тем более. Хз что "недопиленного" в линукс. В линукс наоборот, есть "искажённое" и "перепиленное". Например, я адепт того что по-умолчанию в unix-like системах не должно быть видеоядра, только сонсоль. И это не какая-то дань традициям, просто вот юникс он сделан под консоль. Графика там тоже есть, но пытаться впихнуть графику в ядро - это какое-то бесполезное подражание шиндовсу. Зачем? нужен шиндовс - сиддите на шиндовс. У юникса свой путь, своя философия.
Аноним 05/03/25 Срд 21:07:55 3402536 197
>>3402446
Я терпеть не могу кстати эти ваши нескучные обои и эти анимированные курсоры.. у меня на всех компьютерах дома стиль оформления win98. Щас сфоткаю рабочий стол свой и оформление компа
Аноним 05/03/25 Срд 21:10:20 3402540 198
>>3402536
Я всё понимаю, Си и юникс связаны, но давайте без этой хуйни, пожалуйста.
Аноним 05/03/25 Срд 21:15:41 3402545 199
>>3402483
Нет, должно быть не так бро. Должно быть так : это Линукс! А вы уважаемый пользователь может собственноручно его под себя настроить. Хотите, можете подружить свой Линукс с такимто пакетным менеджером, хотите можете с другим и т д.
А не как на самом деле. Вот есть Линукс к примеру а он для таких то целей предназначен, есть Линукс та он для таких целей предназначен, есть Линукс ли он для тестирования безопасности, а есть ещё Линукс для музыкантов к примеру.
Эта хреновая концепция. Должно быть как в Винде . Это Линукс Линукс, он для чего угодно, он чистый, стоковый, девственный. А какие программы вы туда поставите тем и будете, хотите музыкантом станьте, хотите криптографом, хотите врачём, хотите программистом.
Вот так должно быть
Аноним 05/03/25 Срд 21:16:40 3402547 200
>>3402540
Ладно извини. Хорошо
Аноним 05/03/25 Срд 21:27:34 3402553 201
>>3402545
Ну и какие проблемы? Поставил себе в арч LMMS и ты уже еба диджей, поставь криту - ты уже еба художник.
Аноним 06/03/25 Чтв 10:54:12 3402776 202
>>3402545
Двачую. Существование нескольких ПАРКЕТНЫХ МЕНЕЖЕРОВ со своими репозиториями - это уже шиза.
Аноним 06/03/25 Чтв 11:02:51 3402777 203
>>3402776
Ты дурак? Дистрибутив = репозиторий = свои мейнтрейнеры. Если бы была одна репа, то небыло бы 100500 линуксов. Все должны подчиняться красношапке или Шатлворту и жрать корпоративные анальные зонды убунты?
Аноним 06/03/25 Чтв 11:11:44 3402781 204
>>3402777
Софта под Линупс нет, так что по хуй. Будущее за тонкими клиентами.
Аноним 06/03/25 Чтв 11:16:01 3402784 205
>>3402781
Будущее за тивоизаций линупса и превращение его в прошивку для тех самых анальных зондов.
Аноним 06/03/25 Чтв 11:49:22 3402806 206
>>3402784
>превращение прошивки в анальную прошивку
Велика разница, и если начистоту, уже анальная прошивка, делают корпорации для корпораций, чем не анал.
Аноним 06/03/25 Чтв 11:49:59 3402807 207
>>3402784
>превращение его в прошивку
Для такого нужны RTOS, а высер Пиунса Трольвальдоса не нужен.
Аноним 06/03/25 Чтв 12:05:27 3402814 208
>>3402806
>чем не анал
Тем что еще живы дебианы с арчами. Но тенденция такова что опенсорс загнется рано или поздно. Причины в том что корпорациям станет нвыгодно опеносрсить из-за иишки
1) Сокращения ит штатов - нехватка рук
2) Увеличение веса ad hoc решений генерированых иишкой - они по определению не могут быть переиспользованы где-то еще
3) Деквалификация уволеных айтишников, которые не смогут корпоративные решения мейтенить в опеносорсе.Те больше вопросами выживания будут заняты, чем поддержкой свободного софта.
4) Недоступность мощного ии вне корпораций. Опять же корпораци будут внедрять технологии, которые за их пределами никто не поймет и не сможет адаптировать.
Аноним 06/03/25 Чтв 12:10:46 3402819 209
>>3402814
>иишки
проораунькал с иишизика
Аноним 06/03/25 Чтв 12:18:11 3402825 210
>>3402819
Зарыть голову в песок тоже не очень умная стратегия. Вы щас визжите что llm-ки не станут ии, как раньше визжали что не может быть летательных аппаратов тяжелее воздуха.
По мне так правый поворот в мире, очень кстати по времени сочетается с желанием заменить людей везде и всюду. Корпорации будут рыть в этом направлении еще долго, потому что разочаровались в возможности управления людьми.
Аноним 06/03/25 Чтв 12:27:26 3402829 211
>>3402825
Ну так если ты не понимаешь как это работает, то это твои проблемы, хорошо что тебе фокусников в цирке мамка еще не показывала.
Аноним 06/03/25 Чтв 12:34:10 3402831 212
>>3402829
Ты конечно больше понимаешь, но не можешь понять что прогресс не стоит на месте. Первичны не технологии, а первичны идеи. В данный момент истории - желание заменить человека. Откуда стала форсится идея что у челов нет свободы воли? Оттуда что дяди в пиджаках решили, что человек - тоже стахостический попугай, а раз тоже самое, то зачем платить больше. Можно заменить на железного стохастического попугая.
Аноним 06/03/25 Чтв 12:38:54 3402834 213
Аноним 06/03/25 Чтв 12:39:54 3402835 214
Аноним 06/03/25 Чтв 12:51:26 3402847 215
на это вашей Си вообще есть вакансии для джуниоров?
Или фриланс?
Аноним 06/03/25 Чтв 13:14:02 3402875 216
>>3402847
>вакансии для джуниоров
В токаря пиздуй
Аноним 06/03/25 Чтв 14:00:45 3402919 217
>>3402847
В треде сидят два-три Сишных джуниора, ты не один их них.
Аноним 06/03/25 Чтв 14:14:01 3402936 218
>>3402919
У тебя явные проблемы с логикой.
Я спрашивал есть ли вакансии для джунов и фриланс.
Аноним 06/03/25 Чтв 14:16:26 3402939 219
>>3402936
Нет вакансий для джунов больше нет. Два сидящих здесь джуна все оставшиеся вакансии закрыли.
Аноним 06/03/25 Чтв 15:33:52 3402998 220
>>3402936
>>3402936
Сишники самые низкооплачивамые даже до кризиса АйТи были, а сейчас и подавно.
Аноним 06/03/25 Чтв 16:15:58 3403015 221
>>3402831
>форсится идея что человеки не нужны
>прогресс
Значение знаешь? Сам понял что спизданул?

Маня, проснись и просрись. Если форсится идея что "человеки не нужны", это банальная атака. Кто-то уничтожает своих врагов, только и всего. Прогресс это развитие человека, а не его самоубийство. Самоубийств вообще не бывает, это абсурд, бывают только убийства, в том числе и непрямые, когда жертву убеждают убить себя. Но какая разница, это всё равно что взять и застрелить, просто используется другое оружие, не огнестрельное, а психологическое.
Аноним 06/03/25 Чтв 17:19:07 3403051 222
>>3403015
А теперь прочитай определение киберпанка.
Аноним 07/03/25 Птн 13:25:36 3403595 223
image.png 6Кб, 402x287
402x287
по моему запрет этой операции противоречит самой идеи си
Аноним 07/03/25 Птн 14:17:30 3403631 224
image 90Кб, 1220x725
1220x725
>>3403595
откуда компилятор ебёт что с твоими структурами делать? Руками допиши, там работы на миниту.
Аноним 07/03/25 Птн 14:26:30 3403636 225
from: >>3403631
mailto: >>3403595

А это я ещё не ел, пиздец, такие как ты не заслуживает пищи, почему я должен перебиваться с хлеба на воду, пока такие твари как ты жрут мяса? Тварь ты ебанная.
Аноним 07/03/25 Птн 14:30:24 3403642 226
>>3403595
В чем противоречит? Применение побитовых операций к высокоуровневым объектам? Нахуя?
Аноним 07/03/25 Птн 14:38:20 3403646 227
>>3403631
берёшь и применяешь сложение к каждой паре битов, ебать компилятор никого не должен
Аноним 07/03/25 Птн 14:39:40 3403649 228
>>3403646
Тупой ты пидор, а если размер структуры превышает размер регистра? Он за тебя должен цикл создать, где к каждому байту применит побитовое сложение? Иди нахуй, пидор.
Аноним 07/03/25 Птн 14:42:41 3403653 229
>>3403649
> Он за тебя должен цикл создать, где к каждому байту применит побитовое сложение?
ну да, логично, почему нет
Аноним 07/03/25 Птн 14:44:21 3403656 230
>>3403653
Иди пользуйся трансформерами, Си не для тебя.
Аноним 07/03/25 Птн 14:46:15 3403658 231
>>3403656
я кроме си ничего не знаю
Аноним 07/03/25 Птн 14:47:04 3403660 232
>>3403658
Иди нахуй, ты не заслужил есть мясо.
Аноним 07/03/25 Птн 14:47:33 3403661 233
Аноним 07/03/25 Птн 14:51:51 3403667 234
>>3403658
Нихуя ты не знаешь Си, если бы знал, то не писал бы подобную чепуху, ты не заслужил потреблять углеводы и протеины, ты тварь поганная.
Аноним 07/03/25 Птн 14:52:37 3403668 235
>>3403667
ну ладно извините я ухожу
Аноним 07/03/25 Птн 18:40:11 3403872 236
vanomas.gif 3518Кб, 640x640
640x640
>>3402835
Эххх.. феназепама бы.. или прегабалина. но мне не продают без рецепта.

>>3402847
Нет конечно. Вообще 0. Я больше скажу, в С++ практически нереально вкатится, не то что в С ебаное.

С - это чисто для души. Если нужна работа - жава, пайтон, 1С.

>>3403595
А что такое "идея С". Помоему, в С вообще использовать структуры - это зашквар. Их используют редко, и чисто по делу. Структуры - это к С++. В С принято выёбываться адресной арифметикой, и байтоёбствовать. Поэтому правильнее было бы реализовать двойной массив а и б.
Аноним 07/03/25 Птн 20:03:53 3403932 237
Аноны, делаю мини игру из system shock 2, по сути сапер. Никогда не показывал никому свой говнокод, но понимаю что без указаний на ошибки или какие-то недочеты сам не буду расти, прошу не закидывать говном сильно, это по сути мой первый полноценный проектик на Си.

https://github.com/hezenberg/Swinekeeper
Аноним 07/03/25 Птн 20:06:09 3403933 238
>>3403932
Не обращайте внимание на моменты где нет комментариев или указаны неиспользуемые типы, я ее еще не доделал, но основа уже готова, остается дописать gamelogic и в общем то все.
Аноним 07/03/25 Птн 20:21:33 3403940 239
>>3403932
>что без указаний на ошибки или какие-то недочеты сам не буду расти
Предлагаешь анонам вникать в твой код и искать ошибки? Неси кусок пообсуждем, ну и скриншоты игры на гитхабе выложи
Аноним 07/03/25 Птн 20:27:31 3403942 240
>>3403940
Окей, я думаю что тогда не стоит
Аноним 07/03/25 Птн 20:35:11 3403946 241
>>3403942
Дип-сику скорми, зайчик, он быстрее сделает, чем мы :0
Аноним 07/03/25 Птн 20:35:50 3403948 242
Аноним 07/03/25 Птн 20:37:13 3403949 243
Аноним 07/03/25 Птн 20:39:04 3403950 244
>>3403946
У меня нет проблем с отладкой, код работает как я задумывал, я принес обсудить в общем моменты проектирования, правильного использования тех или иных инструментов и т.д. Тут люди с опытом может объяснять что-нибудь или укажут что нужно исправить, какие у меня есть недочеты.
Аноним 07/03/25 Птн 20:39:28 3403952 245
>>3403949
Бездушная машина, не хочу. Такое только с людьми обсуждать.
Аноним 07/03/25 Птн 20:47:12 3403958 246
>>3403932
Ну и хуле ты высрал? на чём работает твоя говно-игра? какой-то кал. пару строк - и говно.
Аноним 07/03/25 Птн 20:48:18 3403960 247
Аноним 07/03/25 Птн 20:53:37 3403962 248
>>3403960
Т.е. он захадкоден. Т.е. На FreeBSD я твою хуйню посмотреть не могу. Ну тогда открывай рот, лови мочу, хуле сказать. Либо делаешь для BSD и топовые адепты опенсорса тебя оценивают - либо терпи попуски. Извини, жЫзнь такая :(
Аноним 07/03/25 Птн 20:58:13 3403965 249
>>3403962
Я не автор проекта.

А как это сделать? Это надо на Qt делать получается? Он, вроде бы, кроссплатформенный.
Аноним 07/03/25 Птн 21:03:52 3403968 250
>>3403962
В общем счете да это только для windows, писать для линукса и ему подобных никакого интереса, к сожалению там нет полноценного единого графического API у системы. Нет так нет, в любом случае.
Аноним 07/03/25 Птн 21:05:31 3403970 251
>>3403965
Да, через костыли в основном, как и все там.
Аноним 07/03/25 Птн 21:07:26 3403973 252
>>3403965
>А как это сделать? Это надо на Qt делать получается? Он, вроде бы, кроссплатформенный
Хотя бы сделай обёртку для своей хуйни. Вот я сделал на С. Обрати внимание на модуль IO. В зависимости от того что ты подключишь io_xlib или io_winapi у тебя то и будет!!
https://github.com/drvptr/CrimewareRender

>>3403968
>писать для линукса и ему подобных никакого интереса
Ну тада диннах. Чё мне твоё говно под свиндус тестить.
Писю пасаси патом праси азаза.
Аноним 07/03/25 Птн 21:09:48 3403976 253
Аноним 07/03/25 Птн 21:10:59 3403978 254
>>3403968
Окошки рисовать != графическое апи. Зачем тебе системные контролы в игре? Ты где с этим игры видел? В линупсах есть sdl есть вулкан, возьми высокоуровневую обертку для этого. Какое тебе еще надо единое?
Аноним 07/03/25 Птн 21:11:35 3403979 255
17413680883914.png 1410Кб, 1280x1280
1280x1280
Аноним 07/03/25 Птн 21:13:09 3403981 256
Аноним 07/03/25 Птн 21:13:24 3403982 257
>>3403973
Почему ты в другом проекте используешь статические функции?
Аноним 07/03/25 Птн 21:16:16 3403984 258
>>3403982
Вчмысле? Не использую. Их и не возможно использовать. Статические функции в С означают что ты их не можешь использовать в других модулях. И логика кода как бы подразумевает, что если есть слово static - значит это не для тебя написано и не для таких как ты. А в .h такие функции даже не регламентируются.
Аноним 07/03/25 Птн 21:23:02 3403991 259
Ебать у вас тут шиза и дурка
Аноним 07/03/25 Птн 21:25:00 3403992 260
>>3403991
Это называется рабочая атмофэра ваще-то
Аноним 07/03/25 Птн 21:29:30 3403994 261
1741372133165.jpg 413Кб, 1080x2340
1080x2340
>>3403984
Да я про это.
Почему, кста, не использовал быстрое возведение в степень?
Аноним 07/03/25 Птн 21:33:59 3403997 262
>>3403872
Так в плюсах та же адресная арифметика.
Да и в остальных ЯП тоже, даже в питоне индексация массива с нуля.
А вот в Паскале по массиву с единицы ходят :)
Не люблю Паскаль
Аноним 07/03/25 Птн 22:02:37 3404005 263
>>3403962
> На FreeBSD посмотреть не могу.

Все стабильно
Аноним 09/03/25 Вск 00:51:43 3404779 264
1741470702431.png 8Кб, 188x296
188x296
>>3403932
Залил скрин, если кому интересно, да выглядит как говно, но это пародия на говно с пикрила.
Аноним 09/03/25 Вск 02:21:06 3404794 265
>>3386488 (OP)
Родные, прошу, посоветуйте для C годных курсов на степике бесплатных, пожалуйста... Очень хотелось бы обучение начинать, теорию с практикой совмещая
Аноним 09/03/25 Вск 07:55:17 3404836 266
>>3404794
У Тимофея Хирьянова очень классный вводный курс по Си. Советую.
Знаю, что вопрос был про степик и задания, но всё равно.
Аноним 09/03/25 Вск 08:49:47 3404851 267
>>3404836
Анончик, спасибо !!!
Аноним 09/03/25 Вск 09:21:27 3404855 268
>>3404779
Мб к вечеру закину пул-реквест.
Аноним 09/03/25 Вск 10:04:39 3404875 269
>>3403997
>Да и в остальных ЯП тоже, даже в питоне индексация массива с нуля.
При чё здесь это? Сразу видно ты похожу нихуя кроме пайтона и не знаешь.
Аноним 09/03/25 Вск 10:14:11 3404880 270
>>3403872
А зачем си плюс плюсы структуры, если там есть их стероид версия в виде обьектов
Аноним 09/03/25 Вск 10:17:03 3404884 271
17411296125150.jpg 267Кб, 540x682
540x682
>>3403994
Этот фрагмент кода используется только для загрузки tga изображений. На тот момент я хотел сделать игру более независимой от любых библиотек (вдруг для условного tcc забвли math.h разработать). Он не используется более нигде, кроме загрузки изображений, поэтому на скорость рендера не влияет, ведь изображение всего раз пожгружается, а затем используется из оперативной памяти.
Аноним 09/03/25 Вск 10:35:36 3404898 272
>>3404880
В плюсах структуры и классы это практически одно и тоже. У них всего одно отличие. В классах данные по-дефолту private, а в структурах public.
Аноним 09/03/25 Вск 10:40:33 3404899 273
>>3404880
Структуры и классы буквально одно и то же, за исключением что у классов private по-умолчанию. В целом можно и в структуре сделать конструкторы и деструкторы, методы.
Структура нужна просто чтобы логически отделить, когда мы имеем дело с композитным типом данных, а когда с классом а ООП. Язык же он для человека в первую очередь, а не для компилятора.
Аноним 09/03/25 Вск 10:57:09 3404907 274
>>3404855
Не закину, вообще не понял твоих идей. Походу легче будет с нуля написать.
Аноним 09/03/25 Вск 11:07:08 3404913 275
>>3403994
Вообще на счёт этого модуля, как ты понял он писался первым. Вначале идёт гора статик-функций. Эти функции используются только в самом зтом модуле (очевидно, ведь они статические, их линкер не индексирует). В файле .h перечисленны уже "внешние" функции, типо api. Они находятся внизу .с файла.
Там вначале по-моему идет
0.немного математики для этого модуля
1. Работа с разрядностью. Тут функции для конвертации пикселей от 8 до 48 битовой разрядности. В конечном итоге в памчти всё в 32 разрядности хранится, просто потому что удобно по байтам доступ иметь типо 0xRRGGBBAA
2. По-моему дальше идёт описание самого формата tga. Тут структура из "заголовка", опционально палитра, сам канвас, и "подвал".
Тут реализованы функции распознавания типа изображения, функции импорта заголовочника, функции импорта канваса, функции для выделения памяти под всё это, в также удаления этой памяти. Функции для RLE сжатия итд.
3. Прикладная часть.
Вот тут уже чисто полезные функции. Не статические.
Импорт тга, экспорт тга, удаление тга из памяти, закрасить пиксель на тга, "взять" пиксель на тга, изменить порядок байтов RRGGBBAA -> AARRGGBB, изменить размеры картинки (билинейная интерполяция). Короче всё что можно использовать на практике.
Аноним 09/03/25 Вск 11:17:56 3404922 276
>>3404875
Наследие адресной арифметики, не?
Вообще, я с синтаксисом Паскаля(кроме указателей), питона(кроме ООП классов) и Си знаком.
Аноним 09/03/25 Вск 11:55:41 3404942 277
>>3404922
Хотя по поводу Паскаля обосрался, там индексация может быть и с нуля.
Аноним 09/03/25 Вск 13:13:07 3404978 278
>>3404922
>>3404942
> Паскаля(кроме указателей)
> питона(кроме ООП классов)
Да ты и не только в этом обосрался. Что ты о программировании знаешь вообще?
В пайтоне нет массивов, потому что там вместо массивов есть более удобные вещи типо списков, библиотек, итд, более высокоуровневая масштабируемая хуйня. В Numpy есть массивы, как отдельный модуль, но я уже и не знаю зачем он нужен если есть list.
В C++ есть как обычные Сишные "псевдомассивы", так и полноценные массивы std::array.
В паскале есть полноценный тип "array" то есть тупо массив как массив.
А при чём тут "с чего начинаются" массивы, я вообще в душе не понимаю к чему ты это спизданул. Пусть хоть со 100 начинаются. Что это меняет?
Аноним 09/03/25 Вск 13:39:11 3404992 279
Прочитал Кернигана и Ричи. Но не понимаю как программировать.
Аноним 09/03/25 Вск 13:42:53 3404994 280
>>3404992
А что ты хочешь запрограммировать? Давай помогу.
Аноним 09/03/25 Вск 13:48:47 3405001 281
image 8Кб, 922x47
922x47
>>3404978
Ну, разъебал, нечего добавить. Но в плюсах массивы и вектора всё так же базируются на псевдомассивах, можешь сам попробовать взять адрес первого элемента и вывести следующие за ним данные.
Или нет, вроде бы, в PascalABC индексация именно, что с нуля была
Аноним 09/03/25 Вск 13:49:34 3405003 282
Аноним 09/03/25 Вск 13:51:11 3405006 283
Аноним 09/03/25 Вск 14:02:49 3405019 284
>>3405001
Псевдмассивы должны быть в скобочках, а то доёбешься ещё, что реально считаю, что есть такой тип данных как псевдомассив.
Аноним 09/03/25 Вск 14:10:10 3405025 285
>>3405001
>всё так же базируются на псевдомассивах
И всё это в конечном итоге транслируется в машинный код. Так и запишем С++ = машинный код. Диннах, клоун.
Аноним 09/03/25 Вск 14:10:59 3405027 286
>>3404913
> Вообще на счёт этого модуля, как ты понял он писался первым. Вначале идёт гора статик-функций. Эти функции используются только в самом зтом модуле (очевидно, ведь они статические, их линкер не индексирует). В файле .h перечисленны уже "внешние" функции, типо api. Они находятся внизу .с файла.

А вообще есть какие-то паттерны как организовывать такое? Ну то есть взаимодействие между файлами, есть какие-то правила? Иди кто во что горазд?
Аноним 09/03/25 Вск 14:13:55 3405030 287
>>3405025
Ты язык ассемблер пропустил перед машинными кодами. Соси бибу!
Аноним 09/03/25 Вск 14:30:35 3405047 288
buttons.mp4 5612Кб, 1920x1080, 00:00:18
1920x1080
dollchan.mp4 5403Кб, 1920x1080, 00:00:17
1920x1080
image.png 123Кб, 1461x1143
1461x1143
>>3405027
А какие паттерны нужны?
Для ТГА подходит помоему очевидная "фабрика" т.е. у нас есть обьект TGAimage и операции над ними обучловлены.

У меня ещё были паттерны "стратегия" в модуле с кнопками gui. Дело в том, что я не знал как описать всё разнообразие кнопок, и решил, что пусть будет абстрактная структура gui_element, в которую можно набивать всякие свойства, и в зависимости от свойств она меняет поведение. Например вон, смотри, одна кнопка - перемещается за мышью, другая кнопка - закрывает программу, третья - ничего не делает. Тут как ты видишь, я скрестил этот функционал с паттерном "наблюдатель". Дело в том, что все элементы gui_element, они ещё и помещаются в список gui, и существует функция NotifyGui, которая все кнопки опрашивает на их ответ, в зависимости от текущего состояния кнопок/мыши итд.

Просто, в какой-то момент мне показалось что всё что я делаю - это уродство, и я решил забросить. Модули gui.c, animation.c - не сохранил. Хотя реализуются они довольно просто, я думаю если хочешь - запросто допилишь. Анимация сделана по всё тому же паттерну "фабрика". Есть у нас обьект "анимация" который ссылается на какую-то 3d модель (кстати, модуль 3d моделей в том же паттерне), и мы можем воспроизвести кадр анимации, изменив её внутреннее состояние в качестве побочного эффекта.

В render3d.c фишечки с call-back. Сомневаюсь что это тянет на какой-то паттерн, но решил добавить. Там же в отрисовке как линии так и треугольника присутствует "отработчик", т.е. то каким образом отрисовывать треугольник ты задаёшь call-back функцией. Вот на третьем пике: 1.сплошной, 2.градиентный, 3.рандомный, 4. Рандомный с прозрачностью. Это и позволяет в дальнейшем сделать текстурированный отработчик для отрисовки полигонов модели.
Аноним 09/03/25 Вск 15:06:11 3405063 289
image.png 23Кб, 800x600
800x600
image.png 29Кб, 800x600
800x600
image.png 48Кб, 800x600
800x600
image.png 57Кб, 800x600
800x600
>>3405027
Могу впринципе иерархию рассказать. В большинстве своём преобладает паттерн "фабрика".

I.НЕЗАВИСИМЫЙ УРОВЕНЬ.
-GRAPH/tgatool.c , можно вообще использовать самостоятельно, без всяких там других модулей. То есть можешь в отдельный каталог откомпилить tgatool и пользоваться им как инструментом для обработки tga картинок. Сам tgatool включён только в render3d, для того чтобы загрузить текстуру, и дальше елозить по ней, просто как по массиву памяти.

- IO/xlib_io.c Тоже можно использовать отдельно. Это просто обётки для стандартных функций xlib. Она описывает два обьекта - контролы, и "окно". Всё просто, окно - это в твоей графической оболочке какая-то область, на которой можно рисовать. КОнтролы - это клаво/мышь.
На окне можно рисовать.
Контролы можно "опрашивать" ожидая изменения состояния. (Точнее, опрашываются не контролы, опрашивается сервер, на наличие изменений, сам "тип" контролы обозначат состояние клавиатуры и мыши, т.е. в нём содержится массив по всем кнопкам и об их состоянии). Тут таже есть макросы типо "нажата ли кнопка".
Зачем эта херота нужна? Очевидно, чтобы инкапсулировать ввод. Теперь достаточно переписать этот модуль под винду, а обёртки функций останётся те же. То есть переписав этот модуль, вся ебучая программа портируется на Windows одним кликом!!! Все остальные модули не используют xlib, они используют только обёртки из этой функции, чтобы быть платформо-независимыми.

- GRAPHIC/algebra.с - тут даже никакого паттерна нет. Это просто чисто немного математических функций. Тут, конечно описан тип "вектор", который представляет собой массив из трёх чисел. Также описаны векторные операции, типо скалярное произведение, векторное произведение. Под вектором подразумевается только трёхмерный вектор. Двухмерных веторов у меня нет, посчитал их бесполезными. Собственно, этот модуль также можно использовать отдельно, он ни с чем не связан. Можно просто взять и начать использовать векторные операции где-то у себя в коде. Также тут реализован Fixed-point типо, т.е. числа с фиксированной точкой. Никакой скорости по сравнению с FPU он не даёт, зато смотри эффект (см скришоты) - типо погрешность, красиво.

II. ЗАВИСИМЫЙ УРОВЕНЬ

- GRAPHIC/wavefront.h - Парсер wavefront obj, 3д моделей. Также, "фабрика", есть тип "3d модель", её можно открыть, удалить, повернуть, передвинуть из неё отдельные точки, распечатать лог о модели, реканкулировать нормали. Для последних функций типо "повернуть" и "реканкултровать нормали" нужны вектора. Поэтому он зависим от модуля algebra.c.

- GRAPHIC/basics.c - тут описаны базовые примитивы для рисования. Как в паскалике на уроке "DrawLine, DrawRectangle". Исключение составляет лишь треугольник, как говорилось, треугольники требуют отработчика. Для тех кто не хочет ебать мозг есть макрос TRIANGLE(w,x1,y1,x2,y2,x3,y3,color) который использует стандартный отработчик default_plot (просто закрасить пикселы указанным цветом, без особенностей).
Данный модуль, к сожалению, зависим от IO/io.h. Ему для вывода необходимы какие-то функции вывода в окно. Я когда только разрабатывал, фантазировал сделать полносью независимый модуль который бы "рисовал ни на чём", а при подкрутке к нему графики рисовал бы графику итд. Но я не додумался как это реализовать и решил просто захардкодить. Кроме того, этот модуль поддерживает fixed-point так что если используются фикседы, то нужно и algebra.c подключеить. Впрочем, по-умолчанию тут на флоатах всё.

- GRAPHIC/render3d.c - Ну и финальный модуль, для его работы необходимо очевидно и algebra, и basics и wavefront_obj, да к тому же и tgatool.c в него включён. Собственно, в модуле описаны такие обьекты как "камера", и методы рендера. Сами модели тут не описаны, так как они уже были описаны в wavefront.
Камеру мы можем создать двух типов: перспективная, и ортогональная. Вроде всё очевидно. Схема работы такая: создаём камеру, инициализируем камеру, загружаем 3d модель, загружаем текстуру (при необходимости). И далее "фотографируем" нашу модель при помощи любой из следующих процедур:
RenderWireframe - отрендерить проволочную модель.
RenderZBuffer - отрендерить отдельно значения буфера глубины для данной модели.
RenderShaded - отреднерить плоско-затенённую фигуру
RenderTextured - отрендерить плоско-затенённую фигуру, со следующей текстурой.
RenderGouraud - отрендерить сглаженную по-Гуро обьект с текстурой.
Солнце тут захардкожено, настраивается макросом SUN, который представляет собой вектор. Т.е. чтобы изменить направление солнца - нужно изменить направление этого вектора.
Падающие тени отсутствуют.

РЕФАКТОРИТЕ!! (если хотите. если не хотите - то и пох)



-
Аноним 09/03/25 Вск 15:54:04 3405084 290
Аноним 09/03/25 Вск 16:35:44 3405120 291
>>3405084
А как надо то? Вот я сделал свою игруньку у нее архитектура говно, этот анон сделал либу, у нее ты тоже говоришь архитектура говно, я блять не понимаю как надо тогда.
Аноним 09/03/25 Вск 16:38:39 3405122 292
>>3405120
Я смотрю на код людей и он у них всегда разный, поэтому я вообще не могу понять как надо и как правильно, даже правил общих никаких вывести их этого всего не могу.
Аноним 09/03/25 Вск 22:10:20 3405472 293
>>3405120
>>3405122
я даже код не смотрел. по скринам вижу - говно
Аноним 10/03/25 Пнд 02:01:43 3405560 294
>>3403872
>в С++ практически нереально вкатится

Почему это?
Аноним 10/03/25 Пнд 02:06:11 3405561 295
>>3405560
Вакансий для джуниоров в текущих реалиях отсутствуют, может косвенно только через UE5
Аноним 10/03/25 Пнд 05:12:04 3405583 296
Что скажите про watcom/openwatcom?
Аноним 10/03/25 Пнд 10:08:45 3405684 297
Аноним 10/03/25 Пнд 10:57:00 3405720 298
>>3405063
Надо ещё переварить что ты написал, спасибо, поизучаем 😃
Аноним 10/03/25 Пнд 11:43:38 3405754 299
>>3403653
более того, s1 = s2 это буквально побитовое копирование одной структуры в другую, всего один шаг до побитового сложения
Аноним 10/03/25 Пнд 12:28:53 3405801 300
image 58Кб, 1722x426
1722x426
>>3405754
Блять, я обосрался, а ведь действительно...
С другой стороны одно дело байты скопировать, а другое сделать побитовую операцию для каждого числа, тут проблема в восприятии каждого отдельного поля. У компилятора Си и так проблема на уровне сложения безнакового и знакового, ТОЧНЕЕ UB, а тут структура с разными полями
Аноним 10/03/25 Пнд 13:26:17 3405849 301
>>3405801
А если сделать побитовую операцию через цикл?
Вот, допустим, известен размер структуры в байтах. Тогда можно взять адрес на объект структуры, привести его к char, а далее брать побайтово и совершать операцию с последующей записью назад.
К примеру:

struct foo{
int a;
long b;
char c;
};

int main()
{
struct foo o1={.a=21;.b=-6;.c=55},o2;
int s=sizeof(struct foo);
char
p=(char)&o1;
do
{
s=s-1;
(p+s)=~*(p+s);
}
while(s);
}
Аноним 10/03/25 Пнд 13:28:21 3405852 302
>>3405849
>(p+s)=~*(p+s);
Надо заменить на
p=~p
Аноним 10/03/25 Пнд 13:29:40 3405854 303
Аноним 10/03/25 Пнд 13:30:01 3405855 304
>>3405849
Да я более изящное решение уже писал >>3403631
Но опять же, проблема в том как компилятор должен воспринять твою просьбу, типо к каждому байту применить OR или к каждому полю? А если для элемента поля невозможен OR? Короче, тут проблема именно в компиляторах.
Аноним 10/03/25 Пнд 13:31:04 3405856 305
>>3405854
звёздочка(p+s)=звёздочка(p+s);

Кривой движок сайта не умеет работать с квадратными скобками и звёздочкой напрямую.
Аноним 10/03/25 Пнд 13:31:51 3405857 306
>>3405855
>Да я более изящное решение уже писал
Где?
Аноним 10/03/25 Пнд 13:39:00 3405861 307
>>3405857
Зная размер структуры можно не побайтово копировать, а по 2, 4, 8 даже, ибо размеры регистров позволяют.
Правда это и компилятор за меня сделает при -O2/-O3/-Ofast, но всё равно.
Аноним 10/03/25 Пнд 13:46:22 3405871 308
>>3405861
Я понимаю, что можно и по несколько байт, но для перестраховки я рекомендую сделать так.
Аноним 10/03/25 Пнд 13:52:33 3405875 309
Аноним 10/03/25 Пнд 14:07:05 3405886 310
image.png 120Кб, 455x412
455x412
Аноним 11/03/25 Втр 02:35:22 3406246 311
>>3403932
Бля ебать в натуре охуенная игрушка анончик. Бля залип прям.
Бля ебать в натуре братишка а можешь мне на Xbox портировать её?? Ни в заподло внатуре.. так хорошо в неё на большой Юм экране подрлбить и джойстиком бы..

А кстати да, ещё. Я видел у тебя в сорцах строки процедурной генерации изображений. RGB (128,0,0)....
Бля ебать внатуре нахуй надо чуть чуть исправить этот файлик. На (126, 2,2). Должно чуть чуть улучшить дизайн
Аноним 11/03/25 Втр 02:41:01 3406247 312
>>3403940
А вот я кстати вник!!
Бля ебать внатуре охуенный код нахуй. Вообще четенький код ебать..

Этож надо додуматься то:

if(flag == YOULOSER)
DrawText(hdc, "--- YOU LOOSER ---", -1, &looser_rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
if(flag == YOUWINER)
DrawText(hdc, "+++ YOU HACKER +++",

Бля ебать внатуре отдушина братишка. Ты талант! Не то шо эти rage и гта 5
Аноним 11/03/25 Втр 04:49:53 3406257 313
>>3406247
А как надо было? Делать 2 функции? Передавать число а не константу? Что не так тут?
Аноним 11/03/25 Втр 04:51:00 3406258 314
>>3406247
Передавать строку в параметр бессмысленно, там онли 2 состояния.
Аноним 12/03/25 Срд 02:20:54 3407116 315
В С нет смысла вкатываться? Нет работы?
Аноним 12/03/25 Срд 02:49:02 3407118 316
>>3407116
Работа есть, хоть и меньше, чем в популярных направлениях. В основном embedded, от микроконтроллеров до написания драйверов под Linux.
Очень желательна техническая вышка и начальные знания в схемотехнике, иначе выкатываться, наверное, смысла нет.
Аноним 12/03/25 Срд 07:17:52 3407154 317
>>3407116
Он пиздит >>3407118
Работы нет ВООБЩЕ. И точка.

Может на С++ пару вакансий найдется.
Аноним 12/03/25 Срд 08:46:28 3407191 318
output.mp4 5663Кб, 1920x1080, 00:01:40
1920x1080
Аноним 12/03/25 Срд 10:43:48 3407257 319
>>3407116
работы мало кому то в жизни?
Аноним 12/03/25 Срд 12:22:41 3407336 320
>>3407154
ты хоть бы на хх зашёл. В России с++ цветёт и пахнет, никогда не было столько вакансий.
Аноним 12/03/25 Срд 13:34:05 3407404 321
а как в хх искать вакансии на С?
Там же если вбить просто "с" то блядь все подряд находится.
Аноним 12/03/25 Срд 15:40:27 3407478 322
>>3407404
>а как в хх искать вакансии на С?
Пишешь блять "embedded разработчик", "программист микроконтроллеров", "freertos", "программист встраиваемых систем". Очевидно же, что С-программисты нигде больше не нужны, кроме как программировать RTOS/микроконтроллеры.
Аноним 12/03/25 Срд 17:58:31 3407573 323
Щас глянул ХХ, встраиваемая фигня си (контроллеры СТМ или пердуина примерно такой уровень) и питон (видимо приложухи) и линух, примерно такие требования, но зп конечно не фонтан. Где си плюс там выше зп, но и ебля очелла тоже выше
matousuto 12/03/25 Срд 19:32:04 3407635 324
аноны прогеры, всем ку. подскажите, зачем учить С и какие перспективы будут?
Аноним 12/03/25 Срд 20:12:42 3407667 325
>>3407635
Никаких перспектив. Для джунов вакансий нет, без опыта работы нет, только через связи.
Чем полезен? Более углубленной понимание устройства программы, работа с памятью, с АПИ вызовами ОСи, но если ты человек не глупый, то изучая любой язык это поймёшь.
Аноним 12/03/25 Срд 20:35:49 3407675 326
>>3407635
Ну в принципе выше написал что требуют: контроллеры, робототехника, драйверы, ембедед, в принципе много возможностей. Забыл добавить что риск и арм архитектуры нужно понимать немного, само железо.
Аноним 12/03/25 Срд 21:53:54 3407703 327
>>3407635
>зачем учить С и какие перспективы будут?

C это "лингва франка". Перспективы стать программистом на любом языке будут.
Аноним 13/03/25 Чтв 13:35:32 3407992 328
>>3407703

Лингва франка -- скорее уж JS.
Аноним 13/03/25 Чтв 17:17:25 3408117 329
>>3407635
Чтоб вкатиться в дивный мир байтоебства и ощутить анальное единение с духом машины.
Аноним 13/03/25 Чтв 22:01:47 3408273 330
Аноним 13/03/25 Чтв 23:06:07 3408304 331
>>3407635

>зачем учить С
Многим это не надо. Если ты студент по-настоящему технического направления(та же радиофизика, где вам надо программировать контроллеры) или собираешься в системное программирование или программирование драйверов, то нужны C++/C+алгосы+ассемблер. Если ты собираешься в фронтенд/бекенд, то достаточно js+php(может с натяжкой питон[сейчас иногда бек на нем желают]) и sql + умение работать с open server или чем-то иным заранее готовым и многим известным для разворачивания сервера.

>какие перспективы будут?
Зависит от тебя + ситуации на рынке. Но ситуация на рынке сейчас не очень радостная: питонистов и js'ников очень много, а C/C++ требует реального опыта работы со сложными вещами, куда новичков не берут.
Аноним 14/03/25 Птн 13:42:02 3408596 332
>>3408304
>C/C++ требует реального опыта работы со сложными вещами, куда новичков не берут.
Значит сикресты не требуются. Если бы требовались, брали бы без опыта и учили. Ведь даже дебилу ясно, что опыт не появится без работа, сначала работа и только потом опыт. Нельзя отказывать в работе требуя опыта наперед, это деление на ноль, фатальная ошибка C/C++.
Аноним 14/03/25 Птн 13:51:18 3408611 333
>>3408596
Это тебе очевидно, а кабан хочет все и сразу. Особо упоротые готовы год ждать принца и проебывать бабло на всякие рекрутинговые агенства, вместо того, чтобы за этот год обучить человека под себя.
Аноним 14/03/25 Птн 13:59:22 3408625 334
>>3408611
>готовы ждать принца
Это и есть не требуется. Если бы требовалось, не могли бы ждать. Когда не нужно, можно ждать сколько угодно кого угодно, манны небесной, всё равно похуй найдется или нет.

>кабан хочет всего и сразу
Смотри выше, ты сам себе противоречишь. Если бы хотели, да еще и сразу, брали бы на работу сразу. Не нужно, вот и не берут.
Аноним 14/03/25 Птн 14:26:08 3408654 335
>>3408625
В таких местах есть Вася, который тащит всю разработку. Кряхтит, пердит, жалуется, но тащит. Вроде как и надо найти второго разработчика в помощь Васе, а вроде как пока и так сойдет. Если Вася таки психанет и уволится, будет ОЙ ВСЕ, но пока еще Вася терпит и въебывает.
Аноним 14/03/25 Птн 14:29:46 3408657 336
>>3408596
>>3408611
Я думаю то что неподходят вкатуны, как минимум теорию знать, желательно глубоко, и ряд программ чтоб мог написать – буквально работа с массивами, сортировки и функции, ну и очевидно знание радиоэлектроники, схемотехники. Так же видимо основы электротехники.
Других причин почему не берут я не знаю, работал в сторону АСУТП там в электро службу берут кого попало, а оттуда перекатить в АСУТП и работать с низким уровнем реально, но там чаще другие языки, редкость чтоб на st кто то писал, чаще fbd язык и скада среды и что то типа овенов-ложиков и кодесисов. В принципе если очень хочется можно там себя реализовывать сколько влезет, к тому же сишка универсальная как инструмент по железу
Аноним 15/03/25 Суб 21:23:06 3409363 337
Здравствуйте, анончики, сегодня/вчера пытался улучшить свои знания по языку Си и узнал, что компилятор оптимизирует размеры полей структуры для попадания в кэш-линии. Конечно, этот механизм понял крайне поверхностно, но из-за этого родился вопрос.
Есть ли в треде работающие на бэке плюсов или чистого Си? Вот условно вам через протоколы самописные пришёл пакет с заголовком в виде структуры, каким образом бы парсите данные из заголовка, чтобы их нормально интерпретировать, ибо судя по всему это вещь и от платформы зависит, и от компилятора, который код и оптимизировал.
Аноним 15/03/25 Суб 21:58:45 3409392 338
>>3409363
Чел ну ты подумай. Ты знаешь размер чего то. Структуры своей. Все, большего не надо.
Аноним 15/03/25 Суб 22:04:29 3409395 339
>>3409392
Я знаю содержимое структуру, но не факт, что знаю размер структуры, его только компилятор знает точно.
Да вопрос скорее как парсить данные, ибо пустые байты могут в рандомных местах оказаться по сути между полями.
Аноним 15/03/25 Суб 22:20:09 3409410 340
image 49Кб, 795x616
795x616
image 60Кб, 849x700
849x700
>>3409395
Ну, условно так, если бы я не знал об оптимизации комплиятором, то я бы думал, что размер структуры 13байт и пытался бы парсить байты совсем иначе.
Аноним 15/03/25 Суб 22:27:47 3409420 341
>>3409410
>и пытался бы парсить байты
какие байты ты там парсить собрался?
Аноним 15/03/25 Суб 22:33:57 3409423 342
>>3409420
Окей, лежит бинарник, в который побайтово хранятся N структур, как правильно интерпритировать их, если мне неизвестно, что на той стороне не использовали макросы, которые отменяют упаковку компилятором данных?
Аргумент про то, что размер файл делиться без остатка на число N * sizeof(struct sample) можно рассмотреть конечно, но может там в конце данные остаточные о предназначении которых нам неизвестно.
Аноним 15/03/25 Суб 22:39:12 3409427 343
Вприниципе на си можно и веб писать главное захотеть.
Аноним 15/03/25 Суб 22:51:36 3409432 344
>>3409363
>>3409395
Размеры полей компилятор не меняет. Но каждое поле выравнивается в памяти на размер этого поля. Т.е. int16_t на 2 байта, int32_t на 4 байта и т.д. Между полями, если это нужно для выравнивания, компилятор оставляет дырки. В конце структуры, если нужно, компилятор тоже добавляет дырок до границы слова.
Размер структуры можно узнать с помощью sizeof.

#include <stdio.h>
#include <stdint.h>
struct
{
int8_t val1;
int16_t val2;
int32_t val3;
int8_t val4;
} my_struct;
int main()
{
printf("%li\n",sizeof(my_struct));

return 0;
}

Для 32-х систем размер структуры будет равен 12 байт (для 64-х битных может добавит ещё дырок до 64-х битного слова, точно не знаю.).
Эта структура будет располагаться в памяти так (дырки обозначаю нулями):
val1 0 val2 val3 val4 0 0 0

Никакого рандома в размещении дырок нет.

Можно сказать компилятору, чтобы он не оставлял дырок в структуре, для каждого компилятора это делается по разному. Для gcc используй __attribute__((__packed__))
Естественно, тогда снизится скорость работы со структурой и нельзя будет использовать указатели на поля структуры, т.к. они не будут выровнены на размер поля.
Аноним 15/03/25 Суб 22:54:10 3409434 345
>>3409423
>как правильно интерпритировать
А их тебе не нужно интерпретировать, кто хранит, тот знает в чем они
Аноним 15/03/25 Суб 23:05:58 3409443 346
>>3409432
Я не пониманию по какому принципу дырки ставятся.
Аноним 15/03/25 Суб 23:23:16 3409449 347
image 12Кб, 453x122
453x122
image 12Кб, 391x121
391x121
image 104Кб, 1775x744
1775x744
>>3409443
Я предположил, что ставится, что по памяти было удобно перемещаться по числам кратным двум, но если в структуре будет 3 байтовых поля, то он оставит без оптимизации. Сложно и не понятно.
Первый скрин это структура с упаковкой от компилятора, а второй без упаковки от компилятора.
Аноним 15/03/25 Суб 23:55:23 3409469 348
>>3409449
Каждое поле выравнивается в памяти на размер этого поля, а не на двойку. Начало структуры выравнивается минимум на размер слова.

В моей структуре val1 хранится в 0 байте структуре.
val2 занимает 2 байта, значит его нужно выровнять на 2. В 1 байт ставим дырку, байты 2 и 3 занимает val2.
val3 нужно выровнять на 4. Как раз следующий свободный байт в структуре - 4, записываем в байты 4,5,6,7 val3.
val4 выравнивать не нужно, т.к. он занимает 1 байт, записываем его в байт 8 (в данном случае совпадение, что val4 выровнен на 8).
Теперь занято 9 байт. Выравниваем размер структуры до размера слова добавлением 3-х дырок.
Аноним 16/03/25 Вск 12:26:02 3409607 349
>>3409469
Слово, которое в информатике "word" 2 байтовое? Или максимальная длина машинного слово в архитектуре, которое от разрядности ОСи зависит?
Я всё равно не понял как дырки ставятся, простите, больше объяснять не надо, сам буду читать, не хочу тратить время твоё.
Аноним 16/03/25 Вск 12:39:10 3409616 350
image 68Кб, 897x303
897x303
>>3409469
А вот, что ты имел в виду.
Аноним 16/03/25 Вск 12:59:20 3409627 351
image 81Кб, 1692x840
1692x840
>>3409616
Всё сошлось, это хорошо, спасибо автору статьи...
Аноним 16/03/25 Вск 14:38:27 3409655 352
Аноним 16/03/25 Вск 16:57:51 3409715 353
а что такое ячейки?
Я так понимаю на разных системах они разного размера?
Аноним 16/03/25 Вск 17:16:04 3409723 354
>>3409616
В статье написано, что у типа long размер 8 байт, хотя на 32-х разрядной системе его размер 4 байта.
Вообще размеры сишных типов char, short, int, long зависят от архитектуры машины, поэтому лучше используй зазвания типов например int64_t вместо long, чтобы всегда знать размер независимо от архитектуры машины.
Аноним 16/03/25 Вск 17:38:35 3409732 355
>>3409363
Если твоя программа передаёт структуру в сеть, то передавай структуру с упаковкой, чтобы избежать дырок.

В документации к твоему протоколу не привязывайся конкретно к структурам на C. Просто опиши какие данные в каком порядке идут и порядок байт (little endian или big endian).
На другом конце твои данные может принимать программа на Python/Java/Go/C# и т.д. Пусть её автор сам думает, как он будет хранить твои данные.

Например, вот описание одного из стандартов NAND-флэша https://onfi.org/files/onfi_2_0_gold.pdf
На стр.94 в разделе 5.6.1. там таблица с описанием данных, которые нам передаёт чип памяти. Есть указание, что порядок байтов - little endian (там панисано For parameters that span multiple bytes, the
least significant byte of the parameter corresponds to the first byte.)
Делаешь такую же таблицу для своего протокола.

Для чтения данных делаешь упакованную структуру по таблице, неиспользуемые поля заполняешь массивами. Например, в таблице написано, что байты 10-31 не используются, в структуре в этом месте пишешь uint8_t unused[22];
Аноним 16/03/25 Вск 19:23:23 3409793 356
>>3386488 (OP)
Аноны, а можно ли в WINAPI получить привелегии отладчика для всех процессов? Чтобы например я мог делать (point + любое число) и прыгать в память чужих программ, брать и менять там данные? Или хотя бы запрашивать подобное к одному процессу? Ведь artmoney как то это делает.
Аноним 16/03/25 Вск 19:56:43 3409804 357
>>3409723
У мсвц лонг тоже 4 лол.
Аноним 17/03/25 Пнд 03:43:25 3409993 358
Аноним 17/03/25 Пнд 10:17:14 3410078 359
вы можете объяснить зачем нужны указатели? что такого можно сделать с помощью указателей чего нельзя сделать с помощью чего-то другого? на ютубе тонна роликов про адресную арифметику и как работать с указателями, но нет ни одного про то зачем с ними работать.
Аноним 17/03/25 Пнд 10:35:10 3410087 360
>>3410078
Ты еще букварь не осилил а уже претензии строчишь. В любом учебнике есть главы про виды памяти и типы данных. В сишке массивы и строки реализованы как указатель на участок памяти. Во-вторых динамическая память доступна через указатель, не все можно запихать на стек он резиновый тольк до какого-то предела. В линупсе можешь посмотреть ulimit -s в килобайтах
Аноним 17/03/25 Пнд 10:38:36 3410095 361
>>3410078
Очевидный шаринг ресурса без копирования.
Аноним 17/03/25 Пнд 10:39:53 3410097 362
>>3410087
Ну и способ передачи данных в функцию без копирования. Тоже начальная концепция обязательная к изучению.
Аноним 17/03/25 Пнд 10:45:57 3410099 363
>>3410097
Ага, только вместо записи значения переменной в стэк будет записан адрес переменной, что не особо выиграет по памяти, только для структур разве что, размер которых превышает размер регистров.

Я понимаю, что передавая адрес переменной мы может изменить её значение вне области определения и видимости этой переменной.
Аноним 17/03/25 Пнд 11:13:40 3410116 364
>>3410099
Я пользуюсь либой box2d (физический движок на с++). Долго была версия 2. Там обычно настройки для тел, фикстур создаются на стеке в виде структур, а потом указатель на них передается в функцию конструктор этих самых объектов. Автор обещал что все перепишет на современный с++. Недавно вышла версия 3. Автор переписал на чистый СИ. И там таже самая хуйня.
Аноним 17/03/25 Пнд 11:19:00 3410121 365
>>3410116
Тейк в том что это очень популярный физ движек для 2д и автор шарит за оптимизацию, так как это критично для физ движка
Аноним 17/03/25 Пнд 12:45:55 3410190 366
>>3410078
у тебя фотка весит 10мб ты хочешь в ней поменять несколько пикселей, размер стека винды 1мб. Что будешь делать?
Аноним 17/03/25 Пнд 13:34:10 3410233 367
>>3410190
А вот ты попался, файлы всегда посредством кучи обрабатываются.
Аноним 17/03/25 Пнд 13:43:18 3410240 368
>>3410233
ssize_t read(int fd, void buf[.count], size_t count);

берешь и считываешь в свой буффер который на стеке лежит.
Аноним 17/03/25 Пнд 13:47:54 3410246 369
>>3410240
Ага, только вот копия файла с диска в RAM загружена, а куда данные для обработки будешь записывать уже выбор программиста.
Аноним 17/03/25 Пнд 13:51:55 3410253 370
>>3410233
Почему он не прав?
А если
char line[10000000];
scanf("%s ", line);

./myprog < image.tiff

Будет мгновенный сегфолт из-за нехватки стека как раз для хранения массива
Аноним 17/03/25 Пнд 13:54:11 3410259 371
>>3410246
Куда там файл системой загружен к твоей программе не имеет отношения. Вопрос же был в том нахуя мне указатели если есть стек
Аноним 17/03/25 Пнд 13:54:58 3410260 372
>>3410253
Эх, чертовы линуксоиды со своим перенаправлением потоков!
По идее myprog даже не скомпилируется.
>>3410259
Справедливо...
Аноним 17/03/25 Пнд 14:07:35 3410276 373
>>3410253
Хотя там еще косяк.
>scanf("%s ", line);
логичнее
scanf("%[^\n]", line);
хоть и шиза
Аноним 17/03/25 Пнд 14:19:20 3410290 374
>>3410253
Программа на этапе загрузки в память ломается с segfault, но она скомпилируется, тут я обосрался.
>>3410276
Жесть у вас там линиксоидов приколы всякие.
Аноним 17/03/25 Пнд 14:52:56 3410318 375
>>3410078
Без указателей не напишешь функцию, которая меняет значения аргументов. scanf как пример.
Аноним 18/03/25 Втр 12:23:06 3410846 376
>>3410078
не нужны, мы за чистый СИ без указателей и прочей чепухи!!!
Аноним 18/03/25 Втр 13:42:48 3410904 377
>>3410078
Си это машинный язык. Машина (компьютер) работает на указателях, поэтому в Си указатели, их не может не быть, они не могут быть не нужны.
А "что-то другое" в Си может быть или не быть, не важно, это уже высокоуровневые абстракции реализованные всё равно на указателях.
Аноним 18/03/25 Втр 15:38:44 3410994 378
>>3410078
Представь что ты хочешь создать программу, куда ты можешь записывать все испробованные тобою модели дилдаков. У тебя есть простейший текстовый файл-база данных. Ты запускаешь программу, открывается консольку, ты вводишь что-то вроде add dragondildo, и когда закрываешь программу это всё сейвится. Ты хочешь добавить функциональность, поиск по названию, сортировку, выставлять оценку. Для этого тебе придется все дилдаки скопировать в оперативную память, а не работать с файлом.
Ты не знаешь заранее, сколько у тебя дилдаков будет испробвованно. Можешь создавать при запуске программы массив из 100 позиций. Но может случитсья, что он закончится спустя пару мес, или будет пустовать первое время. Ты зря выделил память, или её не хватает. Придется переписывать программу. Так вот динам. переменные(и след указатели) нужны, например, чтобы выделить памяти ровно столько, сколько нужно.
>>3410097
Не знаю как в С, но в ++ и Паскале можно легко передавать по ссылке и без знания, что такое указатель.
Аноним 18/03/25 Втр 15:46:27 3411000 379
>>3410994
Тред про Си
@
Вопроси по Си
@
Не знаю как в Си, но вот в паскале..

Чел а в 1С вообще только по ссылке можо и больше никак. Только причем тут ЭТОТ тред
Аноним 18/03/25 Втр 16:36:28 3411021 380
image.png 894Кб, 996x996
996x996
капец писал два дня рейкаст максимально locked in,а он не рейкастится!!!
https://pastebin.com/Sskf5hLh
Аноним 18/03/25 Втр 20:08:42 3411152 381
Сап двачеры
Вопрос назрел
Значица есть у PS3-4, свой формат библиотек sprx видо изменённый .elf, может у кого завалялся загрузчик .sprx
Или можете дать совет как работать с .elf и их загрузкой в связке с .bin файлами
Аноним 18/03/25 Втр 20:29:47 3411167 382
>>3411152
Анончик, а это разве не слишком узкоспециализированный вопрос? Я бы такое искал на сайтах типо 4pda или подобных.
Аноним 18/03/25 Втр 21:06:41 3411183 383
А сишка то нужна еще если растишка быстрее работает.
Аноним 18/03/25 Втр 21:16:17 3411185 384
>>3411183
Как Раст может быстрее Си работать, если он постулирует себя как безопасный язык, а значит там постоянные проверка на выход за границы памяти?
Аноним 18/03/25 Втр 21:25:08 3411188 385
>>3411183
>растишка быстрее работает.
Если только в больных фантазиях чулочников.
https://habr.com/ru/companies/astralinux/articles/891064/
>В связи с разницей в числе итераций был проведен тест с 2 048 итерациями для алгоритма на RUST (изменено значение переменной с перекомпиляцией в новые пакеты).
Результат: PBKDF2_SHA256 (на C) кратно быстрее, чем PBKDF2-SHA256 (на RUST)
Чтобы раст был быстрее Си по классике жанра растотестов нужно:
1) Переписать приложение с учетом старого опыта и использованием более оптимальных алгоритмов
2)Выбросить большую часть функциональности
3) Использовать инструкции, привязанные к конкретному тестовому стенду
4) Собирать сишный код в с -O0
5) Получить прирост в 20% перфа
Аноним 18/03/25 Втр 21:35:39 3411190 386
>>3411185
Как раст может быстрее си работать, если, насколько я понимаю, раст использует llvm и только промежуточный код генерит. Оптимизации под архитектуру это не забота разработчиков раста, потому что оптимизации делает llvm из промежуточного кода. Потому что все распутывания циклов и прочее после промежуточной фазы генерации делается. Надо тода сравнивать сишку clang и руст, а не вообще сишку и руст. В чем я ошибаюсь?

мимо
Аноним 18/03/25 Втр 21:43:29 3411194 387
Аноним 18/03/25 Втр 21:45:46 3411196 388
>3411194
И? А на сишке либу переписали или со старым говном сравнивается? Может дело в алгосах?
Аноним 18/03/25 Втр 21:53:50 3411201 389
>>3411196
почитал там почему-то в качесте улучшений флаги для llvm приводятся, а не что использовано из раста для улучшения
Аноним 18/03/25 Втр 22:01:36 3411205 390
>>3411201
Т .е из этого нельзя сказать что раст в общем сулчае быстрее сишки. Просто пререписали код для zlib на расте, провели работу над оптимизацией и получили лучший результат. Они так же могли переписать либу на Си, оптимизировать и с компилить на сланге.
Аноним 18/03/25 Втр 22:09:24 3411208 391
>>3411194
То есть они настроили компилятор под конкретную задачу и говорят, что Раст лучше Си?
Аноним 19/03/25 Срд 01:22:50 3411315 392
>>3411000
зачем мне учить С если я знаю С++?
Аноним 19/03/25 Срд 02:33:02 3411340 393
>>3411167
Думаю да, но там скинули документацию слитую в 2017 , просто думаю там мало про это люди знают, именно устройство .elf и тп
Поэтому ту решил спросить
Аноним 19/03/25 Срд 03:10:49 3411358 394
>>3411340
А ты чем занимаешь и что хочешь сделать? Расскажи, мб заинтересуемся и поможем, если сможем.
Аноним 19/03/25 Срд 03:13:15 3411360 395
>>3411358
Попытка написания эмулятора, но скорее запуска конкретного тайтла с PS4
Аноним 19/03/25 Срд 03:15:17 3411361 396
Сейчас частенько общаюсь с 1 из создателей psOff (emulator)
Ник в дискорде Daydreamer
Аноним 19/03/25 Срд 03:37:14 3411365 397
Аноним 19/03/25 Срд 12:10:23 3411512 398
Аноним 19/03/25 Срд 22:03:14 3411996 399
Я создал репо на гите, лицензия будет unlicense
Аноним 19/03/25 Срд 22:25:29 3412005 400
давайте напишем что-нибудь толковое, например супер быстрый терминал и минимал.
Аноним 20/03/25 Чтв 03:03:01 3412074 401
>>3412005
Зачем а главное для кого
Аноним 20/03/25 Чтв 06:06:50 3412091 402
>>3411996
Кидай ссылку ИТТ.
Время autism development.
Аноним 20/03/25 Чтв 09:08:11 3412124 403
Аноним 20/03/25 Чтв 09:08:45 3412125 404
*за
Аноним 20/03/25 Чтв 09:11:15 3412126 405
Аноним 20/03/25 Чтв 10:44:49 3412170 406
Аноним 20/03/25 Чтв 10:49:06 3412172 407
>>3412124
>что ща ИТТ?
ин вис треад
Он имел ввиду сюда кидай.
Аноним 20/03/25 Чтв 12:13:12 3412227 408
>>3412172

Понял, ну я кинул, ждём ответа )
Аноним 20/03/25 Чтв 22:59:54 3412659 409
Двач тупой вопрос, но почему если скомпилировать main с хелло ворлд, и запустить это, кликнув на .exe файл, откроется именно консоль/терминал а не третий варкрафт или фотошоп?
Аноним 21/03/25 Птн 00:23:51 3412685 410
>>3412659
Я писал ответ, но мне стало хуёво, я хочу умереть, я заебал свою семью, я заебал сам себя, я ненавижу себя, я проебал свою жизнь, я устал от самого себя, я хочу отстраниться от себя, я не хочу видеть себя в зеркале, я не хочу иметь хоть что-либо общее с собой. Так больше жить нельзя.
Аноним 21/03/25 Птн 13:00:31 3412987 411
Как в приложение (десктоп) на си встроить жавасткрипт с хтмл? (для юзер интерфейса). Это вообще возможно напрямую сделать без всяких электронов? Например, после запуска exe файла чтоб открывался браузер?
Аноним 21/03/25 Птн 13:03:54 3412991 412
17424945021790.jpg 199Кб, 622x630
622x630
Аноним 21/03/25 Птн 14:35:39 3413049 413
>>3412987
Надо или свой набор функций для работы с тегами и js писать, или брать готовые варианты.

Есть ещё вариант запускать отдельным процессом движок js и движок для работы с тегами и посредством семафоров взаимодействовать, но это тоже, по сути, готовый вариант.
Аноним 21/03/25 Птн 19:25:08 3413287 414
>>3412987
>Например, после запуска exe файла чтоб открывался браузер?
Да.
Аноним 22/03/25 Суб 02:10:43 3413459 415
Вопрос по винде, как получить указатель на PTE?
Аноним 23/03/25 Вск 01:01:00 3414001 416
мужики, изучаю C. хочу вкатиться в написание ядер для ОС. нужен вектор движения
Аноним 23/03/25 Вск 02:52:01 3414016 417
>>3414001
Я думаю, тут надо будет совмещать C и ассемблер.
Сам ни разу чистый C(без системы) никогда не запускал, но вот nasm в qemu пробовал.
Аноним 23/03/25 Вск 02:58:36 3414019 418
>>3414016
Без ассемблера никак? почему на голом C не получится?
Аноним 23/03/25 Вск 03:31:27 3414022 419
>>3414019
Допускаю, где-то финты ушами для чистого си уже проделаны(ведь целый linux и подобные ядра написаны на си), но мне такое не известно.
Аноним 23/03/25 Вск 03:33:53 3414023 420
>>3414019
>почему на голом C не получится?
Для работы с вводом-выводом ядру(ос) надо использовать прерывания биоса, а в си такого я никогда не видел, кроме случая, когда такое делалось через взаимодействие с ядром.
Аноним 23/03/25 Вск 11:20:14 3414101 421
>>3414019
Через Си нельзя сделать прямое управление железкой без асмы. Даже элементарная инициация системного таймера. Или передача управления от загрущика к ядру.
У АРМ и 86 разные алгоритмы по работе с памятью и дял каждого своя ебля с регистрами и флагами. Такое только через ассемблер можно.
Аноним 23/03/25 Вск 19:33:12 3414494 422
хорошо. тогда в каком направлении двигаться C разработчику?
Аноним 23/03/25 Вск 19:58:56 3414508 423
>>3414494
Я хотел бы стать Си разработчиком, куда двигаться новичку? Учить ассемблер? Прошу тебя, помоги мне, пожалуйста!
Аноним 23/03/25 Вск 20:19:25 3414513 424
>>3414508
язык C будет твоим первым языком программирования?
Аноним 23/03/25 Вск 20:22:03 3414516 425
Аноним 23/03/25 Вск 20:26:23 3414521 426
>>3414516
на самом деле я сам не профессионал. затрудняюсь тебе ответить. могу посоветовать классный курс на stepik. вроде бы о нем уже здесь говорили.
https://stepik.org/course/193691
Аноним 23/03/25 Вск 21:15:29 3414566 427
>>3414494
>в каком направлении двигаться
В сторону отдела с дошиками.
Аноним 23/03/25 Вск 22:45:08 3414626 428
>>3414494
Электроника и линукс.
Аноним 24/03/25 Пнд 08:53:53 3414740 429
Аноним 24/03/25 Пнд 09:46:34 3414778 430
image.png 23Кб, 1215x226
1215x226
двач, функция вызывает функцию, и передаёт ей все те же аргументы, которые получила сама. есть способ сделать это элегантно?
Аноним 24/03/25 Пнд 09:57:55 3414785 431
>>3414778
Подрочи препроцессор.
Аноним 24/03/25 Пнд 13:39:16 3415017 432
>>3414778
На скрине все отлично, что значит элегантно? Засунуть все в один дефайн в одну строку что бы получилась нечитаемая хуйня?
Аноним 24/03/25 Пнд 17:41:03 3415168 433
>>3414778
Можешь запихнуть эти данные в структуру и передать указатель на структуру в функцию, можешь создать "указатель на область в пямати в стэке" ака статический массив и передевать его, всё что ты захочешь.
Аноним 24/03/25 Пнд 17:49:27 3415174 434
>>3412126
Так вот, если кто хочет присоединиться на энтузиазме, может создадим группу где нибудь?
Аноним 25/03/25 Втр 09:49:22 3415502 435
>>3411152
Погоди, а как ты собрался испольнять код с ps4 под хуём86_64?
>>3412005
Мишка Хашимото, нахуй ты на дваче сидишь?
Аноним 25/03/25 Втр 13:52:47 3415704 436
>>3415168
ну ладно, выглядит странно, наверно лучше тупо копировать все переменные
Аноним 25/03/25 Втр 22:31:02 3416115 437
>>3415502
1. Использовать эмуляцию ФС
2. Использовать библиотеки от пс4 СДК .prx, .sprx и тп

Как мне рассказывал 1 из разрабов psOff , их эмуль эмулирует(сори за тавтологию) ФС и всё то что я перечислил
Аноним 25/03/25 Втр 22:31:47 3416116 438
>>3415502
Кто такой "Мишка Хашимото" ?
Аноним 26/03/25 Срд 00:41:11 3416172 439
Аноним 26/03/25 Срд 09:20:35 3416276 440
>>3416115
Разобрать бинарник с ps4 по докам вроде выполнимая за разумное время задача, а вот как потом это пихать в эмулятор и вообще всю эту обвязку писать - как-то сложно уже звучит.
>>3416116
Да какой-то борщехлёб, пишет всякие шелы.
Аноним 26/03/25 Срд 09:43:53 3416290 441
>>3411021
https://pastebin.com/hNU2Gz5X

заработало! осталось теперь только отрендерить это на дисплей и я стану успешным человеком!!!
Аноним 26/03/25 Срд 16:26:20 3416667 442
>>3416276
У меня есть на руках документация (которую сливали в 2к17) от SDK
Там немного расписано что за что отвечает
Но про ФС там инфы 0
Но нейросети творят чудеса
QWEN (https://chat.qwen.ai/s/6899f427-9214-4838-ac14-8b2d07502414) (я не просто инженер так что не обсудьте) рассказал что за что отвечает
(Не факт что правильно)
Осталось эту кучу информации собрать
И начать писать
+ собрать всё .sprx и .self файлы
Потом с помощью scetool декриптнуть
И работать с этим набором
Аноним 26/03/25 Срд 16:27:34 3416670 443
Аноним 26/03/25 Срд 16:32:23 3416673 444
Аноним 26/03/25 Срд 17:46:45 3416713 445
>>3414001
вкатывайся в гейдев через raylib, потом меня констультировать будешь
одно небольшое открытие. Аноним 29/03/25 Суб 21:56:39 3419065 446
Пишу на си с 2017. Изначально си изучал по одной книге Кернигана и по файлам, которые были на сайте некоего Столярова.
Сегодня узнал, что в gnu c есть вот такой финт:
int a=({int a=6,b=76; a=a^b; a;});
Я понимаю, что для многих тут это открытием не будет, но для меня это было чем-то очень-очень новым в области си.
Собственно теперь вопрос: а есть ли книга по си, где подобные финты все собраны?
Аноним 29/03/25 Суб 22:25:43 3419078 447
>>3419065
Ого, я тоже не знал, аж пришлось к ГПТ обратиться:
"Хорошо, пользователь попросил объяснить строчку кода на Си: int a=({int a=6,b=76; a=a^b; a;});. Начну с разбора каждой части этой строки.

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

Проверю: в GCC есть расширение, называемое "statement expressions", где можно использовать блок кода внутри ({ ... }), и результатом будет значение последнего выражения в блоке. То есть ({ ...; выражение; }) вернёт значение этого выражения. Значит, здесь используется это расширение.

Теперь внутри блока: int a=6, b=76; a = a ^ b; a;. Создаются две переменные a и b с значениями 6 и 76. Затем a присваивается результат операции XOR между исходным a (6) и b (76). Потом возвращается значение a. Внешняя переменная a инициализируется этим результатом."

Код походу не очень переносимый, скомпилирует ли это clang условный, да и в целом трудночитаемый, если честно.

А по теме — от себя могу посоветовать только подобную сайт-статью https://graphics.stanford.edu/~seander/bithacks.html
Аноним 29/03/25 Суб 22:31:21 3419081 448
>>3419065
А вообще вся эта хрень буквально синтаксический сахар и буквально стараюсь писать на стандарте с89. Да, даже без цикла for, а заменяю так. Если в c99 пишут так:
for (int i = 0; i < N; i++);
То я пишу так:
{
int i = 0;
while (i < N ) {
...
i++;
}
}
Уже привык, да я знаю, что я долбаёб.
Аноним 29/03/25 Суб 23:13:22 3419101 449
image.png 31Кб, 1423x353
1423x353
>>3419065
Попытался на 89 что-нибудь подобное написать и только такое придумал.
Аноним 29/03/25 Суб 23:31:23 3419115 450
>>3419065
Вот тебе ответ гопоты, товарищ, я бы больше хотел помочь, но не могу...

1. Для понимания языка Си и его "тёмных уголков"
"Expert C Programming: Deep C Secrets"
Питер ван дер Линден
— Идеальна для тех, кто уже знает основы.
— Объясняет тонкости языка, включая неочевидное поведение компиляторов, указатели, стек, макросы и особенности оптимизации.
— Разбирает примеры, близкие к вашему вопросу (например, затенение переменных и работу с памятью).

"C Traps and Pitfalls"
Эндрю Кёниг
— Короткая, но ёмкая книга о подводных камнях Си.
— Описывает ошибки, связанные с областями видимости, приоритетом операторов и неявным поведением компиляторов.

2. О компиляторах и низкоуровневых особенностях
"The Definitive Guide to GCC"
Уильям фон Хаген
— Практическое руководство по GCC.
— Подробно разбирает флаги оптимизации, расширения компилятора (включая вложенные функции и statement expressions), а также работу с ассемблерными вставками.

"Compilers: Principles, Techniques, and Tools" (Книга дракона)
Альфред Ахо, Моника Лам и др.
— Классика о теории компиляторов.
— Полезна, если хотите понять, как компиляторы обрабатывают код, включая анализ областей видимости и оптимизации.

3. Продвинутое программирование на Си
"Advanced Programming in the UNIX Environment"
Ричард Стивенс
— Хотя книга фокусируется на системном программировании, она затрагивает тесное взаимодействие с компиляторами, особенности линковки и работы с памятью.

"C Interfaces and Implementations"
Дэвид Хэнсон
— Учит писать переносимый и эффективный код, используя продвинутые техники (например, макросы и inline-функции).
— Показывает, как обходить ограничения стандартного Си с помощью компиляторных расширений.

4. Онлайн-ресурсы
Официальная документация GCC:
GCC Manual
— Самый авторитетный источник по расширениям GCC, включая ({ ... }), атрибуты функций, встроенные инструкции.

"What Every Programmer Should Know About C" (Блоги и статьи):
Например, Блог Эли Бендерски — множество статей о тонкостях Си и компиляторов.

5. Для углубления в оптимизацию
"Write Great Code: Understanding the Machine"
Рэндал Хайд
— Объясняет, как код преобразуется в машинные инструкции.
— Полезна для понимания, как компиляторы оптимизируют код и какие расширения они используют.
Аноним 29/03/25 Суб 23:50:26 3419147 451
image.png 85Кб, 1691x717
1691x717
>>3419115
Кста, сейчас только что вспомнил, что первая книга от Питера ван дер Лидена была в старой шапке...
>>3419065
Да, синтаксический сахар...
Аноним 30/03/25 Вск 02:37:23 3419248 452
Аноним 30/03/25 Вск 02:50:36 3419250 453
>>3419248
Конкретно для этой хуйни - да.
А так - нет, конечно, условно, если бы с массивом работал, то пропустил бы (первый)нулевой элемент.
Аноним 30/03/25 Вск 18:53:49 3419736 454
У кого есть декрипт прошивки ps4?
Аноним 31/03/25 Пнд 10:17:37 3420012 455
image.png 3Кб, 259x42
259x42
>>3419065
А про запятую знал?
Аноним 31/03/25 Пнд 12:33:57 3420105 456
Аноним 01/04/25 Втр 14:18:17 3420813 457
>>3420012
а что это за занчок между A и B? Это возведение в степень? В си же вроде этого нет.
Аноним 01/04/25 Втр 14:53:28 3420844 458
Аноним 01/04/25 Втр 23:41:34 3421214 459
>>3420844
Не обращай внимание, это либо юное дарование, либо тролляка-провакатор, я с ним ещё в прошлом треде общался https://2ch.life/pr/res/3304338.html
Аноним 02/04/25 Срд 11:11:56 3421382 460
>>3419065

а такое видали?
a = a ^ b;
b = a ^ b;
a = a ^ b;
Аноним 02/04/25 Срд 11:21:52 3421394 461
>>3421382
Алгоритму для обмена значениями двух байтных сегментов без использования инструкций MOV и сторонних переменных/регистров лет больше, чем всем сидящим в треде.
Аноним 02/04/25 Срд 11:23:08 3421398 462
>>3421394
нет, это система уравнений, с корнями a = 1, b = 1;
Аноним 02/04/25 Срд 12:57:49 3421494 463
>>3421398
Если это система уравнений, то третье можно убрать.
Теперь проверим верность решения a=1, b=1.
Выходит, что первое уравнение, как и второе, в тождество не превращается:
a=a^b <-> 1=1^1 <-> 1=0 ошибка.
Аноним 02/04/25 Срд 13:28:44 3421524 464
>>3421494
когда последний раз уравнения решал? ты буквально в первую степень возвести не смог
Аноним 02/04/25 Срд 14:16:56 3421559 465
>>3421524
В этом треде ^ это побитовая операция xor, а не возведение в степень. Степень тут скорее как pow. Иди лучше в /math
Аноним 02/04/25 Срд 14:50:20 3421593 466
>>3421559
Да забей хуй, это тролляка, см. сообщение выше >>3421214
Аноним 04/04/25 Птн 07:30:16 3422833 467
>>3389520
Если ты создаешь какой-то бесплатный программный продукт - отдай его мне. Я перепродам.
Аноним 04/04/25 Птн 08:14:33 3422840 468
>>3422833
Я пишу полезное, чтобы пользоваться принося пользу, а не для заколачивания бабла. Польза и выгода это разные вещи, разные цели, разные продукты. Бери, оно открыто, но не продашь, не ради продаж сделано, свинья.
Аноним 04/04/25 Птн 09:30:05 3422867 469
>>3419101
Зачем виндовская консоль добавляет перевод строки? Это убого выглядит и несовместимо с юниксами.
Аноним 04/04/25 Птн 21:09:52 3423408 470
>>3422867
Так винда и не претендует на единство с юниксом. Но в powershel нет такого отступа, если интересно, а ps уже больше походит на терминал юникс-систем.
Аноним 05/04/25 Суб 13:27:47 3423653 471
>>3422867
У тебя мания величия, шавка. "Юниксы" это нишевой высер для внутренней кухни корпораций, а винда абсолютно доминирующая операционная система. Так что вопрос стоит так: почему говнопрошивки не делают как в винде, вот где проблема. Убого - это делать не как в винде, кто пытается копротивляться против винды или просто не следовать винде, вот кто убог, по факту.
Аноним 05/04/25 Суб 14:02:22 3423672 472
>>3423653
Консолька всё же в юниксе лучше

мимо
Аноним 05/04/25 Суб 16:26:28 3423749 473
>>3423672
Не лучше, это очевидно даже самим линуксоидам презирающим башпортянки. А в винде на повершелле можно нормально писать, в отличие от юниксоговна протухшего. И так там всё, всё плохо, одни костыли из говна поверх костылей из говна - "юниксвей", он таков. Вроде тащат старьё сквозь века, но при этом каждый день всё ломают "стабильность это нонсенс". Цирк идиотии как змея пожирающая собственный хвост, сами себя на ноль делят, отбитые дауны с дефектом мозга. Ну, религиозная секта на большее и не способна, секты это не про технику, не про программирование, а про отбитых фанатиков без мозга попугающих лозунги вождей.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов