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


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
510 59 138

C Programming Language #59 /clang/ Аноним # OP 18/07/20 Суб 18:53:28 17548591
C Propaganda.jpg (1970Кб, 2000x2610)
2000x2610
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

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

Что читать:

- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)
- Стандарт ISO/IEC 9899:2011 (C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2479.pdf (февраль 2020, с диффами)

Чем компилировать:

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.
- TCC: очень маленький компилятор с багами и поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.

Что еще почитать:

http://c-faq.com/
FAQ из comp.lang.c. Древний, но все еще актуален.

Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)
Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.

Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)
"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.

Ben Klemens "21st Century C: C Tips from the New School" (2012)

Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)

Stephen G. Koch@n "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)
Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard и http://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

https://github.com/kozross/awesome-c

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

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

- №56: http://arhivach.ng/thread/563333/
- №57: http://arhivach.ng/thread/563334/
- №58: http://arhivach.ng/thread/573804/ >>1711268 (OP)
Аноним 18/07/20 Суб 20:29:04 17549332
ротатед.PNG (10Кб, 605x54)
605x54
Задание из K&R. Что он хочет? 123 --> 312, 51231 ->15123 или что? Эта задачка и раздела про побитовые операторы, я ответы понаходил, даже не понял, что они там делают...
18/07/20 Суб 20:29:58 17549343
>>1754933
В моих "примерах" n условно равен 1
Аноним 18/07/20 Суб 21:27:19 17549794
>>1754933
Очевидно, что раз тема про побитовые операции, то и вращать нужно биты. 11110000 -> 01111000.
Аноним 19/07/20 Вск 00:38:39 17551325
кал.PNG (20Кб, 856x375)
856x375
Покакалл каллом
Аноним 19/07/20 Вск 13:51:43 17553406
>>1754933
Да, только в двоичном.
В прошлом треде уже отвечал кому то про это.
Прорешай на листочке в столбик и поймешь как с помощью маски (через and), обычных сдвигов, и or сделать.
Аноним 19/07/20 Вск 17:39:35 17554417
3-2.PNG (20Кб, 610x67)
610x67
3-2 (2).PNG (34Кб, 1162x446)
1162x446
Буду потихоньку делать, раз тред пока пустой...

>>1754979
>>1755340
Спасибо, я как раз скинул в тред. Чому-то не догадался, лел... вообще, маски это впечатляюще, наверное, очень мощный инструмент, хз, используют ли их в повседневности
Аноним 19/07/20 Вск 21:28:07 17555618
Кто работает на нем? Какие задачи выполняете?
Аноним 19/07/20 Вск 21:40:59 17555689
Едем дальше
Аноним 19/07/20 Вск 23:44:39 175560310
Короче, я вынырнул.
Я тот анон, кто спрашивал про простую графику под винду на си.

Итак.
Я отчаялся настроить devc++ и codeblocks так, чтобы нормально скомпилился пример анона:
https://pastebin.com/raw/7nu7GzsP

Ебля с path variables в винде а потом разруливать 100500 опций в конкретно каждой IDE мне не под силу, копипастить не понимая ничего - это уже перебор. Тем более я си дошел пока только до 10й главы у праты. Я даже не нуб, я вообще не человек нахуй.

Нашел такое:
https://bigcode.wordpress.com/2016/12/20/compiling-a-very-basic-mingw-windows-hello-world-executable-in-c-with-a-makefile/

Все просто, написал батник, прописал в path mingw32, разобрался с make.
В пару кликов все компилится, а главное - досконально понимаю что происходит на каждом этапе.

Анончик, спасибо за пример с GDI! Теперь можно и за него взяться.
Аноним 20/07/20 Пнд 02:20:48 175567211
>>1755603
> в винде

ты выбрал путь сильным духом, хаха
Аноним 20/07/20 Пнд 06:41:42 175570712
>>1755672
Что поделаешь, я ещё не готов к ебле с каждой отдельно графической системой, со своим апи и миллионом неочевидных зависимостей только для того, чтобы вывести кружочек.
One true way рулит.
Аноним 20/07/20 Пнд 07:31:13 175571213
>>1755603
Если планируешь работать с mingw, советую поставить msys2. В нём есть пакетный менеджер и куча готовых библиотек в репах для винды. С ним не надо качать по отдельности хуй пойми кем собранные бинарники и ебаться с путями.
Аноним 20/07/20 Пнд 11:34:32 175582214
image.png (38Кб, 1313x289)
1313x289
Аноним 20/07/20 Пнд 11:58:02 175583515
Аноним 20/07/20 Пнд 12:29:36 175585416
>>1755835
Компилятор ругает, что нет библиотеки curses.h. Как мне ее установить?
Аноним 20/07/20 Пнд 12:32:46 175585617
>>1755854
sudo apt install libncurses-dev
если винда, то страдай
Аноним 20/07/20 Пнд 12:39:40 175586018
>>1755856
>если винда, то страдай

Страдаю
Аноним 20/07/20 Пнд 13:35:55 175589719
Хм..PNG (16Кб, 448x362)
448x362
Почему с типом char он возвращает -1? С int всё, естественно, нормально работает, но мне интересно. По идее, он приводит массив из char в int в момент передачи массива как аргумента функции.
Я знаю, что С передаёт обычные переменные по значению, а массивы -- по указателю или чё-то такое, в общем, оригинал, фактически, но почему вообще там значения изменились? Все числа влезают в char, т.е. старшие биты не обрезаются, сам char это представление чисел фактически, чё он машнит тогда? Объясните, поалуйста
Аноним 20/07/20 Пнд 13:41:36 175590520
>>1755897
> По идее, он приводит массив из char в int в момент передачи массива как аргумента функции.
Ну да и память, которую ты заполнял, как массив чаров размер которых 1 байт, он будет видеть как массив интов, размеров которых 4 байта.
Аноним 20/07/20 Пнд 14:19:56 175594321
А как в визуал студио начать на си писать?
Аноним 20/07/20 Пнд 14:28:18 175595222
>>1755905
Ого, всё, понял, спасибо
Аноним 20/07/20 Пнд 14:29:10 175595323
>>1755943
Создаешь пустой консольный или GUI С++ проект, создаешь файл, сохраняешь с расширением .c.
Аноним 20/07/20 Пнд 14:39:09 175596524
>>1755897
>Почему с типом char он возвращает -1?
Почему ты не получаешь предупреждение? А?
Ну-ка быро включил предупреждения!
Аноним 20/07/20 Пнд 16:32:18 175605425
>>1755672
Простой пример как нарисовать кружочек не в винде в студию.
Аноним 20/07/20 Пнд 16:39:24 175605826
>>1756054
Например xlib:

>Seriously, XLib is a load of crap.
>
>The numerous tiny "off-by-one" errors, the pathetic font handling, absolutely no native support for anything useful forcing you to "reinvent the wheel", "reinvent the engine", "reinvent the car", and if you want it fast, "reinvent the driver".
>
>It is worse than the Windows GDI API and even slower by definition because of the architecture.
>
>The only way you will ever make anything decent: write a layer building everything you need from scratch using XLib as little as possible. Anything more than a strict subset and you'll be wasting cycles waiting for your graphics to cross the socket boundary, while the processor switches contexts, and the user is wondering what in the world is taking so long to see an 8bit billboard "fire its laser".
Аноним 20/07/20 Пнд 16:53:21 175607127
>>1756054
Можно взять Skia/Cairo. Вот, например, линкрандом: https://gitlab.com/cairo/cairo-demos/-/blob/master/X11/cairo-demo.c Все зависит от того, что именно тебе нужно кроме рисования кружочков. Алсо, в винде проще по-быстрому накидать интерфейс (разумеется, если с Qt не сравнивать, но Qt - это уже кресты).
анон с кодом для GDI
Аноним 20/07/20 Пнд 16:55:03 175607528
>>1756071
>>1756054
В целом все векторные графические апи очень сильно друг на друга похожи, ничего нового там не изобрести, отличается лишь инициализация.
Аноним 20/07/20 Пнд 19:53:34 175621429
>>1756071
>что именно тебе нужно кроме рисования кружочков

В конечном итоге хочу арканоид свой написать. GDI для этого хорошо подходит, как я понимаю.
Аноним 20/07/20 Пнд 21:11:27 175627930
breakoutpieces1.png (17Кб, 352x200)
352x200
>>1756214
> В конечном итоге хочу арканоид свой написать
Надо было сразу сказать. Вот как раз для этого лучше взять SDL2, кружочки рисовать в фотошопах/гимпах/whatever заранее, а в игре использовать их уже в виде готовых текстур с прозрачностью. Скорее всего, ты сделаешь атлас типа пикрелейтед, захардкодишь в исходник координаты и будешь брать кусочки из атласа по известным координатам и копировать их во фреймбуфер. Чтобы длинную платформу сделать, берешь концы от короткой, а середину дублируешь несколько раз.

На GDI ты, конечно, тоже можешь такое сделать, но тогда ты через пару дней придешь в тредик с вопросом, почему все мигает, и как сделать двойную буферизацию, а чуть попозже попробуешь сделать что-то более динамичное, чем арканоид и начнешь спрашивать, хули так медленно. Начнешь отрисовывать графику при старте... и в итоге придешь ровно к тем же самым текстурам. Потом упрешься в скорость BitBlt (это копирование изображений), в итоге возьмешь те самые Direct[Draw|2D|3D]/OpenGL, которые используются в качестве бэкендов в SDL2. Такие дела. Но. Я когда-то писал софтрендер с выводом через GDI, было вполне норм. Алсо некая успешно почившая ныне технология Adobe Flash в standalone плеерах тоже успешно использовала GDI, и ничего особо не тормозило. Чтобы реально упереться - надо постараться.
Аноним 20/07/20 Пнд 22:25:22 175635131
>>1756279

>кружочки рисовать в фотошопах/гимпах/whatever заранее, а в игре использовать их уже в виде готовых текстур с прозрачностью. Скорее всего, ты сделаешь атлас типа пикрелейтед, захардкодишь в исходник координаты и будешь брать кусочки из атласа по известным координатам и копировать их во фреймбуфер. Чтобы длинную платформу сделать, берешь концы от короткой, а середину дублируешь несколько раз
Блин, именно так я и думал! Я понятия не имею как это называется, но я посмотрел на ютубе один чувак разбирал Dave1 и там в exe-шнике были все текстуры упакованы со смещением. Я впечатлился.
Но спасибо тебе огромное, я хоть начал понимать что за GDI такой, плюс приятно осознавать что я более менее правильно думал.

>в игре использовать их уже в виде готовых текстур с прозрачностью. Скорее всего, ты сделаешь атлас типа пикрелейтед
А разве GDI так не умеет?


Аноним 20/07/20 Пнд 22:29:26 175635532
>>1756351
>>1756279
Ну и желательно чтобы все на си. Я пока не готов переходить на кресты, не хватает базы.
Аноним 20/07/20 Пнд 22:55:36 175637033
Аноним 20/07/20 Пнд 22:57:04 175637334
>>1756355
Там не так много базы и надо. Игрушка как раз хороший учебный проект — сначала пишешь ее в систайле, потом пакуешь шарик игрока и штуки которые надо ломать по классам, потом перестаешь использовать стандартные структуры данных, пихаешь в контейнеры, делаешь маленькую базу данных куда пихаешь хайскоры, по приколу добавляешь пуканье джейсонами/хмлками, потом пишешь установочник.
Аноним 20/07/20 Пнд 22:58:30 175637635
Ну и естественно на каком-то этапе используешь темплейты вместо обычных классов
Аноним 20/07/20 Пнд 23:04:24 175638536
>>1756373
Я так и собираюсь делать, лол, спасибо!
Я имею ввиду что я еще прату не закончил.
>пуканье джейсонами/хмлками
>темплейты вместо обычных классов
А вот сейчас ничего не понял.
Аноним 20/07/20 Пнд 23:21:02 175640737
>>1756385
>пуканье джейсонами/хмлками
Примерно 70% реальной работы современного софтвейр инженера, особенно на бекенде.

>Темплейты вместо обычных классов
Стандартные классы и new delete залупу мало кто использует. С помощью темплейтов реализуют такие замечательные вещи как наследование, фабрики, и етц, отсутствующие по дефолту.
Аноним 21/07/20 Втр 04:12:54 175650238
>>1756407
>Примерно 70% реальной работы
Как и в любой профессии, тащемта, нет?
Я например инженер, так именно конструированием я занимаюсь тоже где-то 30% времени. Всё остальное это репорты, бланки, митинги и исправление косяков молодых.
Аноним 21/07/20 Втр 05:03:04 175650439
>>1756502
Тащемта да, но я говорил конкретно о части работы о которой в первую очередь фантазирует ньюфаг, думая пойти в бекендеры.
Аноним 21/07/20 Втр 06:07:22 175651140
>>1756504
>бекендеры
Согласен. Из всех утюгов реклама мегакурсов ФУЛ СТАК НА ПИТОНИИ ЗА 6 НЕДЕЛЬ
СТАНЬ БЕКЕНДЕРОМ ЗА 100500 ЭСКУДО В СЕК

Я задрачивал в детстве игру одну, krypton egg вроде. Единственное приятное воспоминание. Хочу сделать подобное. Просто так.
Аноним 21/07/20 Втр 10:57:58 175658241
>>1756373
>потом пакуешь шарик игрока и штуки которые надо ломать по классам

А потом распаковываешь в С-стайл обратно и переписываешь вот на эту хуиту (ПАЛЮ ГОДНОТУ, ВНИМАНИЕ, ПАЛЮ ГОДНОТУ), потому что в соточку долбимся:

https://github.com/SanderMertens/flecs

Аноним 21/07/20 Втр 14:28:45 175676542
Аноним 21/07/20 Втр 15:21:36 175680743
C какого размера стоит обязательно использовать функции? В учебнике для каждого пука вроде ввода и сортировки стали вводить функции длиной в 6-8 строчек. Мне учебную программу длиной в 40-80 строк удобнее писать вообще без дополнительных функций. На них можно забить пока я не пишу "полезный код"?
21/07/20 Втр 15:43:28 175681544
>>1756807
Конечно! Все нужно выделять в функции
Аноним 21/07/20 Втр 15:44:07 175681745
>>1756807
Нет, потом иначе так и будешь говнокодить. Единственный кейс когда можно не выносить всё в другие функции — это когда этот код _нигде_ не будет переиспользоваться. А всё, что хоть сколько-то можно переиспользовать (сортировки — вообще максимально дженерик хуита для всего) — выносить.
Аноним 21/07/20 Втр 15:45:24 175681946
Аноним 21/07/20 Втр 15:47:14 175682147
>>1756807
Это индивидуально. У меня в геймдеве строк 10-20. Иногда, внутренний блок цикла может быть 20 строк, тогда в сумме с бойлерплейтом инициализации/цикла будет до 40. Дальше начинает путаться логика, что от чего зависит. Сложно изменять. Также, вынос в функции больше зависит от переиспользования. В учебной программе тебе это незаметно. Но в реальной практике ты захочешь применить этот же алгоритм к другим структурам. Или наоборот, с этими данными провести другую операцию. И вот уже у тебя +80 строк копипаста на ровном месте.
Аноним 21/07/20 Втр 19:17:54 175700048
Аноним 21/07/20 Втр 20:09:39 175704049
14670508675000.webm (2288Кб, 640x360, 00:01:13)
640x360
Скажу сразу, я не программист, а просто технический менеджер. По работке пишу простенкьие скрипты для аналитики на питоне, тыкаю данные из бд при помощи sql, немного поддерживаю проектовую админку на js.
Думаю, может, мне стоит немного посидеть поучить основы С? Я не планирую когда-либо работать с этим языком, но насколько я слышал от прошаренных типов, С очень понимает в понимании того, как работает компьютер, что вообще такое программирование, как программа взаимодействует с железом, всё вот это вот. Насколько С вообще может мне помочь в плане такой теоретической базы? Или жс/питон уже настолько абстрактны, что никак не связаны с С?
Аноним 21/07/20 Втр 20:17:19 175704450
Аноним 21/07/20 Втр 20:20:39 175704651
Аноним 21/07/20 Втр 20:37:19 175707052
>>1757040
Купи ардуину помигать светодиодом.
Аноним 21/07/20 Втр 20:42:35 175708053
>>1757070
Это я на малине делал с помощью питона.
Аноним 21/07/20 Втр 20:47:16 175708354
Аноним 21/07/20 Втр 20:48:59 175708755
>>1757083
Ну тогда вряд ли что то новое узнаешь.
Напиши реверс строки на js и достаточно.
Аноним 21/07/20 Втр 20:49:44 175708856
>>1757087
*посимвольный. Без библиотечных функций конечно.
Аноним 21/07/20 Втр 20:51:14 175709057
>>1757087
А, еще указатели. В js то их нет.
Аноним 21/07/20 Втр 20:52:41 175709158
>>1757040
Вообще никак не помогает лол, си под х86 это такая же высокоуровневая прокладка как питон или жс, высоко над уровнем железа. Ты можешь дергать системные пукалки вроде посикс, но сама система для тебя останется таким же черным ящиком, как и в случае с любым другим языком. А вот если ты углубишься в физику, информатику и конкретно реверс — то ты уже поймёшь как работает система, компьютер и конкретно железки внутри, только с изучением си это ничего общего не имеет

Мимо-шел кресточмо джениунли не понимаю почему ньюфаги думают наоборот
Аноним 21/07/20 Втр 20:54:22 175709359
>>1757091
Ну так Си изучать вне отрыва от ассемблера который на выходе - бессмысленно.
Аноним 21/07/20 Втр 20:54:49 175709460
>>1757088
Так в жс абстракции слишком высоки, ты тут не char'ами оперируешь, и даже не байтами (хотя в целом можно и ими - есть типизированные масивы сырых данных). В 2020ом строка даже сразу на unicode символы разбивается при проходе по ней циклом, так что не надо выебываться с codepoint'ами. Я слабо представля, что он имел ввиду под пониманием как работает компьтер, потому что для этого и не надо в общем-то языка учить, можно книжки почитать. А если хочется низкого уровня для самообразовани, то ассемблеры куда интереснее и образовательнее, чем си. Си надо выбирать уже чисто из практических соображений.
Аноним 21/07/20 Втр 20:59:34 175709761
image.png (6Кб, 200x168)
200x168
Аноним 21/07/20 Втр 21:09:17 175710462
image.png (8Кб, 360x157)
360x157
>>1757088
Ну или если тебе нужна оптимизация по матями, а не по скорости.
Аноним 22/07/20 Срд 13:27:39 175756263
1595413657735.png (109Кб, 490x305)
490x305
Аноны, расскажите, как вы вообще программы пишете?

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

Хочу вырасти как системный инженер, для этого нужно уметь больше, чем умею я. Для меня в схемотехнике все довольно просто — есть входной сигнал, есть выходной, колдуй так, чтобы на выходе получилось то, что нужно, используя готовые модули вроде микросхем и так далее. Хочешь больше — колдуй с МК. С горем пополам я в свое время научился делать всякое с дренейками с STM32 используя их ПО и сервис мануалы.

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

Вот хочу сам себе доказать, что могу. Хочу сделать хуйню чтоб пикчи переводила в пиксель арт. В интернете говорят "Ну вы накидайте там проект на коленке и пишите код". С написанием кода есть тонна учебников, в этом проблемы нет. А как накидать проект то сам? Откуда эту инфу взять? В схемотехнике есть даташиты и сервис мануалы на используемые компоненты, можешь что угодно подобрать. А тут сам ебисб, ток документация на язык и колдуй с ним чо хочешь. Я не нашел нихуя (может плохо поискал) как сделать интересующую меня задачу вот прям сделать.

А даже если бы и нашел, это был бы копипаст чужой реализации, т.к. чтобы доделать туда что-то свое мне нужно было бы взять другой велосипед другого Васи и вставить в этот велосипед. По сути это и есть модульный способ создания чего-то нового, это окей, в схемотехнике также как раз, но как мне при этом все в голове у себя собрать? Откуда я могу знать, что мне должно понадобиться в данной программе? Где про это то прочесть? Хочу писать программы, но не могу.

Кому не влом, напишите хоть тут, как вы видите структуру пиксель арт генератора, хоть с вашего пинка попробую что-то сделать.
Аноним 22/07/20 Срд 13:40:10 175757764
Screenshot2020-[...].png (33Кб, 664x325)
664x325
Screenshot2020-[...].png (18Кб, 411x349)
411x349
Цикл начинается с
while ((op=get_char())!='q')

Вот на пике функция, на втором выход. Когда туда успевает набиться ложное значение?
Аноним 22/07/20 Срд 14:05:03 175759965
>>1757562
>как вы видите структуру пиксель арт генератора
Для начала тебе нужен алгоритм уменьшения изображения. Например, простым будет алгоритм k-nearest neighbors (ближайшего соседа).

Ты переводишь изображение в матрицу (двумерный массив) пикселей, затем делишь её на квадраты по n (например, 4 или 9) пикселей. Затем из каждого квадрата ты выбираешь самый популярный цвет пикселя, и переносишь его на новый холст (который в n раз меньше). Если изображение большое - этот шаг можно повторить несколько раз. Готово, ты реализовал уменьшение изображения до пиксель-арта.

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

Здесь уже остаются только тривиальные задачи вроде открытия исходных и сохранения получившихся изображений.
Аноним 22/07/20 Срд 14:09:21 175760866
Screenshot2020-[...].png (27Кб, 648x317)
648x317
>>1757577
А вот в таком виде всё ок.
Аноним 22/07/20 Срд 14:11:10 175761067
>>1757562
Начни с интерфейса, окошки там кнопочки, вид до вид после. Или тебя алгоритм преобразования интересует? Тут наверное берёшь пиксель увеличиваешь размер потом лишнее разрешение режешь.
Аноним 22/07/20 Срд 14:14:24 175761368
>>1757599
>>1757610
Похоже на интерполяцию, только наоборот. Я такое делал, когда из датчика на тепловизор 8х8 надо было что-то вывести на 320х240 экран. Разберусь. Так хотя бы что-то продвинется! Спасибо, анон. Надеюсь, что со временем и мне придет понимание структуры программ.
Аноним 22/07/20 Срд 20:43:25 175796969
>>1757562
байтоебы творческие импотенты
ну хуй знает, формат bmp норм описан даже на википедии, выводить буковы и циферы в консоль, надеюсь умеешь, дальше действительно
>колдуй с ним чо хочешь
А как ты хотел? И свою фантазию не включать, и чужие велосипеды не пиздить? Противоречиво... Так-то про все есть инфа. Те же основы 3d-графики, а дальше колдуй че хочешь, например.
Аноним 23/07/20 Чтв 14:56:14 175850870
qWVLiRw-qyc.jpg (111Кб, 911x530)
911x530
в питоне есть тип данных set хуяк обернул и всё, а что почитать про создание своих типов? типа best practics с enum'ами и union'aми и typedef'aми
Аноним 23/07/20 Чтв 19:00:08 175868271
Аноним 23/07/20 Чтв 20:07:24 175874572
>>1758682
зоебал я же хочу не ковырять и искпеременитровать, а статью чейтануть какую-нибудь
Аноним 24/07/20 Птн 01:02:30 175889673
Классический, наверное, вопрос: второе русское издание Кернигана и Ричи читать стоит? Там вроде устаревший стандарт языка, но на русском новее нет.
Аноним 24/07/20 Птн 01:27:27 175890074
>>1758896
K&R устарел не слишком сильно, о нововведениях можно прочитать и позже, за вечер. На русском еще много чего есть, тот же Прата, но лучше взять словарь и оригинальное издание. Без английского в программировании делать нечего.
Аноним 24/07/20 Птн 08:56:44 175901775
>>1758900
Какой словарь посоветуешь, чтобы контекст было проще искать?
Аноним 24/07/20 Птн 09:17:22 175902776
>>1759017
Ты бредишь чтоль? Тебе не нужно переводить на русский названия определений вроде variables или arguments. Если совсем с этим туго, то тебе нужно только непонятные слова перевести в описании этих определений, чтобы понять, что целиком определение значит (milk — жидкость из вымени коровы, ну ты понял). Ну или даже если хочешь и их перевести (чтобы самому было понятнее), переведи и их. Откроешь для себя, что variables в русском языке означает переменная. Все равно будешь везде говорить variables.

Ты ахуеешь, но тебе надо не переводить с английского на русский, а понимать английский текст для программирования, т.к. на нем ты и будешь общаться с машиной (ну или 1С тредис по соседству). Тебе все равно в конечном итоге придется на нем со всеми общаться, начинай уже сейчас (как бы тяжело не было).

Для словаря не знаю, что используют остальные, мне хватает translate.google.com
покормил
Аноним 24/07/20 Птн 09:50:03 175903477
>>1759027
Ну вот тут недавно спрашивали про задание из K&R про разворот битов чёт как то не помогли эти гуглы. Я попробовал на edx курс по Питону на английском там вообще субтитры гуглем переводил было ощущение что придумываю половину. Вот например boilerplate как первести? Там больше проблем не сопределениями а с действиями.
Аноним 24/07/20 Птн 09:57:05 175903978
>>1757040
Водя машину ты ведь не поймешь, как она работает.
Бери учебники по теории цепей, затем по схемотехнике, затем пытайся сам делать платы, которые что-то полезное делают.
Аноним 24/07/20 Птн 10:12:38 175904279
1595574753953.png (740Кб, 1071x1372)
1071x1372
Аноним 24/07/20 Птн 10:20:09 175904780
Поясните, если я буду работать прогером, то у меня будут задачи, над которыми нужно подумать? Типо как в школе с олимпиадными задачами. Или это почти всегда тупа загуглил, написал.
Аноним 24/07/20 Птн 10:21:16 175904881
Аноним 24/07/20 Птн 10:23:41 175905182
>>1759048
Почему? Ну я так понимаю это от места работы зависит. Но куда идти, если хочется чтобы мозги использовались?
Аноним 24/07/20 Птн 10:36:12 175906183
>>1759042
Рили охуел, но я думал словарь какой нибудь офлайн.
Аноним 24/07/20 Птн 10:37:37 175906284
>>1759051
В нии какой нибудь иди, 99 задач в любой работе стандартные.
Аноним 24/07/20 Птн 11:38:09 175910185
>>1759062

>В нии какой нибудь иди

Переписывать/реверсить под грифом и подпиской украденную у доблестными петром и бошировым прошивку какого-нибудь GBU-28AAN "Annihilator" для очередного АНАЛО-ГОВНЕТА? Действительно, мозги нужны.
Аноним 24/07/20 Птн 11:51:02 175911186
>>1759101
Ты хохол или либирашка? Я вас не оч пока различаю
Аноним 24/07/20 Птн 11:53:05 175911587
>>1759034
>boilerplate
Котел-тарелка
Аноним 24/07/20 Птн 12:12:30 175912288
>>1759034
Плата-Бойлер, что-то из оборудования котельных, видимо
Аноним 24/07/20 Птн 12:27:53 175913789
>>1759034
>Вот например boilerplate как первести?

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

Вот это оно.
Аноним 24/07/20 Птн 12:29:52 175913890
>>1759137

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

Яркий пример - графическое API Vulkan, да и DirectX 12 - там нужно 2000 строк только что бы нарисовать сраный треугольник.
Аноним 24/07/20 Птн 13:55:55 175918391
>>1759061
Зачем тебе оффлайн словарь в области, которая каждый месяц что-то новое в себя приносит. Гугли и все. В работе программиста огромная доля работы с поисковиками.
Аноним 24/07/20 Птн 16:27:08 175929392
>>1759027
Охуительный совет чтобы стать новой Никселькиксель.
Антоши, как посчитать сам ов сквеар интеджеров до 10000? Я попытался лупой, но вариэйбл становится негатив"
Аноним 24/07/20 Птн 16:42:33 175930393
Аноним 24/07/20 Птн 16:44:34 175930794
>>1759137
>>1759138
Лол, всегда думал что это табличка на паровозе.
Аноним 24/07/20 Птн 17:34:59 175932995
>>1759051
сам по себе вопрос странный же говорю, почему другие должные придумать как использовать твои мозги если ты сам не знаешь их приминения, найди блят лекарство от рака зоебал
Аноним 24/07/20 Птн 17:36:26 175933196
>>1759303
анон молодец, что сюда принес халяву, славься анон бескорыстный!
Аноним 24/07/20 Птн 18:37:21 175938497
>>1759329
Так то занятие для них я могу найти с легкостью. Другое дело будут ли мне за это платить.
Аноним 24/07/20 Птн 18:46:43 175939598
Ура курс за 150 баксов учащий первым трем главам из к&р наканецто

мимо кресто-барон ахуеваю что есть люди реально купившие это за деньги
Аноним 24/07/20 Птн 19:36:54 175943499
>>1759293
> лупой
Лупом. В остальном все правильно. Все так. Это лучше, чем переводить convolution как "свертка", а deconvolution как "деконволюция". Русская языка велика есть, но для техники совершенно не подходит.
Аноним 24/07/20 Птн 19:46:22 1759443100
>>1759395
"Кресто-пидар" ты хотел сказать? Тред для хипстеров и гомосеков ниже.
Аноним 24/07/20 Птн 20:02:04 1759452101
>>1759384
если ты такой умный, то чому ты еще не наебал систему? а? А? у илона маска было нихуя, а он же наебал, а ты нет. глупо тут аписнять что важно а шо нет когда ты сам ето знаешь, хочешь интересных задач так ищо шобы платили за них тебе, могу только губозакаточную машинку посоветовать купить
Аноним 24/07/20 Птн 23:25:11 1759565102
Анончики, что за хуйня?
Я практически один в один переписал пример из книжки.
Не понимаю почему?

>expected ')' before numeric constant
> void copy_arr(target1, source, NUM);

https://pastebin.com/P9NaKEZc
Аноним 24/07/20 Птн 23:27:40 1759568103
>>1759565
error: expected ')' before numeric constant
void copy_arr(target1, source, SIZE);
Аноним 24/07/20 Птн 23:37:23 1759578104
>>1759568
нахуй у тебя объявлена функция в стиле до-С89? Если это прототип то нахуя у тебя сама функция в этом же файле лежит?
Аноним 24/07/20 Птн 23:52:40 1759594105
>>1759578
Нихуя не знаю, так у Праты, не ори на меня
Аноним 25/07/20 Суб 00:05:56 1759609106
gcc.png (41Кб, 1016x803)
1016x803
>>1759594
че за тему конкретно читаешь? Если тебе именно с прототипами надо то компильни со стандартом 89.
Нельзя макрос передавать в функцию, потому что в данном случае у тебя copy_array(target, source , size) разворачивается в copy_array(doube target, double source, int 5) и компилятор не считает это адекватным

если без прототипов то держи вот фигню
Аноним 25/07/20 Суб 00:12:57 1759613107
>>1759609
Блин, спасибо, я не заметил что перед вызовом функции зачем-то ее тип написал (void). Меня сбил с толку информативный выхлоп компилятора.
Аноним 25/07/20 Суб 00:24:11 1759616108
>>1759613
люби свой компилятор сука. Пока не будешь его понимать и любить он тебе будет срать в еду и говно в жопу заталкивать
Аноним 25/07/20 Суб 00:25:44 1759617109
1460476797649.jpg (264Кб, 600x600)
600x600
>>1759616
Окей, буду стараться.
Аноним 25/07/20 Суб 05:34:55 1759676110
>>1759609
>че за тему конкретно читаешь?
Arrays and Pointers.
10я глава.
>>1759616
>люби свой компилятор сука.
Прикол в том, что если бы я использовал IDE вместо Notepad++, то оно бы мне подсветило неправильный синтаксис.
Аноним 25/07/20 Суб 07:35:20 1759692111
anMD9Q5700b.jpg (267Кб, 640x636)
640x636
Надо получить дескриптор и заголовок сокета из обработчика прерываний и сделать их доступными для вызова функции httpd_queue_work() из основного цикла программы int main().

Нашёл один из примеров: https://github.com/espressif/esp-idf/blob/master/examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c#L84
В нём создаётся указатель на структуру, который недоступен из вне.

Подскажите, плез, как можно переделать?
Аноним 25/07/20 Суб 13:53:46 1759828112
>>1759676
Но ведь подсветка синтакстса есть в н++ изкаробки
Аноним 25/07/20 Суб 18:58:01 1760075113
>>1759828
Есть, но оно не подчеркивает ошибки семантики, только синтаксиса.
Аноним 25/07/20 Суб 19:00:22 1760077114
>>1759609
Я просто хочу прорешать всего прату чтобы перейти уже к изучению крестов.
Это единственный правильный путь.
Аноним 25/07/20 Суб 19:44:14 1760095115
>>1760077
Чё? Нахуя тебе ваще си чтобы катиться в крестоиды?

мимо из крестотреда
Аноним 25/07/20 Суб 20:52:04 1760136116
Аноним 25/07/20 Суб 21:42:13 1760164117
>>1760095
>Чё? Нахуя тебе ваще си чтобы катиться в крестоиды?

>да, C++ это по-настоящему сложный язык. Его никак не получится выучить за 21 день, ну вот совсем никак. Именно высокий порог вхождения повышает твою ценность как специалиста, не позволяя нанять вместо тебя индуса за еду. Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам.
Аноним 25/07/20 Суб 21:49:22 1760167118
>>1760095
C++ Primer Plus например, состоит из отсылок к С примерно наполовину. Собственно, в введении там явно написано: сначала надо знать С.
Аноним 25/07/20 Суб 22:28:55 1760189119
>>1760164
Лол, так под "другим языком" подразумевают не Си. А какой нибудь пайтон или жс.
Аноним 26/07/20 Вск 02:07:28 1760313120
Аноним 26/07/20 Вск 12:35:05 1760481121
Аноны, надо написать kernel module на Линукс, который не общается с реальным железом, но может делать что-то полезное и/или интересное. Идеи?
Аноним 26/07/20 Вск 13:38:29 1760552122
>>1760481
Интерпретатор brainfuck
Аноним 26/07/20 Вск 13:44:05 1760561123
>>1760552
эмм, а нахуя для этого писать драйвер, который будет крутиться в пространстве ядра? Юзерспейс эмулятора вполне хватит, но это ведь не цель.
Аноним 26/07/20 Вск 13:48:10 1760573124
>>1760481
Файл драйвер. Шифровальщик Xor13
Аноним 26/07/20 Вск 13:48:52 1760576125
>>1760481
Или какой нибудь драйвер клавомышки бот для кликеров.
Аноним 26/07/20 Вск 15:10:31 1760677126
>>1759692
Скажите, если непонятно что.

Зря бы не спрашивал.
Аноним 27/07/20 Пнд 05:15:54 1761194127
Аноним 27/07/20 Пнд 12:44:18 1761428128
7bea2182d8711e5[...].jpg (1188Кб, 1080x1657)
1080x1657
Уффф. Оххххх. Надо второй раз читать.
Аноним 27/07/20 Пнд 13:00:49 1761440129
>>1761194
фу, чуть не блеванул от упоминания этой параши. Не делай так больше, анон, пожалуйста.
Аноним 27/07/20 Пнд 13:22:48 1761450130
>>1761428
Для поинтеров в шапке весьма годная и краткая пдф есть.
Аноним 27/07/20 Пнд 13:48:59 1761462131
Захотел написать программу для своей эл. книги от pocketbook, а там сдк мало того что с 2015 не обновлялся, так еще и на ебучем си, вместо крестов. Так не хочется опять все это дерьмо с велосипедами хлебать.
Аноним 27/07/20 Пнд 13:52:14 1761464132
>>1761462
> Программы для устройств Pocketbook пишутся на C с использование компилятора GCC
А вообще, как то можно написать логику на крестах, и как то работать с ней из кода на си?
Аноним 27/07/20 Пнд 14:51:14 1761510133
>>1761464
Да. Сделать сишный интерфейс (extern "C", не не использовать C++ типы, перехватить все исключения). Ну и рантайм для C++ должен присутствовать.
Аноним 27/07/20 Пнд 14:58:15 1761515134
>>1761510
> Ну и рантайм для C++ должен присутствовать.
Что это значит?
Аноним 27/07/20 Пнд 15:54:18 1761561135
>>1761515

Значит как минимум не баре метал со спецфлагами и необходимостью пилить placement new.
Аноним 27/07/20 Пнд 15:55:26 1761563136
>>1761561
Там линукс вообще стоит
Аноним 27/07/20 Пнд 16:23:00 1761585137
Аноним 27/07/20 Пнд 19:41:55 1761730138
Сап. Есть один нуб, который вообще ничего не знает, но решил взяться за си как за первый язык. K&R ему точно не стоит пихать, ещё не дорос. Сейчас выбор стоит между Пратой и Кочаном. Какой из них предпочтительнее?
Аноним 27/07/20 Пнд 19:45:31 1761733139
>>1761730
Я начинал с k&r свой путь, лучшая книга для вката.
Аноним 27/07/20 Пнд 20:04:41 1761744140
>>1761730
Нахуй тебе си, обмудок?
Аноним 28/07/20 Втр 00:01:46 1761919141
>>1761730
Прата качественнее.
Аноним 28/07/20 Втр 00:20:15 1761931142
https://2ch.hk/pr/res/1711268.html

>>1739810 →
> Для Си умельцы скорее всего тоже либ уже налепили.
Зачастую, кстати, у С-дедов такие библиотеки дают лучшую производительность, чем у С++-миллениалов. Быстрее только на чистом ассемблере. Деды в целом и это могут, но долго это. Поэтому на чистом ассемблере пишут только местами: ту логику/вычисления, которая исполняется 85-99% от общего времени.
Аноним 28/07/20 Втр 09:23:54 1762053143
>>1761730
Программирование на C для начинающих, 3-е издание. Грег Перри, Дин Миллер посмотри эту, ещё Дейтелы.
Аноним 28/07/20 Втр 09:35:50 1762059144
>>1754706 →

Ну и, болтанка в +- полтора кекогерца. Те же пресловутые 5.8 кекогерц опять же были у IBM в те же нулевые в штатном режиме под штатной водой в одном из древних Power.
Аноним 28/07/20 Втр 09:36:57 1762061145
>>1762059

Спиздел, Power 6 595 - 4.2 GHz or 5.0 GHz
Аноним 28/07/20 Втр 09:41:06 1762068146
Аноним 28/07/20 Втр 12:37:10 1762177147
Аноним 28/07/20 Втр 14:36:54 1762259148
>>1754933

Как вообще вкатится в эти битовые операции? Я до сих пор не понимаю нахуй оно нужно и как работает. Нет, я конечно могу прочитать определение и понимаю что надо делать, но не понимаю нахуя и зачем, где это вообще применять.
Аноним 28/07/20 Втр 14:55:19 1762273149
>>1762259
Разработка прошивок, драйверов, виртуальных машин - первое, что приходит на ум. Вся лоу-лвльщина активно юзает битовые операции.
Будешь декодировать опкоды - поймешь почему битовые операции иногда мастхэв.
Аноним 28/07/20 Втр 14:58:06 1762275150
>>1762273

Что почитать, чтобы понять где их вообще и когда применять? Ну вот в том же k&r чуть ли не с первых глав идет это битоебство, причем предполагается, что ты его уже знаешь и знаешь где как применять.
Аноним 28/07/20 Втр 15:12:49 1762301151
Мб тут сидят челы шарящие за qml, у меня есть stackview приложение, в хедере сделал label с названием текущей страницы, но проблема в том, что пользователь может пойти по такому пути (главная->настройки->темы) а потом возвращаться обратно, и вот чтобы написать сверху корректное название страницы, мне нужно знать какая именно сейчас страница, есть ли возможность это узнать?
Аноним 28/07/20 Втр 15:54:57 1762343152
>>1762275
Для начала выучи системы исчисления - шестнадцатиричную и двоичную, если не знаешь. Это основа байтоебства. Октальная тоже не помешает, но первые 2 мастхэв, они приоритетнее, особенно на первых порах.
Потом выучи все основные битовые операции - AND, OR, NOT, XOR.
Пойми что такое LSB/MSB, big/little endian, shift left/right, signed/unsigned числа.
Где это применять? Ты это сам решишь. Но я уже перечислил виды софта, где это часто используется.

Пример - у тебя есть 2-байтовое беззнаковое целое число (читай, uint16_t), допустим это число - 1337. В шестнадцатиричной системе это 0х539, в двоичной - 0000010100111001.
Допустим, тебе надо извлечь старший байт этого числа, а это 0х05 (или 00000101 в двоичной). Ты должен создать т.н. маску - в данном случае она будет выглядеть так - 0хff00 (в двоичной - 1111111100000000). Затем, ты должен знать true table операции AND, чтобы понять следущее:
0000010100111001 & 1111111100000000 = 0000010100000000. В шестнадцатиричной это выходит 0х50. Чтобы получить из этого желаемый старший байт (0х05), ты должен сделать сдвиг вправо на 8 бит (каждая отдельная цифра в шестнадцатиричной системе - это 4 бита), получится 0000000000000101. 101 в шестнадцатиричной - это 0х05, то бишь 5 в десятичной.
Вуаля, из числа 0х539 ты извлек старший байт и можешь его использовать для своих нужд.

Примеров использования очень много, это один из наиболее легких и распространенных. Сначала почитай о тех темах, которые я написал в начале этой простыни, как поймешь все это, вернись к этому после за продолжением, где я извлекал старший байт из двухбайтового числа.
Это несложно на самом деле, просто надо привыкнуть.
Аноним 28/07/20 Втр 17:10:31 1762401153
>>1762259
В жизни наверное нет очевидных примеров чтобы объяснить как сложение на яблоках. В первую очередь приходит в голову комбинаторика - например, битовый set, где каждый бит означает свободно или занято. Сдвигами можно перемещать по местам, можно проверять свободные места, занятые места, проверять по маске конкретные места, сравнивать списки мест, находить свободные/занятые одним/занятые в обоих сетах, считать количество занятых.
Дальше у нас трюки связанные с двоичной арифметикой. Ну как мы проверяем четность в десятичной - если оканчивается на 0,2,4,6,8 - четное. Так в двоичной нам достаточно проверить крайний правый бит. Аналогично левый крайний бит обычно означает отрицательное число. А сдвиги - быстрое умножение на степени двойки (как в десятичной сдвиг на 1 цифру это умножение на 10). Фишка в том что это все намного быстрее всяких делений,умножений, в железе.
Далее, используется в шифровании, контрольных суммах, псеворандоме, подсчете хэша строк. Тут сложно объяснить, суть в закольцованности чисел (как часовая стрелка закольцована и после 12 снова 1). Т.е. одна и та же операция сделанная много раз подряд похожа на "обход конем шахматного поля", пока все поле не обойдешь числа не повторятся.
Далее, в архивации/сжатии, т.е. вообще везде - ZIP, PNG, JPEG, WEBM и так далее. Упрощенный пример - если у тебя только буквы a-z это 26, меньше 32 - влезает в 5 битов. Вот для того чтобы конвертировать поток 5-битных данных в обычные 8-битные байты и обратно, тоже нужны побитовые операции.
Аноним 28/07/20 Втр 17:46:17 1762418154
как написать игру?
где найти туторы или документацию на си по SDLv2?
Аноним 28/07/20 Втр 17:48:25 1762421155
>>1762418
без задней мысли
в гугле
Аноним 28/07/20 Втр 18:46:22 1762487156
>>1762259
>Как вообще вкатится в эти битовые операции? Я до сих пор не понимаю нахуй оно нужно и как работает. Нет, я конечно могу прочитать определение и понимаю что надо делать, но не понимаю нахуя и зачем, где это вообще применять.
У тебя есть гугль, вики, СО и хабр. Нет, ты пришел с этим вопросом на борду для анимешниц.
Аноним 28/07/20 Втр 20:43:47 1762572157
Аноним 28/07/20 Втр 20:45:16 1762573158
>>1762572
Правильно. Писать что то на c смысла нет.
Аноним 28/07/20 Втр 20:56:40 1762580159
>>1762572
А ты писать игру на чистых сях вздумал, шиз?
Аноним 28/07/20 Втр 21:13:17 1762590160
>>1762572
Неправда. Чтобы найти sdl2 на с++ это еще надо очень сильно постараться.
Аноним 28/07/20 Втр 21:15:43 1762592161
>>1762572
Пиши в гугле: sdl2 getting started
Аноним 28/07/20 Втр 21:53:01 1762622162
Задача перевернуть массив целых чисел.
Я сделал и мне понравилось, тащусь с такого:
https://pastebin.com/h50E6zBm
Аноним 28/07/20 Втр 23:51:08 1762709163
>>1762622
Это не declaration. Это definition.
Аноним 28/07/20 Втр 23:51:54 1762710164
>>1762622
>swap через вычитание
аххахахаха
Аноним 29/07/20 Срд 01:18:12 1762776165
>>1762709
Блин, точно. Спасибо.
>>1762710
Задание было про целые числа, ну я и подумал так сделать, ведь нигде кроме целых такое невозможно, без потери точности.
Аноним 29/07/20 Срд 01:48:14 1762798166
Аноним 29/07/20 Срд 03:57:11 1762838167
>>1762798
Это типа ХЗ? Согласен.
Аноним 29/07/20 Срд 06:58:30 1762887168
Аноним 29/07/20 Срд 08:08:16 1762898169
>>1762887

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

Ну и как бы сама парадигма она про очень YOBA ААА с очень большими бюджетами, где нужна оптимизация.
Аноним 29/07/20 Срд 08:13:52 1762900170
>>1762259
>Как вообще вкатится в эти битовые операции? Я до сих пор не понимаю нахуй оно нужно и как работает.

Смотришь таблицу истинности

& - 1 когда в обоих числах в этом месте 1.

| - 1 когда зхотя бы в однгом или в обоих

^ - 1 когда только в одном из двух, но не в обоих.

Из этого следует, что проверяем битики с помощью &, склеиваем маску из отдельных битов с помощью |. Сами биты -это степень двойки, пушо двоичная система. То есть 1 - первый бит, 2 - второй бит, 4 - третий, 8 - четвертый, 16-пятый итд. Эти числа (степени двойки) ты дефайнишь по смыслу и получается вот всякие вот маски.
Аноним 29/07/20 Срд 11:19:35 1762975171
>>1762898
>для области где нужны уже кресты
Тип там со стороны крестов как-то неудобно конкретно этой библиотекой пользоваться?
>на шаблонной магии построено
Вангую, без неё тут охуеешь от boilerplate строчек, то есть шаблонная магия - уже требование.
>Ну и как бы сама парадигма она про очень YOBA ААА с очень большими бюджетами, где нужна оптимизация.
Окей, ну вообще был вопрос про конкретно эту библиотеку. Для использования "большими" она уже сгодится?
Аноним 29/07/20 Срд 13:38:38 1763133172
Есть структура с разнотипными данными. Нужно прочитать из файла часть данных в конец структуры. Вот так будет допустимо прочитать?

fread((char *)&structura + 36, 1, 8, file);
Аноним 29/07/20 Срд 13:42:21 1763136173
>>1762838
Я просто точно не уверен. Но если там будет андерфлоу.
Аноним 29/07/20 Срд 13:43:44 1763139174
>>1762975
В крестах предпочитают шаблонную магию, вместо макросов.
Аноним 29/07/20 Срд 13:44:56 1763141175
Переменные всегда переполняются сбрасываясь в ноль и заполняясь по новой или можно отключить переполнение, чтобы было только максимальное значение в переменной сколько ни прибавляй?
Аноним 29/07/20 Срд 13:59:12 1763166176
Аноним 29/07/20 Срд 14:12:28 1763192177
>>1763141
Заворачивание беззнаковых задано стандартом.
Переполнение знаковых не определено, отлавливается -ftrapv
29/07/20 Срд 16:09:17 1763363178
Пиздец, спросили какую-то лютую хуету, которую можно загуглить за 10 секунд - накатали несколько простынь.

Спросил что посложнее - проигнорили. Заебись.
Аноним 29/07/20 Срд 16:49:00 1763446179
>>1763133
Перепиши, чтобы не было волшебных чисел
Аноним 29/07/20 Срд 17:25:45 1763483180
Начал читать
>Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013)
пока все хорошо
Аноним 29/07/20 Срд 18:17:12 1763549181
>>1763363
Если ты про те сокеты, то никто не собирается писать за тебя программу. Если нет, бампани вопрос.
Аноним 29/07/20 Срд 18:35:35 1763573182
>>1762709
>>1762622
Бля, а нахуя люди такие комменты пишут?
Мало того что неправильный термин, так еще и не раскрывающий сути коммент. Если swap еще понятно, что делает функция, то disp - загадка, то ли disposition, то ли dispersion то ли еще что.
Раз ты пишешь коммент к функции, то напиши человеческим языком, что делает эта функция, то что это определение функции я и без тебя вижу, дублировать такую информацию ни к чему.
Ну а вообще, комменты не нужны, надо правильно подбирать имена, чтоб они сами за себя говорили.
Аноним 29/07/20 Срд 18:39:59 1763575183
Аноним 29/07/20 Срд 18:46:14 1763582184
39e132d70502266[...].jpg (17Кб, 474x419)
474x419
>>1763549
>никто не собирается писать за тебя программу
Я не просил писать за меня программу. Процитируй, где именно я об этом прошу.
inb4: ты об этом подумал, да

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

Вроде вывернул, но проверить пока не судьба.
Аноним 29/07/20 Срд 18:51:00 1763590185
Читаю значится сейчас Прату после планирую пройти K&R и в плюсы. Стоит ли прочитать что-нибудь ещё или старт уже нормальный?
Аноним 29/07/20 Срд 18:54:24 1763592186
>>1763483
Держи меня в курсе.
Аноним 29/07/20 Срд 19:15:03 1763612187
15948363544220.jpg (54Кб, 500x500)
500x500
Даров сисяч.

Я покакол. Такие дела. Говно было длинным и долго не хотело вылезать, но потом все-таки вылезло.

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

int ✱(✱arr(int, char ✱ const (✱const ✱)⟦10⟧))⟦20⟧;

Ты не сможешь.
Аноним 29/07/20 Срд 19:22:57 1763623188
236e17a73d0ae54[...].png (140Кб, 300x256)
300x256
Аноним 29/07/20 Срд 19:26:14 1763626189
15959995450330.png (283Кб, 400x400)
400x400
>>1763363
>>1763582
Ты зря кукарекаешь, вопросы не такие уж и энтрилевельные.
А вот ты пиздуй в /ра со своей лютой есп-хуетой, тут никто твои говнотулчейны знать не обязан.
Аноним 29/07/20 Срд 19:26:21 1763627190
Аноним 29/07/20 Срд 19:27:11 1763628191
Аноним 29/07/20 Срд 19:48:36 1763653192
88-882097call-m[...].png (237Кб, 840x890)
840x890
>>1763626
Тулчейны тут не при чём.

Вопрос целиком Си-шный, по указателям на структуры.

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

Тема закрыта. Спасибо за внимание.
Аноним 29/07/20 Срд 19:57:46 1763661193
>>1763363
А кого ты здесь хотел видеть? Гуру отвечают только за деньги, осиляторы расскажут, что могут.
Аноним 29/07/20 Срд 19:59:23 1763662194
Аноним 29/07/20 Срд 20:00:19 1763664195
>>1763612
arr is a function of
1. int
2. ptr to const ptr to array[size=10] of const ptr to char
returns array[size=20] of ptr to int
Аноним 29/07/20 Срд 20:02:51 1763665196
>>1763664
> arr is a pointer to function of
Быстрофикс
Аноним 29/07/20 Срд 20:07:38 1763669197
>>1763664
arr is a function of
1. int
2. ptr to const ptr to array[size=10] of const ptr to char
returns ptr to array[size=20] of ptr to int
Еще разок
Аноним 29/07/20 Срд 21:03:25 1763701198
15928383845260.jpg (7Кб, 234x216)
234x216
>>1763669
Наш победитель!
Этот тредик поадекватнее, ясно

>>1763665
По-царски пофиксил, лол
Аноним 29/07/20 Срд 21:28:54 1763709199
>>1763653
Ну ты же в силу своих знаний не видишь, что как такового "main" у программы нет, а независимые хендлеры из других контекстов вызывает httpd (обычно это простой демон). Хоть бы разобрался, что дяди написали в примере, потрейсил.

По той же скромности познаний ты не слышал, что сокет закрывается вместе с соединением и вне обработчика (и процесса) его дескриптор не имеет смысла.

Твое желание идет полностью вразрез логике примера.

Но если тебе хочется собирать открытые соединения, то их можно хранить в глобальном списке за rw-локом. Может быть что-то для этого есть и в фреймворке, но читать доки я не собираюсь. Да, этот вопрос
> Тулчейны тут не при чём.
исключительно об этом тулчейне.
Нужно быть чуть менее резким, если ты сам не можешь поставить задачу и не знаешь как работает либа и пример.
Аноним 29/07/20 Срд 21:35:00 1763713200
>#ifdef __x64_x86
>typedef int64_t INT_T;
>#endif
>#ifdef __i386__
>typedef int32_t INT_T;
>#endif

За такое выебут в жепы?
Аноним 29/07/20 Срд 21:37:59 1763715201
>>1763713
Нет, если __макросы стандартны для твоего конпелятора.
Аноним 29/07/20 Срд 21:40:02 1763716202
>>1763713
А зачем такое?
Пользуйся int_least32_t и int_fast32_t в зависимости от необходимости
Аноним 29/07/20 Срд 21:54:52 1763721203
Аноним 29/07/20 Срд 21:58:56 1763727204
>>1763483
>>1763592
Дочитал введение до виртуальной памяти, пока почти ничего нового.
Обнаружил небольшую оговорку на 5й странице.
Аноним 29/07/20 Срд 21:59:58 1763729205
>>1763721
Начинай сразу с плюсов.
Аноним 29/07/20 Срд 22:01:20 1763730206
>>1763729
Хоть уже и поздно но почему? Мне интересен как лоулевел си со всеми этими контроллерами, ядрами, драйверами так и кресты со своим многообразием.
Аноним 29/07/20 Срд 22:47:05 1763769207
>>1763730
Перечитай три поста в цепочке, не ставь C и ядра с драйверами в один ряд. Если C можно освоить за 1к страничек, то к ядру того же линукса ты приступишь только прочитав альманах раз в 10 больше.
Аноним 29/07/20 Срд 22:55:18 1763774208
>>1763769
>три поста
Да ну нахуй, Прата поинтереснее. Как раз 200 страниц осталось добить. Прекрасно понимаю что это только начало и дальше ебаться придётся сильно очень. Но мой план таков: базовый С - C++ до продвинутого левела - устраиваюсь на работку - добиваю C.
Аноним 29/07/20 Срд 23:17:08 1763786209
>>1763774
>Как раз 200 страниц осталось добить
Бротан, пока ты не натрахаешься с сегментейшн фолтами и указателями на указатели указателей, а также требованиями хотя бы одного из стандартов, ни о каком "начальном уровне" не может идти и речи.
Аноним 29/07/20 Срд 23:20:57 1763791210
>>1763774
Как раз таки лучше сначала добить Си до уровня /списки на макросах/указатели на функции/longjmp-контексты/сигналы/posix-треды. Очень поможет с пониманием того, что происходит в ++.
Аноним 29/07/20 Срд 23:26:01 1763797211
>>1763786
Пошёл трахаться чё. За всех двачеров сука, парни!
>указатели
Вообще не ощутил проблем с этой темой. Я нормальный?
Какой стандарт наиболее актуальный? Самый последний или какой-то пораньше? И что долго их учить типо?
>>1763791
Бля, а что по работе на чистом си? У меня дедлайн 1 год до вката куда-нибудь.
Аноним 29/07/20 Срд 23:26:19 1763798212
>>1763573
Бля, ну я же пошутил, ну.
Сама функция swap реализована предельно ебануто, мне просто доставил сам факт возможности такого. Без временной переменной.
Аноним 29/07/20 Срд 23:27:15 1763799213
>>1763727
Можешь прямо тут выложить ее, что тебя держит?
Аноним 29/07/20 Срд 23:55:36 1763829214
Аноним 30/07/20 Чтв 00:03:54 1763835215
Аноним 30/07/20 Чтв 00:12:25 1763840216
>>1763829
Допустим ты хочешь чтобы программа работала быстро с 8 битными значениями, а в процессоре у тебя 64 битные регистры. Тогда ты берешь int_fast...t, и все работает максимально быстро, но в памяти массив таких значений будет занимать в 8 раз больше места. Если же тебе наоборот важнее место, то берешь int_least...t и компилятор подберет минимальный регистр в который значение влезет. Но там возможны лишние инструкции, типа cbw/cwd/cdq, на преобразование в 64 бита для рассчетов, потом упаковка обратно в 8.
Аноним 30/07/20 Чтв 00:28:33 1763849217
>>1763797
> Бля, а что по работе на чистом си? У меня дедлайн 1 год до вката куда-нибудь.
В целом нужно быть спецом в какой-то области, языка одного не хватит. Вакансии обычно такие: мк, linux (системеный софт, сеть, модули). Больше прям "чистого" си нет. Джун должен уже в чем-то хорошо разбираться, работы мало. Вот так что примерно 10 Прат накодить какой-нибудь системно-сетевой хуеты для linux и что-нибудь сможешь, но года точно не хватит.
Аноним 30/07/20 Чтв 07:40:27 1763939218
>>1762975
>шаблонная магия

Макросная, конечно же.
Аноним 30/07/20 Чтв 07:42:26 1763940219
>>1762975

Да нормальная библиотека, просто ты даже игровую-то логику заебешься в ECS-парадигму укладывать, что уж говорить про сириус бизнес логику вроде всяких там веб-серверов с откликом 0.5мс.
Аноним 30/07/20 Чтв 07:57:01 1763947220
>>1763791
>добить Си до уровня /списки на макросах/
Прочитал вписки на макросах
Аноним 30/07/20 Чтв 10:41:37 1764033221
>>1763797
>Бля, а что по работе на чистом си? У меня дедлайн 1 год до вката куда-нибудь.

Покупаешь у китайцев девборду на stm32, учишь тамошний даташит, покупаешь и обмазываешься радиоконструкторами на всяких там бредбордах, пытаешься устроиться или в пыняронку или в прочие гражданские производственные объединения, еще чудом сохранившиеся после совка, по выпуску утюгов "чугуевск", чей гендир уже сыто облизывается на сдать всю хуйню в металл а недвигу - под офисы и склады.
Аноним 30/07/20 Чтв 10:42:10 1764034222
>>1764033
>пыняронку

Ну или в бульбаронку, если из беларуси.
Аноним 30/07/20 Чтв 11:04:57 1764054223
want.jpg (52Кб, 550x412)
550x412
>>1764033
>или в прочие гражданские производственные объединения, еще чудом сохранившиеся после совка, по выпуску утюгов "
Аноним 30/07/20 Чтв 11:07:38 1764060224
>>1764054

Нужно спешить, пока ты пишешь эти буквы, в раше один красный директор уже пожимает волосатую руку хача трюкача , в то время как грузчики вывозят совковое оборудование (у тех кому повезло в 90е и нулевые и кто сыто мурчали - списанное немецкое) в металлоприемку.
Аноним 30/07/20 Чтв 11:35:25 1764104225
>>1763797
> У меня дедлайн 1 год до вката куда-нибудь.
Учи джаваскрипт
Аноним 30/07/20 Чтв 11:54:12 1764123226
Screenshot20200[...].png (153Кб, 962x579)
962x579
>>1763799
Собственно, вот. как и в кодинге, скопипастили наверное
Аноним 30/07/20 Чтв 12:35:08 1764170227
Аноним 30/07/20 Чтв 12:41:38 1764177228
>>1764170
Чому opengl не возьмешь? И тебе нужен будет физический движок? Если да, то мне кажется ты сдохнешь быстрее, чем успеешь все это написать.
Аноним 30/07/20 Чтв 12:44:36 1764180229
>>1764104

А дальше куда? Лендинги клепать за 1,5 рубля7

Вопрос философский какой язык выучит что б потом можно в любую стороны перекатиться?
Аноним 30/07/20 Чтв 12:45:14 1764182230
>>1764177
на opengl не смотрел еще
физический движок возможно будет нужен
Аноним 30/07/20 Чтв 12:46:30 1764183231
>>1764182
Ты это чисто для себя делаешь? И что ты хочешь в конце получить?
Аноним 30/07/20 Чтв 12:47:03 1764184232
>>1764180
> А дальше куда? Лендинги клепать за 1,5 рубля7
А дальше на работу где платят в несколько раз больше чем на сях, хотя конечно язык не илитный.
Аноним 30/07/20 Чтв 12:52:58 1764187233
>>1764182

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

https://github.com/orangeduck/Corange

прикручиваешь нему вот это:

>>1762068

Потом на выбор - или вот это:

https://www.lua.org/pil/contents.html#P4

Или вот это:

https://duktape.org/

И потом делаешь для всего этого гуй. На вот этом:

https://developer.gnome.org/gtk3/



Аноним 30/07/20 Чтв 13:05:16 1764198234
>>1764184
говорят на дваче фронтенд всё. сотни вкатышей на одну вакансию.
Аноним 30/07/20 Чтв 13:12:51 1764204235
>>1764183
хотелось бы в конце заработать на стиме
Аноним 30/07/20 Чтв 13:19:30 1764216236
>>1764204

>хотелось бы в конце заработать на стиме

В таком случае переучивайся на сисярп и качай Юнити.

С с очень большой натяжкой может быть востребован в мобильном гейдеве - там есть абсолютно незанятая ниша выосокооптимизированных игорь, которые летают на китайских калькуляторах за десятку из салона связи в зажопинске.
Аноним 30/07/20 Чтв 13:59:24 1764266237
>>1764187

я еще не готов писать свой рендерер
игра 2д будет
Аноним 30/07/20 Чтв 13:59:59 1764267238
Аноним 30/07/20 Чтв 14:12:11 1764289239
>>1764266

А должен быть готов, если уж полез в сириус С.

Задача должна быть амбициозной.

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

Аноним 30/07/20 Чтв 14:14:32 1764295240
>>1764187
Corange тема, правда как мне показался немного тяжеловат для примитивных (что в 90% случаев пишут) 2d проектов. Для 3d вроде гуд.
мимо разбирал демку платформера и движок
Аноним 30/07/20 Чтв 14:23:11 1764316241
>>1762275
Насчёт где применять - низкоуровневая математика (быстрый обратный корень Кармака, логарифм целого числа, предпосчитанные таблицы синусов и косинусов через сложение и умножение, правда уже не актуально быстрый модуль...), всё мать его хеширование и криптография (любой хеш алгоритм, кодирование Хаффмана...), низкоуровневая работа с ошибками (при передаче данных например), маски и error коды правда тоже не особо актуально, только если в системщине. Что сразу на ум пришло, а вообще - все на низком уровне делается с байтооебством и оттуда порой вытекает магия высокого уровня, например оптимизации в высокоуровневых языках
Аноним 30/07/20 Чтв 14:45:43 1764348242
>>1764316
Всё это проще и приятнее делать на плюсах, чем на говне мамонта.
Аноним 30/07/20 Чтв 14:49:07 1764350243
>>1764316
> быстрый обратный корень Кармака
Це UB
Аноним 30/07/20 Чтв 14:51:03 1764352244
>>1764348
На плюсах пишется тоже лоу лвл софт, наивный. Ебать битики, разрабатывая на плюсах, отнюдь не редкость.
Аноним 30/07/20 Чтв 15:00:28 1764359245
>>1764350

Когда петушки научатся в отличать UB и ID.

Петушков послушать так нужно венду и лялих сносить -там тоже UB - по указателю в регистры железяк лазиют.
Аноним 30/07/20 Чтв 15:04:27 1764361246
>>1764359

Да и сам язык UB - с помощью union можно битики теребить и анальные поля гладить.
Аноним 30/07/20 Чтв 15:08:13 1764363247
>>1764359
>The following code is the fast inverse square root implementation from Quake III Arena...
long i;
float x2, y;
i = ( long ) &y;
...
y = ( float ) &i;
Аноним 30/07/20 Чтв 16:35:55 1764411248
>>1764350
Если компилировать с отключеным strict aliasing, то норм (а в студии он так вообще всегда отключен)
Аноним 30/07/20 Чтв 20:27:56 1764554249
Как часто вы используете постфиксный инкремент/декримент?
Аноним 30/07/20 Чтв 20:32:39 1764556250
Аноним 30/07/20 Чтв 21:13:48 1764578251
>>1764554
Любой контейнер на массиве например, не?
Аноним 30/07/20 Чтв 21:18:17 1764580252
>>1764578
>контейнер
А туда ли ты пришёл?
Аноним 30/07/20 Чтв 21:29:25 1764586253
Аноним 30/07/20 Чтв 22:07:34 1764604254
>>1764580
Да, там где нужно, а ты зачем интересуешься?
Аноним 31/07/20 Птн 09:28:10 1764762255
>>1754859 (OP)
    Допустим, у нас есть некоторая библиотека, подключаемая к основной программе, а в ней есть переменная "value". Интерфейсом (API) библиотеки предусматрено только чтение этой переменной.
    Правильно ли будет в таком случае сделать переменную "value" статической(т.е. изменять её можно будет только в файле библиотеки), а для доступа к ней сделать функцию чтения этой переменной?

    Например так:

>/ Внутренняя переменная библиотеки /
static uint8_t value = 0;

>/ Функция доступа к внутренней переменной /
uint8_t read_value(void)
{
        return value;
}
Аноним 31/07/20 Птн 12:06:25 1764836256
>>1764762
Я не оп, но совершенно правильно.
У такого подхода есть еще плюс: в будущем переменная может быть убрана, а функция сможет вычислять обещанное значение.
Аноним 31/07/20 Птн 16:01:43 1765030257
S56543537565462[...].png (218Кб, 840x638)
840x638
>>1764604
>а ты зачем интересуешься?
Хуй будешь?
Аноним 31/07/20 Птн 16:12:19 1765047258
>>1763709
>Ну ты же в силу своих знаний не видишь
>По той же скромности познаний ты не слышал
>Нужно быть чуть менее резким
Хех, пока читал - мысленно представлял, как ты раздуваешься, набивая текст, а при отправке трещишь по швам.

>Твое желание идет полностью вразрез логике примера.
Было бы странно, если бы пример делал именно то, что я хотел, да?
Аноним 31/07/20 Птн 16:30:17 1765057259
Объясните мне бажожда доступно почему такая реализация не работает и не должна работать?

double lowest = ((a < b) && (a < c)) ? a : ((b < a) && (b < *c)) ? b : c;
Аноним 31/07/20 Птн 16:32:22 1765058260
image.png (82Кб, 1770x824)
1770x824
>>1765057
Лол, указатели спиздили.
Аноним 31/07/20 Птн 16:34:01 1765059261
>>1765057
Потому, что ты проебался с синтаксисом тренарного оператора.
Аноним 31/07/20 Птн 16:45:42 1765067262
image.png (75Кб, 1576x564)
1576x564
>>1765059
Лол, только на скрине заметил, что не проставил указатели в конце. Вроде заработало. Спасибо, пацаны!
Аноним 31/07/20 Птн 17:37:06 1765090263
>>1765067
Там все шкобки не нужны
Аноним 31/07/20 Птн 17:42:36 1765098264
832868.png (74Кб, 645x729)
645x729
Аноним 31/07/20 Птн 17:42:53 1765100265
>>1765090
Ну скобки хоть какую-то редабильность дают этому месиву. Или так норм писать ммм?
Аноним 31/07/20 Птн 17:43:30 1765102266
>>1765098
Да да да, давай порофли над вкатывальщиком на 8 дне учёбы.
Аноним 31/07/20 Птн 17:44:39 1765103267
Аноним 31/07/20 Птн 17:46:55 1765107268
Аноним 31/07/20 Птн 19:05:21 1765153269
image.png (10Кб, 585x96)
585x96
Объясните дебилу, что не нравится этому ебобаному компилятору. Как тут может быть оверфлоу? Я так понял, что -1 не отнимает единицу, а прибавляет 232-1, и поэтому технически получается оверфлоу. Тогда как это исправить, оставив при этом беззнаковый тип?
Аноним 31/07/20 Птн 19:08:19 1765157270
>>1765153
упд: замена на int32_t не помогла
Аноним 31/07/20 Птн 19:09:44 1765160271
image.png (9Кб, 550x98)
550x98
Аноним 31/07/20 Птн 19:19:05 1765164272
>>1765153
Короче, нашел проблему. Единица, которая в начале, воспринималась компилятором как signed int. Решил проблему так:
static const uint32_t lower = ((uint32_t)1<<MT32_R)-1, upper = ~(((uint32_t)1<<MT32_R)-1);
Выглядит отвратно, но хотя бы варнингов нет.
Аноним 31/07/20 Птн 19:20:50 1765166273
Пацаны, вот есть адресное пространство процесса. Когда мы исполняем уже готовый опкод в С, как логически осуществляется его работа на уровне памяти? Я это как представляю: код исполняется в рамках отдельного процесса, у него есть своё адресное пространство, там лежит сам код, данные программы и её стек. Где тут КУЧА и причём тут КУЧА?
Аноним 31/07/20 Птн 19:29:19 1765175274
>>1765164
>Единица, которая в начале, воспринималась компилятором как signed int
Натуральные константы можно делать unsigned добавлением u или U если это и надо было
Аноним 31/07/20 Птн 19:34:02 1765179275
>>1765175
Спасибо. Знал только про существование L и f.
Аноним 31/07/20 Птн 19:45:22 1765189276
>>1765166
>готовый опкод в С
Чаво? Опкод - кодировка определенной комманды, которую исполняет процессор определенной архитектуры. После опкода идут, как правило, immediate значения и/или регистры, вместе они формируют инструкцию, например, mov rax, rbx => 48 89 d8, в данном случае, опкод это 48, в которую закодирована команда mov в архитектуре х86-64. Что значит, блять, готовый опкод в С? Ты проверь сначала знаешь ли ты то, о чем ты говоришь.
>Где тут КУЧА и причём тут КУЧА?
Куча - это отдельно выделенный сегмент памяти для: а) Хранения буферов, размер которых неизвестен во время компиляции. б) Для хранения больших буферов.
Попробуй создать массив на 1 гигабайт на стэке, у тебя программа свалится в сегфолт из-за переполнения стэка. Стэк - СТАТИЧЕСКИЙ сегмент памяти, который используются для вызова фнукций (стэковые фреймы процедур определяются как раз там), для хранения переменных окружения и локальных переменных. Куча - ДИНАМИЧЕСКИЙ сегмент памяти, использование которого я объяснил чуть выше.
Аноним 31/07/20 Птн 19:45:29 1765191277
>>1765166
Куча емнип там же где и стек, т.е. в сегменте данных. Стек и куча могут даже пересечься, т.к. увеличиваются навстречу друг к другу. как-то так, вроде.
Аноним 31/07/20 Птн 19:52:52 1765200278
>>1765191
Это зависит от ОС, в Линуксе, например, между стэком и кучей есть memory mapped area, куда маппятся все динамические либы (тот же libc) и где выделяется память при системном вызове mmap.

>могут даже пересечься
В популярных ОС этого не случится. Размер стэка статичен, а вот при выделении слишком большого кол-ва памяти на куче, если следующая аллокация затронет стэк, то память на куче просто не выделится и malloc вернет NULL
Аноним 31/07/20 Птн 20:03:39 1765209279
>>1765189
Куча является частью адресного пространства процесса?
Аноним 31/07/20 Птн 20:13:20 1765214280
А-а-а-а, всё, я понял, спасибо за ответы
Аноним 31/07/20 Птн 20:14:31 1765216281
>>1765164
>Единица, которая в начале, воспринималась компилятором как signed int

Моё любимое UB
unsigned long long l = 50000 ⚹ 50000;
printf("%llu",l);
Аноним 31/07/20 Птн 20:18:34 1765221282
>>1765209
конечно, а как ты себе это представлял? Ты думал, что куча расшарена на все процессы или что? Странный вопрос просто, не обуссудь.
Аноним 31/07/20 Птн 20:18:59 1765222283
>>1765166
Стандартом не описано.
Аноним 31/07/20 Птн 20:19:27 1765223284
>>1765221
*обессудь
быстрофикс
Аноним 31/07/20 Птн 20:20:10 1765224285
>>1765222
это был скорее вопрос не по си, а по основам работы операционных систем.
Аноним 31/07/20 Птн 20:20:57 1765225286
>>1765221
Да я Таненбаума введение читаю, он там нихера про кучу мне не написал пока, только на голову наложил, зато про прерывания от души рассказал по
Аноним 31/07/20 Птн 20:21:31 1765227287
Аноним 31/07/20 Птн 20:21:42 1765228288
>>1765224
Вы извините, что я итт спрашиваю, просто где ещё, в джаваскрипт-треде, что ли, лол. В общем шизы одни
Аноним 31/07/20 Птн 20:26:34 1765232289
Аноним 31/07/20 Птн 20:28:28 1765233290
>>1765100
По крайней мере второй уровень выглядит избыточным.
Аноним 31/07/20 Птн 20:29:45 1765234291
ackchyually.jpg (7Кб, 225x225)
225x225
>>1762709
>>1763573
Определения также являются объявлениями
Аноним 01/08/20 Суб 02:15:37 1765342292
>>1765047
Давай я еще раз попробую до тебя донести:

> Надо получить дескриптор и заголовок сокета из обработчика прерываний и сделать их доступными для вызова функции httpd_queue_work() из основного цикла программы int main().
В логике сервера main выступает в виде "стартера", сервер вне хендлеров потоки не порождает. Так что где ты хочешь использовать тот мусор, что можно получить, - загадка.

Заголовок (заметь, не сокета, а http-запроса) будет состоять из кучи поинтеров на разные куски буферов, они будут очищены после отработки хендлера в queue. Получаем мусор на выходе.

Дескриптор сокета после отработки хендлера - мусор.

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

> Хех ...
На вопрос твой никто не отвечал, сам ты усилий никаких не приложил. В ответе по коду ни единого слова, только вот этот перл.
Аноним 01/08/20 Суб 03:34:49 1765348293
>>1765342
Посмотри на эту функцию:
https://github.com/espressif/esp-idf/blob/master/examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c#L56

Она получает заголовок и дескриптор сокета из обработчика.
Насколько я понял, её можно использовать, чтобы сервер отправлял данные самостоятельно, не дожидаясь сообщений \ запросов от клиента, кроме первого.

>На вопрос твой никто не отвечал, сам ты усилий никаких не приложил. В ответе по коду ни единого слова, только вот этот перл.
Я стараюсь, порой безрезультатно.
01/08/20 Суб 04:19:03 1765351294
>>1764836
> У такого подхода есть еще плюс: в будущем переменная может быть убран
И минус: в будущем переменная скорее всего не будет убрана, и софт будет тормозить на пустом месте, пока его не перепишут с нуля. А ведь можно было просто сказать "не пишите, будет ой-ой".
Аноним 01/08/20 Суб 14:13:00 1765511295
>>1765189
>mov rax, rbx => 48 89 d8
>опкод это 48, в которую закодирована команда mov в архитектуре х86-64
Если не знаешь ассемблер, зачем выёбываться? 48 это префикс (REX.W), который обозначает, что следующий за ним опкод будет принимать 64-битные операнды. Опкод (точнее, один из опкодов) mov - 89.
Аноним 01/08/20 Суб 20:25:38 1765837296
>>1765351
Ой, ну какая там разница в скорости. Зато детали реализации надёжно скрыты, а это правильно.
Аноним 02/08/20 Вск 00:54:55 1765967297
02/08/20 Вск 02:13:20 1765992298
>>1765837
Разница в скорости практически никакая, но подобные стремления все огородить от самого себя никогда не ограничиваются одной переменной.

>>1765967
Не решает проблему. Если у тебя либа, и ты выкинешь __val, то старые версии программ ее не найдут. А если ты контролируешь код, который использует эту переменную, то у тебя вообще проблем нет - встроенный в любую IDE рефакторинг отлично заменит использование переменной на вызов функции. И даже если рефакторинга нет, и ты вимомазохист, ты все еще можешь одними регэкспами справиться.
Аноним 02/08/20 Вск 03:51:31 1766010299
>>1765342
Спасибо, высокомерный пидор.
Аноним 02/08/20 Вск 09:32:50 1766079300
image.png (5454Кб, 1908x2520)
1908x2520
Что скажете по поводу этой книги?
Аноним 02/08/20 Вск 09:33:16 1766080301
image.png (5454Кб, 1908x2520)
1908x2520
Что скажете по поводу этой книги?
Аноним 02/08/20 Вск 09:37:28 1766081302
>>1763661
>расскажут

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

мимо кресто-барон 7 лет коммерческого опыта, на крестах и сях со школы
Аноним 02/08/20 Вск 09:39:12 1766082303
>>1766080
Нормально, все энтри левел книжки более-менее одинаковые.
Аноним 02/08/20 Вск 10:00:16 1766088304
>>1766081
>любому адеквату (и не только) отвечать будет попросту западло.
Ну да, ну да.
Сюда ты зашёл в надежде обсудить теорему Сосницкого-Лавуазье. А тут на тебе, у кого-то что-то не срастается на каком-то уровне. да как они посмели.

Пошёл на хуй, короче.
Аноним 02/08/20 Вск 10:00:27 1766089305
>>1766080
Кал бомжа. Читай кернигана & ричи и не выебывайся
Аноним 02/08/20 Вск 14:00:02 1766160306
>>1766089
на месте, я спокоен
Аноним 02/08/20 Вск 14:15:46 1766187307
Аноним 02/08/20 Вск 14:53:04 1766233308
>>1766080
Я бы с такой обложкой не брал.
Аноним 02/08/20 Вск 15:01:43 1766247309
image.png (387Кб, 474x548)
474x548
>>1766233
Почему? Современно, модно, молодежно.
Аноним 02/08/20 Вск 15:23:32 1766270310
>>1766080
>Порезвись в стандартной библиотеке С
Блять.
Аноним 02/08/20 Вск 16:25:01 1766327311
Сяч, здравствуй снова. Вот есть такая конструкция:

if(IP>=SIZE_PROG || IP<0 || somefunct(&IP)) return -1;

ИП после вызова вероятно получит новое значение. Я же правильно понимаю, что конпелятор ЭНИВЕЙ выставит самый высокий приоритет функции, а потом уже распределит остальное?

>>1766080
Что-то хер встал с этих аннотаций.
Аноним 02/08/20 Вск 17:18:18 1766375312
>>1766327
>что конпелятор ЭНИВЕЙ выставит
На компилятор нельзя надеяться.
Нужный тебе приоритет нужно обозначать скобочками, как в условиях, так и в арифметических выражениях.
Как в нашей конторе говорили дедушки (си-синьоры с большим опытом работы): "На компилятор надейся, да сам не плошай".
Аноним 02/08/20 Вск 17:19:44 1766376313
>>1766081
>кресто-барон 7 лет коммерческого опыта
За 7 лет стал синьором?
Почему так быстро?
Аноним 02/08/20 Вск 17:28:29 1766387314
>>1766375
Судя по ассемблерному листингу, приоритет у первой операции. А дидам - спасибо, так и сделаю.
Аноним 02/08/20 Вск 17:38:35 1766397315
>>1766327
Нет, с чего ты взял? Слева направо, причем до первого сработавшего.
Аноним 02/08/20 Вск 18:02:52 1766426316
>>1766327
int a;
some_actions(&a);
if (a &&
a==100)) printf("*a==100!");

Вопрос: можно ли так писать и почему?
Аноним 02/08/20 Вск 18:17:14 1766453317
>>1766426
а почему нет?
только зачем отправлять адрес адреса в какие-то
действия?
Аноним 02/08/20 Вск 18:23:27 1766473318
>>1766426
Писать то можно, ведь компилятор и не такое сожрет.
Но не нужно, потому что тот, кто будет поддерживать твой код, найдет твой адрес и даст тебе люлей за такой говно-style.

Одна из Парадигм Правильного Программирования (ППП) гласит: когда пишешь код, всегда пиши его так, как будто бы человек, который будет работать с твоим кодом, знает твой адрес.
Аноним 02/08/20 Вск 18:32:44 1766488319
>>1766453
some_actions - это какие-то действия с указателем перед проверкой, даун.

>>1766473
Евгеньваганыч, вопрос был не про стиль, а про корректность последней строчки.
Аноним 02/08/20 Вск 18:36:45 1766493320
>>1766488
>Евгеньваганыч
Я писал пост абсолютно серьезно.
> вопрос был не про стиль, а про корректность последней строчки.
Мой пост и относится к последней строчке. Написана она через жопу: почему человек, который будет читать твой код, должен догадываться, как компилятор выставит приоритет в условии? Поставь нужные скобочки, чтобы приоритет мог трактоваться однозначно.
Аноним 02/08/20 Вск 18:53:19 1766515321
В треде есть студенты Школы 21, которых, как я слышал, дрочат на Си?
Расскажите, что и как у вас в плане сложности обучения и можно ли вылететь из школы, если нихуя не социализированный хиккан
Аноним 02/08/20 Вск 19:02:32 1766528322
>>1766515
>Школы 21
Что это?
Какая та параша типо "Академии ШАГ"?
Аноним 02/08/20 Вск 19:04:35 1766531323
>>1766515
Подумай пчел, это для совсем необучаемых дебилов. И туда как бы идут всякие дядьки по 32-35 лет без образования, я не шарю но думаю ты там не в своей тарелке будешь. Ну и если бы ко мне на собеседование хрюшка (особенно если бы мне нужно было найти си-тварь) привела пчеленсона и он бы представился как ученик школы 21 я бы ему сразу сказал эм ну нам надо подумааать))
Аноним 02/08/20 Вск 19:11:51 1766536324
image.png (2281Кб, 1280x750)
1280x750
>>1766531
>привела пчеленсона и он бы представился как ученик школы 21 я бы ему сразу сказал эм ну нам надо подумааать))
Што, прямо вот так бы и сказал: "эээм хрю мня пуук мне нада падумать))))".
А если бы это был бы ученик Академии ШАГ тоже бы так ответил?
Аноним 02/08/20 Вск 19:13:43 1766537325
>>1766426
>можно ли так писать и почему?
(4). Unlike the bitwise binary & operator, the && operator guarantees left-to-right evaluation; there is a sequence point after the evaluation of the first operand. If the first operand compares equal to 0, the second operand is not evaluated.
Аноним 02/08/20 Вск 19:18:04 1766539326
>>1766537
>(4). Unlike the bitwise binary & operator, the && operator guarantees left-to-right evaluation; there is a sequence point after the evaluation of the first operand. If the first operand compares equal to 0, the second operand is not evaluated.
А можно теперь человеческим языком?
Аноним 02/08/20 Вск 19:42:55 1766568327
>>1766539
Выражения между &&(и ||) вычисляются слева-направо, если одно не соответствует условию, то следующие не вычисляются. Т.е. эта хуйня:
if (a && ⚹a==100)) printf("a==100!");
эквивалентна:
if(a){
if(⚹a==100){
printf("
a==100!");
}
}
Аноним 02/08/20 Вск 20:07:31 1766581328
>>1765992
> А если ты контролируешь код, который использует эту переменную, то у тебя вообще проблем нет - встроенный в любую IDE рефакторинг отлично заменит использование переменной на вызов функции. И даже если рефакторинга нет, и ты вимомазохист, ты все еще можешь одними регэкспами справиться.
Испанский стыд, достаточно макрос переписать.

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

Вообще вот если переменная интенсивно используется юзер-кодом и не поддается передаче юзеру (т.е. меняет состояние между вызовами из одного потока) - она разделяемая, такими обычно бывают всякие спинлоки и счетчики. Спинлоку можно почти без оверхеда предоставить функциональный интерфейс, а счетчик должен иметь интерфейс без функции.
Лучше не иметь подобных объектов в либе, в остальных случаях обычно используется функция, не всегда скрытая макросом.
Аноним 02/08/20 Вск 20:29:03 1766599329
>>1766539
Учи английский, ведь авторы Си говорят на нем, а не на украинском.
Аноним 02/08/20 Вск 21:21:29 1766639330
>>1754859 (OP)
а есть толковые книги на русском? я инглиш ниасилил, патамушта я ватан и топлю за славянский софт, мечтаю купить русский комп, на эльбрусе и накатить туда астру, двигать вперёд отечественную айти индустрию, назло врагам и на зависть недругам, ибо за державу обидно, да, но вот заковыка: нужно знать Си, а с инглишем беда, да и боюсь я, что изучение инглиша пошатнёт мои внутренние скрепы и порушит патриотизм, как мне быть, аноны? я реально боюсь, накидайте ссылок, как изучить Си на моём великом и могучем великорусском языке
Аноним 02/08/20 Вск 21:28:59 1766641331
>>1766639
>а есть толковые книги на русском?
Прату уже давно перевели и вполне годно.
Аноним 02/08/20 Вск 21:39:49 1766647332
>>1766639
Полно русских языков программирования.
Аноним 02/08/20 Вск 21:48:13 1766652333
>>1766647
на 1С операционные системы не пишут (
а Си на инглише, это ставит меня перед дилеммой: я хочу помочь Родине, но для этого нужно знать годный ЯП, то есть Си, а в то же время я не хочу учить инглишь, потому что я его плохо усваиваю, да и не хочу подрывать свой патриотизм чтением иностранной литературы и слушанием вражьих голосов, мне комфортно среди родных берёз и осин, а все изучавшие инглиш хотят на чужбину, рисуют поросёнка и читают "пора валить"
Аноним 02/08/20 Вск 21:52:27 1766653334
Аноним 02/08/20 Вск 21:55:16 1766655335
>>1766652
Надо, Федя, надо учить язык вероятного противника. Думаешь полковник Исаев учил немецкий из любви к вражьим голосам Гёте?
Аноним 02/08/20 Вск 21:56:45 1766657336
>>1766080
Странно загуглил книжку нашёл похожую от двух авторов
Автор: Дэвид Гриффитс, Дон Гриффитс
А теперь одна хуемразь в авторах?
Аноним 02/08/20 Вск 21:58:14 1766659337
Аноним 02/08/20 Вск 22:05:09 1766665338
>>1766655
тяжело даётся мне эта вражина, душа к нему не лежит, и слова всё хитрые, читаются не так, как пишутся, бесовщина сплошная, как из Земля матушка терпит окаянных
я хотел было побырому выучить, но быстро из меня это выветривается, видать отторгает её моё нутро русское
Аноним 02/08/20 Вск 22:08:09 1766668339
>>1766665
Я ночи насквозь спать не буду, последнего здоровья лишуся, но… — и, скрипнув густыми мелкими зубами, докончил: — язык этот выучу! На английском языке буду без нежностев гутарить с мировой контрой! Пущай гады трепещут заране!
02/08/20 Вск 22:08:23 1766669340
Аноним 02/08/20 Вск 22:18:56 1766676341
>>1766668
> язык этот выучу! На английском языке буду без нежностев гутарить с мировой контрой! Пущай гады трепещут заране!
Кончен разговор, Нагульнов! Решением бюро ты исключен из наших рядов.
Такие вы партии не нужны. Клади сюда партбилет!
Аноним 02/08/20 Вск 22:27:42 1766681342
>>1766639
катись-ка отсюда нахуй, Иванушка-дурачок хотя скорее ты просто недотролль
Аноним 02/08/20 Вск 23:13:50 1766707343
Аноним 02/08/20 Вск 23:21:50 1766710344
>>1766493
>почему человек, который будет читать твой код, должен догадываться
А он не должен догадываться, евгеньваганыч. Он должен стандарт знать (тебя, кстати, это тоже касается). А на каждого неграмотного уебка никакой мисры не напасешься.
Аноним 02/08/20 Вск 23:29:29 1766712345
>>1766599
>Учи английский,
Зачем мне учить англо-саксонский нахрюк? Мне хватает и русского.
>ведь авторы Си говорят на нем
Авторы говорят на одном языке, пользователи - на другом.
Аноним 02/08/20 Вск 23:47:31 1766722346
image.png (34Кб, 537x298)
537x298
>>1766710
>А он не должен догадываться, евгеньваганыч. Он должен стандарт знать
Ну как бы понятно, что раз человек пишет на языке Си, то он его знает. Но такие вещи разные компиляторы компилируют по разному, и допускать их в коде нельзя, иначе это будет говно-код, работающий только с конктретным компилятором.
>(тебя, кстати, это тоже касается).
С чего бы это? Я знаю язык Си.
>А на каждого неграмотного уебка
Неграмотные уебки это те, кто пишет код как на пикче, руководствуясь при этом правилом: "Компилятор не ругается, значит хороший код! Как трудно в нем разобраться? Ничего не знаю, стандарту языка он соответствует." Код должен быть понятен людям в первую очередь, а не компилятору.
>никакой мисры не напасешься.
Некоторые из их правил вполне не мешает вшить в компилятор, имхо. Хотя большая часть правил не нужны, например, запрет адресной арифметики.
Аноним 03/08/20 Пнд 00:46:40 1766733347
DerevyannyjBuran.jpg (196Кб, 900x600)
900x600
>>1766722
>Но такие вещи разные компиляторы компилируют по разному
В своих маняфантазиях можешь компилировать, как угодно, петушок, а вот реальные компиляторы обязаны компилировать вполне определенным образом. А ты ведь, я смотрю, совсем необучаемый: тебе уже за меня и цитату из стандарта приволокли >>1766537 на которую я и байтил собсно, а ты все кудахчешь об своих конпиляторах за каким-то хуем.
>Я знаю язык Си
Ты его не знаешь.
>не нужны, например, запрет адресной арифметики
Ты троллишь тупостью, ясно.
Аноним 03/08/20 Пнд 00:51:53 1766736348
Аноним 03/08/20 Пнд 01:09:39 1766746349
>>1766736
Он прав. Языку больше полувека. Есть стандарт, там написано, как какие выражения обрабатываются, если компилятор реализует это как-то иначе, чем как описано в стандарте, то это уже не компилятор языка С. Но для такого примитивного сценария это невозможно, лол, особенно если ты используешь что-то вроде кланга или гну с компилера.
А в стандарте указано, что есть ровно четыре операции, операнды которых всегда вычисляются слева направо: &&, ||, ?: и запятая (но именно оператор, а не сепаратор, т.е. не в объявлении аргументов функции, например). Я это знаю, потому что я очень внимательно читаю k&r, и вам советую
Аноним 03/08/20 Пнд 02:54:39 1766788350
>>1766733
Компиляторы ничего не обязаны, кроме стандарта. Стандарт = конечное множество правильных вариантов кода + конечное множество неправильных вариантов кода (где все конпеляторы должны печатать error/warning). А вариантов говнокода - бесконечное множество. Бесконечное множество МИНУС два конечных множества РАВНО все еще бесконечное множество UB. И если реализации двух разных компиляторов хоть чем-то отличаются друг от друга, где-то 100% вылезет разное UB.
мимо
Аноним 03/08/20 Пнд 08:56:02 1766848351
>>1766639
>а есть толковые книги на русском?
Все основные книги уже давно переведены на русский: керниган ричи(все 3 издания), справочник шилдта, пратта и т.д.
>>1766652
Английский знать не надо, в Си нужно только запомнить ключевые слова, их там всего с десяток: main, if, else, while, for, switch, case, break, return, continue(континюе).
Аноним 03/08/20 Пнд 09:10:38 1766862352
15875549334570.png (91Кб, 625x773)
625x773
Аноним 03/08/20 Пнд 09:51:58 1766897353
>>1766531
>И туда как бы идут всякие дядьки по 32-35 лет без образования

Туда же вроде наоборот мамкиных какиров берут со школы и первых курсов, а 30-летним бумерам от ворот поворот?
Аноним 03/08/20 Пнд 19:44:38 1767617354
Так что на сходняке порешали?
Мне в
a>0 && b==c || !d
надо засирать всё скобками или нет?
Аноним 03/08/20 Пнд 20:21:36 1767652355
Блин, анончики, что теперь так и будет?
Чтобы развернуть массив надо писать 3 функции?
Решаю Прату.
https://pastebin.com/YtEu24JV
Аноним 03/08/20 Пнд 22:12:35 1767755356
>>1767652
А тебе говорили не надо С++ с Си начинать
Аноним 03/08/20 Пнд 23:03:14 1767787357
>>1767755
Я взрослый уже, не слушаю даунов.
Аноним 03/08/20 Пнд 23:11:45 1767789358
>>1767787
Этим дауном был автор с++...
Аноним 03/08/20 Пнд 23:26:00 1767795359
>>1767789
Надо было Альберт Энштейн, было бы лулзовей.
Аноним 04/08/20 Втр 11:31:05 1768002360
>>1767617
Здесь кунпелятор вывалит одно предупреждение, вот там и поставь.
Аноним 04/08/20 Втр 11:39:45 1768012361
>>1767617
скобками надо засерать в любом случае, потому что тот, кто читает код, должен его просто блять ЧИТАТЬ, а не напрягать извилины, вспоминая operator precedence всего и вся. Не выебывайся и не говнокодь, пчел, код должен быть максимально понятен.
Аноним 04/08/20 Втр 11:45:44 1768022362
>>1767617
Зависит от того кто это будет читать.

В Perl для этого есть отдельно or и ||, and и &&, но в Си такого не завезли.
Аноним 04/08/20 Втр 14:15:10 1768181363
>>1766733
>В своих маняфантазиях можешь компилировать, как угодно, петушок, а вот реальные компиляторы обязаны компилировать вполне определенным образом.
Только основу языка(которая изложена в K&R). Но есть и некоторые вещи, которые компилируются в каждом компиляторе по разному: размер unsigned char, int, long int в битах, распределение битовых полей в памяти, приоритет логических и арифметических операций и т.д. Тот же стандарт MISRA C рекомендует избегать таких операций, которые зависят от компилятора.
>Ты его не знаешь.
Я его знаю. У меня несколько лет опыта работы, за которое я разработал ПО на языке Си для множества микропроцессорных устройств, работающих в медицине и промышленности. При этом я не читал ни K&R, ни стандарты(потому что на это не было времени из-за работы). Я познакомился с языком сначала не лекциях преподавателя, потом по книжке, которая называлась примерно "Учим С++ за 21 день(не помню точно на звание", и по справочнику Шильдта(который представляет собой почти дословный перевод K&R).
А вот ты, походу, борщехлеб, котоырй сидит на шее у мамки и читатает разные стандарты и K&R, и мнишь себя большим знатоком Си.
>не нужны, например, запрет адресной арифметики
>Ты троллишь тупостью, ясно.
Обоснуй. Я действительно считаю, что в арифметике указателей нет ничего плохого и её вполне можно применять.
Аноним 04/08/20 Втр 14:38:54 1768211364
>>1766746
>А в стандарте указано, что есть ровно четыре операции, операнды которых всегда вычисляются слева направо: &&, ||, ?: и запятая
А в стандарте указано, как вычисляются операнды ">=, <=, ==, >, < "?
И раз ты знаешь k&r и стандарты, то, будь добр, ответь еще на пару вопросов, мне правда интересно.
А в стандарте указано, как компилятор распределяет битовые поля в памяти?
А в стандарте указано о распределении приоритета между арифмитическими операндами(+, -, *, /, &, |, ^).
Аноним 04/08/20 Втр 14:43:55 1768216365
>>1766746
Да, совсем забыл, и про:
>размер unsigned char, int, long int в битах
расскажи. Ну, есть про это в страндарте или нет.
Аноним 04/08/20 Втр 14:52:11 1768222366
>>1768181
>я разработал ПО на языке Си для множества микропроцессорны
Какой иде пользуются на производстве? Бодьшие объёмы у программ?
Аноним 04/08/20 Втр 15:19:42 1768245367
>>1768181
Блять, напиши какое медицинское оборудование, чтобы я случайно не воспользовался и не подох.
Аноним 04/08/20 Втр 15:26:58 1768248368
>>1768245
Дилдак с имитацией фрикций твоего папаши
Аноним 04/08/20 Втр 15:42:27 1768260369
>>1768012
А про то что умножение выполняется раньше сложения тоже надо таким чудо читателям объяснять? Надо просто знать язык, а не превращать программы в (((лисп)))
Аноним 04/08/20 Втр 16:29:20 1768325370
lol pts.png (149Кб, 824x950)
824x950
>C++ содержит средства, позволяющие программисту нарушать заданную в конкретном случае дисциплину программирования. Например, модификатор const задаёт для объекта свойство неизменности состояния, но модификатор mutable предназначен именно для принудительного разрешения изменения состояния внутри константного объекта, то есть для нарушения ограничения константности. Более того, допускается динамически удалить атрибут const с константного объекта, превращая его в леводопустимый (L-value). Наличие в языке таких возможностей делает попытки формальной верификации кода бессмысленными, а использование ограничений для оптимизации невозможным.
SOOOQAAA BLYAAAAD
04/08/20 Втр 17:01:43 1768352371
>>1768211
> А в стандарте указано о распределении приоритета между арифмитическими операндами(+, -, *, /, &, |, ^).
Да, приоритеты фиксированные и кроме побитовых операторов - даже логичные. Гуглишь такой C operator precedence chart, там все будет. Естественно, для операций с одним приоритетом порядок вычисления не определен.

> А в стандарте указано, как компилятор распределяет битовые поля в памяти?
Да. Как ему больше нравится.

>>1768216
Да, есть. Минимальные размеры и соотношения между размерами. Возьми и сам посмотри.
Аноним 04/08/20 Втр 18:05:51 1768417372
>>1768222
Зависит от устройства, для каждого разное IDE. В зависимости от микропроцессора и микроконтроллера используются разные IDE для разных семейств процессоров (Keil, Atmel Studio), у ПЛК и панельных компьютеров свои собственные IDE, поставляемые производителем на диске.
>Бодьшие объёмы у программ?
Что ты имеешь ввиду, размер прошивки?
Разные бывают, от пару килобайт для небоших контроллеров до десяти мегабайтов для ПЛК.
Аноним 04/08/20 Втр 18:08:51 1768422373
>>1768352
> А в стандарте указано, как компилятор распределяет битовые поля в памяти?
>Да. Как ему больше нравится.
Выходит, что этот анон >>176673 не прав?
И есть вещи, которые каждый компилятор может реализовать по-своему?
Аноним 04/08/20 Втр 18:09:28 1768424374
Аноним 04/08/20 Втр 18:12:31 1768426375
>>1768422
Причем тут "какие то" вещи когда речь шла только о порядке в && || ?
Аноним 04/08/20 Втр 18:14:48 1768427376
>>1768422

>>1766722
>Но такие вещи разные компиляторы компилируют по разному
>>1766493
> Мой пост и относится к последней строчке. Написана она через жопу: почему человек, который будет читать твой код, должен догадываться, как компилятор выставит приоритет в условии?

Человек на полном серьезе считал что if (a && *a==100) может как то по разному скомпилироваться.
Аноним 04/08/20 Втр 18:16:23 1768430377
Аноним 04/08/20 Втр 18:25:22 1768436378
image.png (4Кб, 250x98)
250x98
>>1768260
Язык(тот который изложен в книге K&R) знают все разработчики и все компиляторы трактуют его одинаково.
А вот остальные его диалекты-наследники (С89, С99, С11) также поддерживают K&R-Си, а в остальном отличаются.
Вот ты точно читал и выучил стандарты C89, C99, С11 и знаешь, в чем они отличаются?
Поэтому проще не использовать в программе операции, которые разными компиляторами и диалектами могут изменяться по разному.
Аноним 04/08/20 Втр 18:29:35 1768441379
>>1768426
Посмотри всю дискуссию. Дальше некоторые аноны
>реальные компиляторы обязаны компилировать вполне определенным образом.
> Есть стандарт, там написано, как какие выражения обрабатываются, если компилятор реализует это как-то иначе, чем как описано в стандарте, то это уже не компилятор языка С.
начали утверждать, что язык Си должен компилироваться всеми компиляторами одинаково, а вещей, которые каждый компилятор может компилировать по-разному - нет.
Аноним 04/08/20 Втр 18:38:24 1768450380
image.png (19Кб, 200x78)
200x78
>>1768427
> что if (a && *a==100) может как то по разному скомпилироваться.
Между разными диалектами языка может компилироваться по разному.
Аноним 04/08/20 Втр 18:47:42 1768456381
Аноним 04/08/20 Втр 19:06:24 1768469382
>>1768436
В каком из этих "диалектов" порядок в операторе && станет другим, клоун?
Аноним 04/08/20 Втр 19:08:48 1768470383
>>1768450
Чел, если бы это было так, то компьютеры вообще не работали бы. Порядок проверки в && это фундаментальная вещь. Иначе бы у тебя всякие разыменовывания NULL происходили до проверки что это не NULL.
Аноним 04/08/20 Втр 19:34:35 1768483384
>>1768469
> Порядок проверки в && это фундаментальная вещь.
Фундаметнальные вещи написаны в K&R. Найди мне это в K&R.
Аноним 04/08/20 Втр 19:36:57 1768486385
>>1768483
48 страница таблица 2.1, а что?
Аноним 04/08/20 Втр 22:29:06 1768555386
>>1768181
>несколько лет опыта работы
>не читал ни K&R, ни стандарты(потому что на это не было времени из-за работы)
Ебаная макака-байтоеб ты, вот кто. Несколько лет — это ни о чем, студентишка или аспирантишка тупорылый. Как тебя приняли на работу без знания стандартов, фантазер?
Аноним 04/08/20 Втр 23:54:58 1768587387
Cнова какой-то байтоеб налажал и уважаемые в Дебиане люди чистят за ним вилкой говно:

libjpeg-turbo (1:1.5.1-2+deb9u1) stretch-security; urgency=medium

Non-maintainer upload by the LTS team.
CVE-2018-1152: Denial of service vulnerability caused by a
divide by zero when processing a crafted BMP image in TJBench.
CVE-2018-14498: Denial of service (heap-based buffer
over-read and application crash) via a crafted 8-bit BMP
in which one or more of the color indices is out of range
for the number of palette entries.
CVE-2020-13790: Heap-based buffer over-read via a malformed
PPM input file.
* CVE-2020-14152: jpeg_mem_available() does not honor the
max_memory_to_use setting, possibly causing excessive
memory consumption.

-- Adrian Bunk <bunk@debian.org> Wed, 29 Jul 2020 08:53:14 +0300
05/08/20 Срд 07:23:24 1768675388
Предлагаю репортить всем тредом эту аватарку анимешную. Разводит срачи, флеймит и троллит в C/C++ треда и бох знает где еще. Причина: аватарка, не релейтед, флейм, троллинг, итд
Аноним 05/08/20 Срд 08:45:00 1768686389
srand считывает число и что дальше? Почему одни и те же занчения при одинаковых числах ввода? Почему rand не может каждый раз выдавать новое число?
Аноним 05/08/20 Срд 08:47:19 1768687390
>>1768675
>петухану настолько бомбит, что он бегает выискивает эту аватарку с тремя постами по всему двощу
Лол. Какой же ты жалкий. Аватарка тебя по делу унижала.
Аноним 05/08/20 Срд 09:04:39 1768691391
6fa.jpg (45Кб, 680x521)
680x521
>>1768587
библиотечка ТУРБО! ля какая!
Аноним 05/08/20 Срд 09:09:08 1768692392
>>1768686
П Р И М Е Ч А Н И Е
Возможно, вам потребуется, чтобы программа всегда генерировала
новый набор случайных чисел при каждом запуске. Такая рандоми-
зация нужна при создании игр, однако многие симуляторы и научные
исследования подразумевают повторение одних и тех же случайных
чисел. Функция rand() предоставляет как раз такой функционал,
если вы не задаете семя генератора случайных чисел.
Аноним 05/08/20 Срд 09:45:27 1768703393
>>1768686
>>1768692
>что дальше?
Дальше тебе нужно съебать в ньюфаг-тред, школьник.
Аноним 05/08/20 Срд 10:43:20 1768722394
Аноним 05/08/20 Срд 13:11:35 1768894395
>>1768692
>семя
Это в проц кончить надо?
Аноним 05/08/20 Срд 14:49:56 1769084396
15939395322320.png (886Кб, 1058x1080)
1058x1080
Кстати, анончики, что получится при вычислении выражения С/С++ (в С18)?
Имеются в виду варианты, когда оно скомпилируется.

>>1768894
В принцыпе можна и наоборот. Чтобы проц в тибя кончил. Незабудь переодеться в девочьку, анончек.
Аноним 05/08/20 Срд 15:16:46 1769137397
>>1768894
В функцию передать.
Аноним 05/08/20 Срд 15:40:05 1769175398
>>1769084
Какое выражение блядь? Почему ты не мог написать a/a++? И да всё что связано с инкрементом в выражениях это уб
Аноним 05/08/20 Срд 19:57:17 1769328399
>>1769084
>что получится при вычислении выражения
Результат вычисления выражения.
Аноним 05/08/20 Срд 20:02:50 1769331400
Такс, ну что получается. Почитал K&R и этого вашего Прату. А что теперь собстно делать? На hh и 300к/месяц мои? Что дальше учить, анончи?
Аноним 05/08/20 Срд 20:04:59 1769332401
>>1769084
z= 456.0;

z= z++/z; 0.997812
z= z/z++; 1.002193
z= ++z/z; 1.000000
z= z/++z; 1.000000

z= z++/z++; 0.997812
z= ++z/++z; 1.000000
Аноним 05/08/20 Срд 20:37:54 1769362402
3C560D0C-568A-4[...].jpeg (20Кб, 256x197)
256x197
>>1769175
>всё что связано с инкрементом в выражениях это уб
Аноним 05/08/20 Срд 20:39:07 1769365403
>>1769175
>это уб
Что такое уб?
Аноним 05/08/20 Срд 20:51:35 1769372404
>>1769365
он сам не знает, если че
05/08/20 Срд 21:01:49 1769383405
>>1769331
> Что дальше учить, анончи?
Дальше учить все. Предметную область. Учиться писать код под линупсы, виндовсы: POSIX, Windows API, сети и существующие подходы для неблокирующего IO, многопоточность, на OpenMP посмотри хоть издали, SIMD-интринсики и как заставить компилятор высирать что-нибудь вменяемое без них, драйвера хоть чуть-чуть, всякие libusb, CMake, куда же без него. Алгоритмы/структуры данных не забудь, хотя бы кейворды узнай, чтобы потом под задачу гуглить. Напиши со всем изученным несколько качественных хелловорлдов. Потом можешь отладочную плату с микроконтроллером взять поиграться, тот же самый путь, посмотри на пару ртосов. После этого у тебя в гитхабе будет, что показать, ты пойдешь на hh, а там нихуя нет вакансий для тебя.
Аноним 05/08/20 Срд 21:03:59 1769387406
>>1769383
>нихуя нет вакансий для тебя.
Ну заебись и как реализовывать знания тогда?
Аноним 05/08/20 Срд 21:26:04 1769400407
>>1769387
Проще будет во фронтэнд вкатываться.
Аноним 05/08/20 Срд 21:31:33 1769403408
>>1769400
Не интересно, работа для хлебушков. Я хочу кибернетику, МК, ядра, драйвера и всё такое задротское.
Аноним 05/08/20 Срд 22:13:09 1769421409
15783803570532.png (98Кб, 821x705)
821x705
>>1769403
Так это же самая сермяжная мужицкая параша, а не передний край. Как раз для хлебушков.

Хули там в твоих кококонтроллерах? Прописал регистры, как макака, и все, хуже даже, чем в жс. И общаться ты там будешь, скорее всего, с нешарящими и тупыми постсовковыми долбоебами-радиолюбителями, если на хедхантере собрался искать (просто нешарящими - это программа-минимум и уже удача; обычно они не просто не шарят, у них еще и куча каких-то извращенных поверий и маняфантазий по теме, и все это на фоне просто запредельных ЧСВ и токсичности). Оно те надо?

Тру - это машобчик, ООП, графика, игры, софтвер инжиниринг.
Аноним 05/08/20 Срд 22:15:57 1769422410
>>1769421
Энивей веб я послал через 2 часа чтения синтаксиса жса.
>машобчик, ООП, графика, игры, софтвер инжиниринг.
Вкачусь хотя бы на минимум лоу левела и пойду в плюсы.
05/08/20 Срд 22:37:25 1769440411
>>1769421
> Тру - это машобчик, ООП, графика, игры, софтвер инжиниринг.
Машоб не нужен, ооп мертво, грауфоний сделают за тебя, игры не нужны.
Аноним 05/08/20 Срд 22:38:56 1769442412
>>1769440
>ооп мертво
В фыпешном борщемирке разве что.
Аноним 05/08/20 Срд 23:30:12 1769467413
Аноним 05/08/20 Срд 23:33:56 1769472414
Аноним 06/08/20 Чтв 14:37:17 1769882415
>>1768555
>Ебаная
>фантазер?
>тупорылый.
Борщехлеб, не гори. Тебе просто завидно, что я работаю, получаю деньги, кормлю семью и родителей и у меня есть опыт работы, а ты сидишь дома на шее мамки, никому не нужный на рынке труда, зато со знанием стандартов.
>макака
Я не макака, я пишу довольно качественный код, соответствующий во многом MISRA C.
>байтоеб
Так то любого, кто пишет на Си можно назвать "байтоебом", потому что это low level язык, в отличии от языков высокого уровня, и он подразумевает непосредственную работу с байтами и регистрами.
>Несколько лет — это ни о чем, студентишка или аспирантишка
В айти за несколько лет можно до миддла дорасти, тут то же самое. Зависит от человека, можно и 10 лет чаи гонять и остаться на уровне студентишки, а можно за пару лет саморазвиваться и стать нормальным специалитом.
>Как тебя приняли на работу без знания стандартов,
По собеседованию, посмотрели оценки в дипломе и позадавали вопросы по теме. К тому времени я сделал множество pet-projects на мк(не ардуино) на тысячи строк кода, поэтому я безпроблем смог ответить на вопросы. Также в вузе обучали этому очень хорошо. Ответь, зачем нужно знание стандартов? При том, что я знаю язык Си (тот, который k&r), а разные штуки, а компиляторо-зависимые операции в коде я не использую?
06/08/20 Чтв 15:41:13 1769959416
>>1769882
> качественный код
> соответствующий во многом MISRA C
Выбери что-то одно.

> а компиляторо-зависимые операции в коде я не использую
А откуда ты знаешь, что не используешь? Откуда ты знаешь, что у тебя в коде не UB на UB сидит и UB погоняет?

Представление программистов об языке Си отличается от представления компиляторов и стандарта. Вот тут даже исследование проводили: https://www.cl.cam.ac.uk/~pes20/cerberus/notes50-survey-discussion.html
Аноним 06/08/20 Чтв 16:02:28 1769977417
>>1769882
Чел, язык описывает стандарт, а твой k&r это просто фанфик на тему.
Аноним 06/08/20 Чтв 16:21:49 1770006418
vlpaeXQzgs0.jpg (103Кб, 436x736)
436x736
>>1769882
>завидно, что я работаю, получаю деньги, кормлю семью и родителей и у меня есть опыт работы
Да вообще единственный тут молодец у мамочки. Ты забыл упомянуть, что еще у тебя есть крыша над головой, что надеть и деньги на проезд, лолка.
>за несколько лет можно до миддла дорасти
Да за несколько лет до мидла даже неграмотное колхозное чмо дорастет (такое, как ты).
>на мк(не ардуино)
А чем тебе не угодил ардуино? Они там такие же, как ты, неграмотные школьники, не шарящие в стандартах и творящие всякую хуйню в своих либах. Хотя, с другой стороны, "тру-мк"-байтопетухи ничуть не лучше зачастую. зачастую они еще хуже
>на тысячи строк кода
Это тип многа что ли? Кек. Десяток тыщ строк - это мелкий проектик. А если на тыщу - это вообще на пару вечеров крошечная хуитка.
>в вузе обучали этому очень хорошо
Заметно, как тебя обучали в пидорахенской шарашке. Даже инженерную культуру не привили.
Аноним 06/08/20 Чтв 16:26:55 1770015419
>>1769882
>вузе обучали этому очень хорошо.
Что за вуз то? обычно ойтишники хают во.
>пару лет саморазвиваться и стать нормальным специалитом.
Нихт, нормальным специалистом варясь в собственном дерьме не станешь.
Аноним 06/08/20 Чтв 16:32:28 1770026420
Подскажите где смотреть, запускаю в С-Free и CodeBlock-e с #include <Windows.h>
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

В самих иде нормально кириллицу показывает, запускаю из exe кодировка слетает.
Аноним 06/08/20 Чтв 17:49:01 1770081421
15876688217420.png (127Кб, 340x368)
340x368
>>1770015
>Нихт, нормальным специалистом варясь в собственном дерьме не станешь.
Почему же? Подпердываешь кодом каким-нибудь норм опенсорцным проектикам, правишь баги, и збс. Все лучше, чем поделки васянов в говноконторах дрочить.
Аноним 06/08/20 Чтв 22:43:29 1770356422
пиздец ору с зумерской маньки у которой СТАНДАРТ НИНУЖОН
Ебучее поколение юнит фактори
Аноним 06/08/20 Чтв 22:45:37 1770358423
>>1770026
Для твоего же блага, поищи это на стековерфлоу
Аноним 07/08/20 Птн 10:33:59 1770625424
>>1770358
Не ищется, пробовал в Кодеблокс в редакторе кодировку поменятьь везде слетело.
Аноним 07/08/20 Птн 13:07:59 1770813425
изображение.png (368Кб, 1280x720)
1280x720
>>1770356

> зумерской маньки

> СТАНДАРТ НИНУЖОН

Ну вот тебе общепризнаный бумер-король байтоёбства, причем именно апологет няшной? купивший себе феррари в начале 90х, а в нулевых решивший запустить за долго до маска ракету в космос.
Аноним 07/08/20 Птн 13:11:06 1770816426
>>1766375
>Как в нашей конторе говорили дедушки (си-синьоры с большим опытом работы): "На компилятор надейся, да сам не плошай".

У си-сеньеров-дедушек типичная формула решения проблемы - работает не трожь. Доходит до смешного - вместо того, что бы исправить UB в коде деды-пердеды будут держатиь виртуалки с досом с древним компилятором борланда, орать на джунов, ПОСМЕВШИХ скомпилировать новой версией GCC и менторским тоном ЗАПРЕЩАТЬ.
Аноним 07/08/20 Птн 13:19:39 1770835427
>>1770813
И чо? Чо ты сказать-то этим хотел?
Аноним 07/08/20 Птн 13:48:25 1770874428
>>1770835

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

Диды как раз с размаху стреляли себе в ногу, верили в карго-культ конкретной версии компилятора конкретного производителя, и вычисляли обратный квадратный корень через UB.
Аноним 07/08/20 Птн 14:15:38 1770899429
>>1770874

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

Переписать бы весь линух и всю его экосистему на расте да зажить, но не судьба.
Аноним 07/08/20 Птн 14:29:58 1770917430
>>1770899
через лет 15 и так перепишут, не ссы, анон
Аноним 07/08/20 Птн 14:36:29 1770925431
>>1770874
>>1770899
Там же написано - "evil hacking". Т.е. автор знал, что это плохо и не по стандарту. Так что твои маняфантазии мимо, зумерок. Диды ведь все эти стандарты и понаписали, между прочим.
Аноним 07/08/20 Птн 14:42:11 1770931432
>>1770813
Прикинь сколько с этим было ебли при портировании на другие платформы.
Аноним 07/08/20 Птн 14:43:16 1770933433
>>1770899
>Переписать бы весь линух и всю его экосистему на дырявом говне
Зачем?
Аноним 07/08/20 Птн 14:49:40 1770941434
>>1770925

>Т.е. автор знал, что это плохо и не по стандарту

Если знал что тупо плохо, почему не использовал корректный вариант с union, мм, уёба?

Да потому что насрать дидам было, зумерок.

Они стреляли в ногу, верили в рассово верную версию компилятора и токсично пердели про КОКОКО ЛАМИРА НИПАЙМУТ ПШЕЛ НАХ МЫ ИЛИТА ТРОГАЕМ БАЙТИКИ АХАХАХА в эпоху своей молодости, тщательно оберегая свои САКРАЛЬНЫЕ ЗНАНИЯ.
Аноним 07/08/20 Птн 14:55:46 1770947435
>>1770931
>Прикинь сколько с этим было ебли при портировании на другие платформы.

Думаю, не так что бы много, пушо сами игры мы видим:

https://www.youtube.com/watch?v=dx459X3z91I

https://www.youtube.com/watch?v=Cg7IXW6BSa0

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

Зато есть постмортем-батхерты от разработчиков эмуляторов этих платформ:

https://wiki.pcsx2.net/PCSX2_Documentation/Nightmare_on_Floating-Point_Street

И хуеву тучу настроек этого самого плавучего петуха в том самом мумуляторе PCSX2.
Аноним 07/08/20 Птн 15:06:21 1770955436
>>1770941
Там нет никакого UB и выстрела в ногу, пидор.
Плохо, непортируемо, но вполне допустимо. Implementation-defined - это не UB.
Аноним 07/08/20 Птн 15:07:45 1770957437
>>1770955
Глаза протри, каст между long и float - это UB, а не ID.
Аноним 07/08/20 Птн 15:10:10 1770960438
>>1770955

>Там нет никакого UB

> каст флота к инту через разыменовывание кастованного указателя.
Аноним 07/08/20 Птн 15:10:29 1770963439
>>1770957
Между float и long, сам зенки протирай.
И пруф тащи, что это UB.
Аноним 07/08/20 Птн 15:11:36 1770964440
>>1770960
Цитату, цитату из стандарта приведи. Сам придумал UB, сам сегфолтишься, лолка.
Аноним 07/08/20 Птн 15:11:51 1770965441
Аноним 07/08/20 Птн 15:12:01 1770966442
>>1770955

А вот портируемо как раз вполне, лонг и флоат на большинстве платформ будут иметь 32 бита, а такой платформы, что бы у float и long32 был бы разный порядок байт попросту нет.
Аноним 07/08/20 Птн 15:14:05 1770968443
>>1770966
Толсто. Раньше флоаты вообще 80-битными были.
Аноним 07/08/20 Птн 15:16:43 1770971444
>>1770968

>Толсто. Раньше флоаты вообще 80-битными были.

Нет, 80-битными были long double.

Аноним 07/08/20 Птн 15:23:24 1770979445
>>1770965
Стандарт на твой манямирок? В стандарте языка C такого нет.
Аноним 07/08/20 Птн 15:23:41 1770981446
>>1770971
В любом случае, не на всех же платформах вроде был IEEE 754? Помню сталкивался с каким то компом где знак был между мант