Из-за периодических проблем с абузами Архивач переходит на новый домен ARHIVACH.NET.

C Programming Language #63 /clang/

 Аноним OP 28/09/20 Пнд 15:24:03 #1 №1818156 
C Propaganda.jpg
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

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

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

- №60: http://arhivach.ng/thread/610540/
- №61: http://arhivach.ng/thread/610541/
- №62: http://arhivach.ng/thread/616070/ >>1807650 (OP)
Loading...
Аноним 28/09/20 Пнд 17:52:06 #2 №1818284 
Открываю тред для поссать в ебало дефрагмент-шизику.
Аноним 28/09/20 Пнд 18:02:20 #3 №1818289 
>>1818284
Я думаю он напишет дефрагментатор памяти с блэкджеком и шлюхами.
Аноним 28/09/20 Пнд 18:10:37 #4 №1818296 
1545108806309.webm
>>1818284
Освятил тредик
Аноним 28/09/20 Пнд 18:22:12 #5 №1818303 
>>1818289
>>1818284

Кто такой дефрагментатор шизик и почему вы его так не любите?
Аноним 28/09/20 Пнд 18:31:00 #6 №1818309 
>>1818296
>.cpp
Зарепортил за ЦП, на всякий случай.
Аноним 28/09/20 Пнд 18:34:21 #7 №1818311 
>>1818303
Похоже что тут орудует два долбоёба. Одного я не заставл, а второй первым отметился в этой теме. Не обращай внимаение - это информационный шум от детишек, считающих что они познали Си.
Аноним 28/09/20 Пнд 18:34:36 #8 №1818312 
>>1818303
Да это он сам и пиарит себя скорее всего.
Аноним 28/09/20 Пнд 18:44:48 #9 №1818317 
>>1818296
А какое отношение эта шняга имеет к данному треду?
Аноним 28/09/20 Пнд 18:54:33 #10 №1818327 
ОП - ХУЙ
Аноним 28/09/20 Пнд 18:55:27 #11 №1818328 
>>1818296
Схоронил. Мы должны схоронить историю этого великого треда, о великом языке программирования лучше которого ничего не существует.
Аноним 28/09/20 Пнд 19:03:39 #12 №1818336 
>>1818311
>считающих что они познали Си.
Классическая ошибка.
Аноним 28/09/20 Пнд 19:06:59 #13 №1818338 
>>1818317
Шняга - это малипусик у тебя в трусишках.
Аноним 28/09/20 Пнд 19:28:11 #14 №1818351 
>>1818338
Мой малипусик у тебя во рту не поместится)
Аноним 28/09/20 Пнд 20:11:04 #15 №1818395 
Может ли кто-нибудь посоветовать библиотеку для работы с текстом в кодировке UTF-8? (надо проводить поиск в тексте)
Аноним 28/09/20 Пнд 20:24:48 #16 №1818402 
>>1818395
Наверное ICU?
Для плюсов есть Unicorn-lib
Аноним 28/09/20 Пнд 20:26:58 #17 №1818403 
>>1818395
И вот среди этих посмотри
https://github.com/kozross/awesome-c#string-manipulation
Аноним 29/09/20 Втр 16:29:10 #18 №1818880 
8uoAX9gDviU.jpg
Я додик.

Чем можно коньпилировать сишный код под виндой не ставя при этом Visual Studio?

Синтаксис так понимаю можно и каким-нибудь Sublime проверить.
Аноним 29/09/20 Втр 16:42:43 #19 №1818895 
1509257597830.png
>>1818880
Аноним 29/09/20 Втр 16:44:30 #20 №1818898 
>>1818895
Понял. Попробую ГНУ.

Читал шапку и подумал что для ГНУ надо лялих ставить, а он кросплатформенный оказывается.
Аноним 29/09/20 Втр 18:44:42 #21 №1819040 
>>1818898
Для гну под ОС M$\Ш1ИДОШ$ нужно ставить костыли вроде mingw и/или cygwin.
Аноним 29/09/20 Втр 19:58:32 #22 №1819101 
>>1819040
tcc наш выбор под лучшую микроядерную ОС на рынке - Microsoft Windows!
Аноним 29/09/20 Втр 20:36:10 #23 №1819128 
>>1818880
Можешь скачать любой компилятор с Сурсфоржа и через виндовую сосноль его использовать. Советую павершел.
Аноним 29/09/20 Втр 20:46:25 #24 №1819132 
>>1818880
Запускаешь фрюшечку в виртуальной машинке и получаешь честный юних с командой cc
Аноним 29/09/20 Втр 20:53:53 #25 №1819139 
>>1819132
А чего бы не MS-DOS и Turbo C Borland C?
Аноним 29/09/20 Втр 23:21:06 #26 №1819221 
>>1818156 (OP)
Динамикомакака (жс+питон) пожаловала в ваш тред
Объясните плез, как обходитесь без неймспейсов? Вот если куча "импортов" (include .h-файлов), то как блять в этой мишуре разобраться?
Аноним 30/09/20 Срд 04:46:25 #27 №1819300 
snap002629.png
snap002630.png
>>1818880
Компилятор с библиотеками, документацией, примерами и готовой собранной программой типа хелловорлда. Всё вместе 2.5 МБ. Могу скинуть если надо.
Аноним 30/09/20 Срд 06:31:35 #28 №1819308 
image.png
image.png
image.png
Ребята, а если я открываю файл в одной функции, редактирую в другой и закрываю в мейне, я совсем долбоёб или ещё есть надежда? Вывожу из функции через параметр, т.к. return занят. Что я делаю не так, адреса скачут при переходе из функции в функцию. Втолкуйте бездарю, а то всю ночь уже сижу за этим говном, ничего не соображаю. на первом пике вывод, на втором функция чтения, на третьем как это всё в мейне выглядит. Ломается при попытке записи в файл, очевидно что адреся не те, а как те сделать? Да я ещё не умею тут дебагом пользоваться, поэтому смотрите на мои художемства. Надеюсь на то, что более-менее понятно изложил суть, и на вашу помощб, о мудрые жрецы
Аноним 30/09/20 Срд 07:55:23 #29 №1819334 
>>1819101
>>1819040

Алсо в чем между ними примерно разница?
В перделках и удобстве?

Или в каких-то может не быть некоторых библиотек?
Аноним 30/09/20 Срд 09:14:55 #30 №1819375 
>>1819308
Ты делаешь страшные вещи.
Вот тут:

Fil = &File;

Ты присваиваешь аргументу Fil) указатель на локальную переменную, находящуюся в стеке. При выходе из функции переменная File, на которую ты ссылаешься, может быть потёрта кем угодно. Всё усложнаяется тем, что она может бытьи не затёрта. Т.е. при каких-то условиях код будет работать, а при каких-то нет. Зависеть может много от чего. Короче - так делать нельзя.


Самое простое решение, чисто чтобы понять.

Замени строчку
> FILE File = NULL;
на
> #define File Fil

Если Вакакба не скушает звёздочу, то всё очевидно.
Аноним 30/09/20 Срд 09:16:05 #31 №1819376 
>>1819375
Скушала таки Вакаба звёздочку
Аноним 30/09/20 Срд 10:51:11 #32 №1819467 
2020-09-30-104538530x75scrot.png
!!!ricitas.jpg
>>1819101
> Windows
> микроядерную
Аноним 30/09/20 Срд 10:56:32 #33 №1819469 
>>1819334
Да. Ответ на оба вопроса - да.
Аноним 30/09/20 Срд 11:30:44 #34 №1819484 
>>1819467
На самом деле Windows очень близка к микроядерным ОС. Дело в не размере, а в используемых принципах.

Я бы даже так сказал, несмотря на то, Mac OS построена поверх Mach, Windows, возможно, имеет больше признаков микроядерной ОС.
Аноним 30/09/20 Срд 11:46:57 #35 №1819491 
1601455616120.png
>>1819308
>printf(FileName)
Не пиши так. Это уязвимость.
>scanf("%s", FileName)
Возможен buffer overflow.
>char Again = "N"
"N" - это строковый литерал
Чему равно значение Again?
>Fil = &File
Fil - копия, т.е. измениться только копия.
Надо присвоить адрес адресу, содержащемуся в Fil, т.е. *Fil = File
Также >>1819375 писал, что ∗File выделен на стеке, после вызова fopen, File будет указывать на память в куче (пикрил), но после Fil = &File указатель проёбывается, т.к. &File - адрес переменной на стеке, которая после возврата в вызывающую функцию инвалид. Fil - просто копия адреса (тоже на стеке). Т.е. с внешними значениями функция делает ровно нихуя, зато происходит memory leak. Используй санитайзеры и ворнинги
dead per dead 30/09/20 Срд 11:49:36 #36 №1819495 
>>1819308
Звёздочка филь равно файл
Аноним 30/09/20 Срд 13:45:53 #37 №1819616 
1545816910834.png
>>1819308
А вот если бы ты возвращал через return, то компилятор бы тебе написал в предупреждении что не так.
Аноним 30/09/20 Срд 16:01:44 #38 №1819784 
Без названия.jpeg
>>1819484
> графическая подсистема, намертво вшитая в ядро
> Windows, возможно, имеет больше признаков микроядерной ОС
Аноним 30/09/20 Срд 16:02:34 #39 №1819785 
>>1819484
Каждый раз с мамкиных баллмеровских подсосов угораю, как в первый. Дружочек, ты тредом ошибся, сирешётка-тред ниже.
Аноним 30/09/20 Срд 16:18:03 #40 №1819787 
>>1819784
> графическая подсистема, намертво вшитая в ядро
Ты сказал?
Аноним 30/09/20 Срд 16:22:08 #41 №1819789 
>>1819784
Лучше, чем зоопарк DE которые глючат.
Аноним 30/09/20 Срд 18:21:39 #42 №1819889 
>>1819784
Ты по размеру и фичам не суди.
Главное как себя ОС ощущает и позиционирует.
Microsoft©® Windows©®™ она как девочка внутри, только чувствует себя как микроядерная ОС. Вот и все.
Так что ты тут не залупайся, цисгендерный спермобак. Никто не вправе Windows запретить считать себя микроядерной системой.
Аноним 30/09/20 Срд 18:37:16 #43 №1819900 
>>1819221
> как обходитесь без неймспейсов
Префиксами имен, которыми неймспейсы по сути и являются. Совпадения имен, у которых есть префиксы, очень-очень редки, поэтому разницы особой нет. Желание сделать from xxx import yyy хоть и возникает изредка, но не настолько часто, чтобы мы из-за этого плакали.

> Вот если куча "импортов" (include .h-файлов), то как блять в этой мишуре разобраться?
Точно так же как в тысячах модулей ноды или в site-packages. Только проще, потому что leftpad принято писать, а не таскать библиотекой, и в либах остаются реально нужные вещи. Что касается хедеров, то там опять-таки проще.

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

>>1819784
> графическая подсистема, намертво вшитая в ядро
Ядро отдельно, win32k.sys отдельно. Можно оторвать executive полностью и написать новую. Да, в ntoskrnl кроме ядра еще другие вещи лежат, как и в win32k кроме executive лежит графическая подсистема, но это только вопрос размещения в файлах, сами они слабо связаны. Точно так же было в еще в MS-DOS, там в IO.SYS лежали две разные вещи: подсистема ввода-вывода (IO) и сам MS-DOS.
Аноним 30/09/20 Срд 18:43:06 #44 №1819903 
>>1819784
Есть Windows 10 Headless, впрочем не знаю как она устроена
Аноним 30/09/20 Срд 18:44:40 #45 №1819905 
>>1819221
Программы на Си занимаются какой нибудь узкой специализацией и не тянут в один файл несколько предметных областей.
Аноним 30/09/20 Срд 20:03:44 #46 №1819966 
>>1819221
> Объясните плез, как обходитесь без неймспейсов?
Спокойно. Просто нужно держать жёсткий нейминг переменных и функций.
> Вот если куча "импортов" (include .h-файлов), то как блять в этой мишуре разобраться?
Разобраться не сложно, если нейминг правильно сделан.
dead per dead 30/09/20 Срд 22:26:15 #47 №1820048 
В стандартных заголовках какого-нибудь линукса творится такой ад и Израиль, что нет слов.
Аноним 30/09/20 Срд 22:40:05 #48 №1820055 
>>1820048
Ах, в заголовках творится какой-то ад. Нагромождение непонятного кода, ммм. Ну все, больше на Си программировать не буду, хватит это терпеть! Долой ад в заголовках! Я за чистый код!
Аноним 30/09/20 Срд 23:13:27 #49 №1820071 
>>1819787
https://pastebin.com/pDamx9CQ
ЗАПУСКАЕШ
@
ОБТЕКАЕШ
Аноним 30/09/20 Срд 23:13:59 #50 №1820073 
>>1819789
У меня ничего не глючит, а конкуренция стимулирует развитие, в то время как монополия приводит к стагнации.
Аноним 30/09/20 Срд 23:14:22 #51 №1820074 
>>1819889
Чулочки-то надел, болезный?
Аноним 01/10/20 Чтв 01:32:42 #52 №1820202 
>>1818156 (OP)
Fix that libarchive fails to return filenames for UTF-8/UTF-16 entries. The reason is that it uses locales and all that garbage, and mpv does not set a locale. Both C locales and wchar_t are shitfucked retarded legacy braindeath. If the C/POSIX standard committee had actually competent members, these would have been deprecated or removed long ago. (I mean, they managed to remove gets().) To justify this emotional outbreak potentially insulting to unknown persons, I will write a lot of text. Those not comfortable with toxic language should pretend this is a religious text. C locales are supposed to be a way to support certain languages and cultures easier. One example are character codepages. Back when UTF-8 was not invented yet, there were only 255 possible characters, which is not enough for anything but English and some european languages. So they decided to make the meaning of a character dependent on the current codepage. The locale (LC_CTYPE specifically) determines what character encoding is currently used. Of course nowadays, this is legacy nonsense. Everything uses UTF-8 for "char", and what doesn't is broken and terrible anyway. But the old ways stayed with us, and the stupidity of it as well. C locales were utterly moronic even when they were invented. The locale (via setlocale()) is global state, and global state is not a reasonable way to do anything. It will break libraries, or well modularized code. (The latter would be forced to strictly guard all entrypoints set set/restore locales, assuming a single threaded world.) On top of that, setting a locale randomly changes the semantics of a bunch of standard functions. If a function respects locale, you suddenly can't rely on it to behave the same on all systems. Some behavior can come as a surprise, and of course it will be dependent on the region of the user (it doesn't help that most software is US-centric, and the US locale is almost like the C locale, i.e. almost what you expect). Idiotically, locales were not just used to define the current character encoding, but the concept was used for a whole lot of things, like e. g. whether numbers should use "," or "." as decimal separaror. The latter issue is actually much worse, because it breaks basic string conversion or parsing of numbers for the purpose of interacting with file formats and such. Much can be said about how retarded locales are, even beyond what I just wrote, or will wrote below. They are so hilariously misdesigned and insufficient, I can't even fathom how this shit was _standardized_. (In any case, that meant everyone was forced to implement it.) Many C functions can't even do it correctly. For example, the character set encoding can be a multibyte encoding (not just UTF-8, but awful garbage like Shift JIS (sometimes called SHIT JIZZ), yet functions like toupper() can return only 1 byte. Or just take the fact that the locale API tries to define standard paper sizes (LC_PAPER) or telephone number formatting (LC_TELEPHONE). Who the fuck uses this, or would ever use this? But the badness doesn't stop here. At some point, they invented threads. And they put absolutely no thought into how threads should interact with locales. So they kept locales as global state. Because obviously, you want to be able to change the semantics of basic string processing functions _while_ they're running, right? (Any thread can call setlocale() at any time, and it's supposed to change the locale of all other threads.) At this point, how the fuck are you supposed to do anything correctly? You can't even temporarily switch the locale with setlocale(), because it would asynchronously fuckup the other threads. All you can do is to enforce a convention not to set anything but the C local (this is what mpv does), or to duplicate standard functions using code that doesn't query locale (this is what e.g. libass does, a close dependency of mpv). Imagine they had done this for certain other things. Like errno, with all the brokenness of the locale API. This simply wouldn't have worked, shit would just have been too broken. So they didn't. But locales give a delicious sweet spot of brokenness, where things are broken enough to cause neverending pain, but not broken enough that enough effort would have spent to fix it completely. On that note, standard C11 actually can't stringify an error value. It does define strerror(), but it's not thread safe, even though C11 supports threads. The idiots could just have defined it to be thread safe. Even if your libc is horrible enough that it can't return string literals, it could just just some thread local buffer. Because C11 does define thread local variables. But hey, why care about details, if you can just create a shitty standard? (POSIX defines strerror_r(), which "solves" this problem, while still not making strerror() thread safe.) Anyway, back to threads. The interaction of locales and threads makes no sense. Why would you make locales process global? Who even wanted it to work this way? Who decided that it should keep working this way, despite being so broken (and certainly causing implementation difficulties in libc)? Was it just a fucked up psychopath? Several decades later, the moronic standard committees noticed that this was (still is) kind of a bad situation. Instead of fixing the situation, they added more garbage on top of it. (Probably for the sake of "compatibility"). Now there is a set of new functions, which allow you to override the locale for the current thread. This means you can temporarily override and restore the local on all entrypoints of your code (like you could with setlocale(), before threads were invented). And of course not all operating systems or libcs implement this. For example, I'm pretty sure Microsoft doesn't. (Microsoft got to fuck it up as usual, and only provides _configthreadlocale(). This is shitfucked on its own, because it's GLOBAL STATE to configure that GLOBAL STATE should not be GLOBAL STATE, i.e. completely broken garbage, because it requires agreement over all modules/libraries what behavior should be used. I mean, sure, makign setlocale() affect only the current thread would have been the reasonable behavior. Making this behavior configurable isn't, because you can't rely on what behavior is active.) POSIX showed some minor decency by at least introducing some variations of standard functions, which have a locale argument (e.g. toupper_l()). You just pass the locale which you want to be used, and don't have to do the set locale/call function/restore locale nonense. But OF COURSE they fucked this up too. In no less than 2 ways: - There is no statically available handle for the C locale, so you have to initialize and store it somewhere, which makes it harder to make utility functions safe, that call locale-affected standard functions and expect C semantics. The easy solution, using pthread_once() and a global variable with the created locale, will not be easily accepted by pedantic assholes, because they'll worry about allocation failure, or leaking the locale when using this in library code (and then unloading the library). Or you could have complicated library init/uninit functions, which bring a big load of their own mess. Same for automagic DLL constructors/destructors. - Not all functions have a variant that takes a locale argument, and they missed even some important ones, like snprintf() or strtod() WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK WHAT THE FUCK I would like to know why it took so long to standardize a half-assed solution, that, apart from being conceptually half-assed, is even incomplete and insufficient. The obvious way to fix this would have been: - deprecate the entire locale API and their use, and make it a NOP - make UTF-8 the standard character type - make the C locale behavior the default - add new APIs that explicitly take locale objects - provide an emulation layer, that can be used to transparently build legacy code without breaking them But this wouldn't have been "compatible", and the apparently incompetent standard committees would have never accepted this. As if anyone actually used this legacy garbage, except other legacy garbage. Oh yeah, and let's care a lot about legacy compatibility, and let's not care at all about modern code that either has to suffer from this, or subtly breaks when the wrong locales are active. Last but not least, the UTF-8 locale name is apparently not even standardized. At the moment I'm trying to use "C.UTF-8", which is apparently glibc _and_ Debian specific. Got to use every opportunity to make correct usage of UTF-8 harder. What luck that this commit is only for some optional relatively obscure mpv feature. Why is the C locale not UTF-8? Why did POSIX not standardize an UTF-8 locale? Well, according to something I heard a few years ago, they're considering disallowing UTF-8 as locale, because UTF-8 would violate certain ivnariants expected by C or POSIX. (But I'm not sure if I remember this correctly - probably better not to rage about it.) Now, on to libarchive. libarchive intentionally uses the locale API and all the broken crap around it to "convert" UTF-8 or UTF-16 (as contained in reasonably sane archive formats) to "char*". This is a good start! Since glibc does not think that the C locale uses UTF-8, this fails for mpv. So trying to use archive_entry_pathname() to get the archive entry name fails if the name contains non-ASCII characters. Maybe use archive_entry_pathname_utf8()? Surely that should return UTF-8, since its name seems to indicate that it returns UTF-8. But of fucking course it doesn't! libarchive's horribly convoluted code (that is full of locale API usage and other legacy shit, as well as ifdefs and OS specific code, including Windows and fucking Cygwin) somehow fucks up and fails if the locale is not set to UTF-8. I made a PR fixing this in libarchive almost 2 years ago, but it was ignored. So, would archive_entry_pathname_w() as fallback work? No, why would it? Of course this _also_ involves shitfucked code that calls shitfucked standard functions (or OS specific ifdeffed shitfuck). The truth is that at least glibc changes the meaning of wchar_t depending on the locale. Unlike most people think, wchar_t is not standardized to be an UTF variant (or even unicode) - it's an encoding that uses basic units that can be larger than 8 bit. It's an implementation defined thing. Windows defines it to 2 bytes and UTF-16, and glibc defines it to 4 bytes and UTF-32, but only if an UTF-8 locale is set (apparently). Yes. Every libarchive function dealing with strings has 3 variants: plain, _utf8, and _w. And none of these work if the locale is not set. I cannot fathom why they even have a wchar_t variant, because it's redundant and fucking useless for any modern code. Writing a UTF-16 to UTF-8 conversion routine is maybe 3 pages of code, or a few lines if you use iconv. But libarchive uses all this glorious bullshit, and ends up with 3 not working API functions, and with over 4000 lines of its own string abstraction code with gratuitous amounts of ifdefs and OS dependent code that breaks in a fairly common use case. So what we do is: - Use the idiotic POSIX 2008 API (uselocale() etc.) (Too bad for users who try to build this on a system that doesn't have these - hopefully none are left in 2017. But if there are, torturing them with obscure build errors is probably justified. Might be bad for Windows though, which is a very popular platform except on phones.) - Use the "C.UTF-8" locale, which is probably not 100% standards compliant, but works on my system, so it's fine. - Guard every libarchive call with uselocale() + restoring the locale. - Be lazy and skip some libarchive calls. Look forward to the unlikely and astonishingly stupid bugs this could produce. We could also just set a C UTF-8 local in main (since that would have no known negative effects on the rest of the code), but this won't work for libmpv. We assume that uselocale() never fails. In an unexplainable stroke of luck, POSIX made the semantics of uselocale() nice enough that user code can fail failures without introducing crash or security bugs, even if there should be an implementation fucked up enough where it's actually possible that uselocale() fails even with valid input. With all this shitty ugliness added, it finally works, without fucking up other parts of the player. This is still less bad than that time when libquivi fucked up OpenGL rendering, because calling a libquvi function would load some proxy abstraction library, which in turn loaded a KDE plugin (even if KDE was not used), which in turn called setlocale() because Qt does this, and consequently made the mpv GLSL shader generation code emit "," instead of "." for numbers, and of course only for users who had that KDE plugin installed, and lived in a part of the world where "." is not used as decimal separator. All in all, I believe this proves that software developers as a whole and as a culture produce worse results than drug addicted butt fucked monkeys randomly hacking on typewriters while inhaling the fumes of a radioactive dumpster fire fueled by chinese platsic toys for children and Elton John/Justin Bieber crossover CDs for all eternity.
Аноним 01/10/20 Чтв 03:19:13 #53 №1820220 
>>1820202
И чо?
Аноним 01/10/20 Чтв 09:23:27 #54 №1820250 
>>1820071
||=== Build неудачно: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Аноним 01/10/20 Чтв 11:34:09 #55 №1820304 
1601541229910.png
>>1818156 (OP)
Насколько оправдано учить C для Data Science?
Есть ли вообще какое-то применение няшной Сишки в Data Analysis, Big Data Analysis, (короче говоря, там, где сейчас доминируют Python, R и Julia)?
Аноним 01/10/20 Чтв 11:46:22 #56 №1820315 
>>1820304
Нинасколько.
Конечно, все кишки питонов/р/юли/любого-фреймворка-чилсодробилки написаны на си/плюсах, но это именно инженегровые задачи, имеющие посредственное отношение к датасаенсу.
Аноним 01/10/20 Чтв 12:04:53 #57 №1820337 
>>1820315
Да я просто думал, что если знать Сишку, то можно её прямо в Юльке вызывать, а это + к скорости расчетов
Аноним 01/10/20 Чтв 12:07:01 #58 №1820342 
>>1820315
А, ну и заметил вот что: если пакет для какого-нибудь R переписывают с этого самого R на C/C++, то время расчетов уменьшается раз в 10-50 минимум, без шуток. Поэтому и стало интересно.
Аноним 01/10/20 Чтв 13:45:25 #59 №1820386 
>>1820337

Только в случае пакетной обработки какого-то большого множества, разве что. Потому что FFI сам по себе имеет достаточно большие накладные расходы.

>>1820342

Увеличив тем самым в 10-50 раз время разработки и поиска багов.

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

Как пример - видеоигры, там если на топ пеке нельзя поиграть в 4к60фпс - тебя скорее всего обоссут и накидают минусов в стиме, по этому как минимум движок игры должен быть написан на крестах и хорошо оптимизирован.

А вот если какая-нибудь опердень ускорится с 5 секунд до двух - этого юзер "тетя маня" особо не заметит, а вот времени ты въебешь намного больше и когда наступит время релиза ты с удивлением для себя увидишь, что рынок поделен продуктами конкурентов и все обсуждают именно их.
Аноним 01/10/20 Чтв 14:21:25 #60 №1820413 
>>1820386
>
> Только в случае пакетной обработки какого-то большого множества, разве что. Потому что FFI сам по себе имеет достаточно большие накладные расходы.


> Увеличив тем самым в 10-50 раз время разработки и поиска багов.
А в чем проблема написать аналоги функций R на Сишке, оставив им те же имена? Так и баги проще ловить, и скорость - топ. Банально, подключаешь библиотеку yoba_c, функции которой перекрывают стандартные и вперёд. Благо что в R можно свои функции вообще не писать, а ебашить макросы Scheme-style. Соответственно, если в маленькой функции на C явных багов нет, то их не будет и в макросе.
Аноним 01/10/20 Чтв 16:42:23 #61 №1820493 
>>1820413

FFI.
Аноним 01/10/20 Чтв 16:51:43 #62 №1820501 
>>1820304
C нужен для разработки ПО для обезьян задействованных в дата саенс. С это про другое. Твой сраный эр, пайфон написаны на высокоуровневом С. Сечёшь мою мысль? Тот питух, что тебе писал про игровые движки — лох, чмо, дегенерат. Ffi, игровые движки, хуйню какую-то наплел олень малолетний.
Аноним 01/10/20 Чтв 18:02:40 #63 №1820576 
>>1820501
>обезьян
Дл тех самых, что в отличии от инженеро-чмохов делают бизнесу деньги?
Аноним 01/10/20 Чтв 18:19:25 #64 №1820595 
>>1820386
Лол, а в R легко искать баги?
Аноним 01/10/20 Чтв 19:08:40 #65 №1820636 
>>1818880
MinGW GCC
Аноним 01/10/20 Чтв 19:22:56 #66 №1820652 
>>1820342
А если этот сишный код как следует отпидорасить, и вынести всё что можно вынести на GPU — можно получить такой же прирост даже относительно кода на C.
Только всем похуй, датасаенс — это про хуяк-хуяк скриптик накидал, за пару часиков посчитал, гистограмку нарисовал и забыл, а не про долгую еблю с выдрачиванием перформанса.
Аноним 01/10/20 Чтв 20:21:49 #67 №1820744 
>>1820595
Сравнительно да. В любом случае, всегда можно найти пакет, который делает то же самое, но в нём этого бага нет, зато есть 100500 других, которые ты не заметишь и которые похерят цифры в твоих данных.
Аноним 02/10/20 Птн 16:27:51 #68 №1821342 
ЧТОТЕБЕНАДО.png
изображение.png
ЧТО ОН ХОЧЕТ ОТ МЕНЯ? КАКОЕ ЕМУ ВЫРАЖЕНИЕ НАДО? Я УЖЕ ДВА ДНЯ НЕ МОГУ ПОНЯТЬ ЧТО ОН ОТ МЕНЯ ХОЧЕТ
Аноним 02/10/20 Птн 16:36:56 #69 №1821350 
image.png
>>1821342
Это что за говно.
Аноним 02/10/20 Птн 16:37:58 #70 №1821351 
>>1821350
НУ ЛУП, А ЧТО?
Аноним 02/10/20 Птн 16:39:04 #71 №1821354 
>>1821351
Где ты его взял, блядь. Есть for, while, do..while./ Какой наху loop statement , ты дурак?
Аноним 02/10/20 Птн 16:39:46 #72 №1821356 
>>1821354
БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
Аноним 02/10/20 Птн 16:40:24 #73 №1821357 
ПАЦАНЫ НЕ САДИТЕСЬ КОДИТЬ ЕСЛИ ВЫ ЗАЕБАЛИСЬ
Аноним 02/10/20 Птн 16:57:47 #74 №1821373 
>>1821351
А ЗА ЛУПОМ ЧТО?
Аноним 02/10/20 Птн 17:06:42 #75 №1821376 
>>1821373
ПУПА
Аноним 02/10/20 Птн 17:38:12 #76 №1821396 
>>1821356
Вот когда ты исправшишь loop на for будешь ещё два дня не поймёшь почему программа падает иногда.
Аноним 02/10/20 Птн 18:10:24 #77 №1821409 
>>1821342
Что за заloop?
И как оно брать данные с массива на стеке, не зная что там вообще внутри лежит, и сравнивать с нулем?
Аноним 02/10/20 Птн 19:25:36 #78 №1821474 
Безымянный.png
изображение.png
>>1821396
>>1821409
Так нормально?
Аноним 02/10/20 Птн 19:27:52 #79 №1821476 
>>1821474
Добавил еще *storage == EOF
Аноним 03/10/20 Суб 09:45:39 #80 №1821832 
>>1821474
Так уже получше. Во всяком случае точно не упадёт, если указатель в функцию передашь валидный. Хотя лучше проверить вместе с isspace и на конец строки.

У тебя в предыдущей версии в условии использовался || а надо было &&.
Аноним 03/10/20 Суб 10:34:46 #81 №1821847 

>>1820576

Пендюх, бизнесу делают мани те, кто пишет софт. Дата саенст окромя теории математической нихуя не могут. Весь их вклад — это реализация блоков воедино в уже готовом софте. Это как рнр макаки от мира математики.
Аноним 03/10/20 Суб 11:27:37 #82 №1821861 
>>1821832
Перехожу на малоки уже через 11 задач.
Аноним 03/10/20 Суб 12:37:05 #83 №1821888 
Чуваки я правильно всё понимаю?
ch = getchar() -> Ввожу в инпут igor\n, куда уходят gor\n? Если я вызову функцию типа fgets(string, n, stdin) эта часть уйдет в неё? Эти литералы стоят в стаке и ждут функцию которая принимает ввод? Или они в буфере? Или стак это буфер? Помогите долбоебу.
Аноним 03/10/20 Суб 13:03:03 #84 №1821896 
>>1821888
>куда уходят gor\n?
В буфер входного потока (stdin)
Аноним 03/10/20 Суб 13:22:14 #85 №1821909 
>>1821896
Т.е fgets цепляет из буфера остатки которые getchar() не прочитал.
Аноним 03/10/20 Суб 13:47:55 #86 №1821931 
>>1821909
да.
Аноним 03/10/20 Суб 14:18:24 #87 №1821959 
>>1821931
Спасибо. Я об этом ваще забыл.
Аноним 03/10/20 Суб 14:25:50 #88 №1821967 
Какие шансы устроиться крестовиком в какую нибудь контору, если у тебя есть нормальный опыт, даже проги которые ты написал и ты учавствуешь в олимпиадах, но у тебя 9 классов?
Я готов закончить вышку ради работы на плюсах. Мне 22 просто проебался немного по молодости.
Аноним 03/10/20 Суб 15:58:35 #89 №1822046 
>>1821967
Ну, все зависит от прохождения собеседования и если контора не будет интересоваться твоим образованием. Но опять же, на собеседовании могут спросить про какое то перемножение матриц, и ты обосрешься без образования, даже школьного.
У меня при трудоустройстве никто не спрашивал об образовании, никто даже не интересовался какой вуз я закончил и какое направление. Думаю нас таких много.
Аноним 03/10/20 Суб 17:40:02 #90 №1822117 
Ньюфаг итт.
Есть программа: int main(){}.
Пробовал компилировать ее
clang -Oz -nostlib
и
clang -O0 -nostlib
и она один хуй весит 9.2 кб
Вопрос: какого хуя?
Аноним 03/10/20 Суб 17:45:18 #91 №1822123 
>>1822117
В первом случае 9352 байта, а во втором 9360 байт, если быть точным. Что в этой программе, которую я уже не знаю как сделать проще, весит так много? Еще заметил, что все мои хелловорлды от 5 до 200 строк всегда весят 16-19 кб. Что помимо стдлибы занимает большую часть экзекутабла?
Аноним 03/10/20 Суб 17:57:46 #92 №1822129 
>>1822117
В исполняемом файле присутствуют адреса линкуемых либ, присутствуют GOT и PLT таблицы, для динамического резолвинга названий функций и загрузку нужных динамических библиотек(грубо говоря) с нужными функциями.
Так же main не является точкой входа фактической дл ОС, а конец ее не является выходом из процесса, и из-за этого есть ещё crt*.o файлы которые компилятор линкует к исполняемому файлу почти всегда.
Все это так называемый Сишный рантайм, без него никуда в обычных ОС, но это можно отключить флагами компилятору/линковщику.
Аноним 03/10/20 Суб 18:07:50 #93 №1822136 
подскажите что выучить (какие мануалы, какие либо прорешать) по с или с++ чтобы устроиться в nasa ?

нужно ли уметь на с закодить всего дональда кнута?

или нужно на с сортировки кодить?

или что вообще нужно уметь на с, чтобы вкатица в nasa ?
dead per dead 03/10/20 Суб 19:13:26 #94 №1822211 
>>1822117
man elf
objdump -sxd a.out
dead per dead 03/10/20 Суб 19:47:58 #95 №1822245 
Кстати, в историческом a.out заголовок занимал 16 байт. Вот цена прогресса.
Аноним 03/10/20 Суб 19:50:51 #96 №1822249 
>>1822136
> подскажите что выучить (какие мануалы, какие либо прорешать) по с или с++ чтобы устроиться в nasa ?
Всё. Надо выучить всё.

> нужно ли уметь на с закодить всего дональда кнута?
Да, и Дональда Трампа тоже.

> или нужно на с сортировки кодить?
Можно кодить и не сортировки.

> или что вообще нужно уметь на с, чтобы вкатица в nasa ?
Надо уметь всё.
Аноним 03/10/20 Суб 19:58:10 #97 №1822262 
Пачаны решил тут вкатитьтся в микроконтроллеры как хобби, но прежде чем закупать компоненты, решил как-то все опробовать софтварно, Поставил ряд пакетов: avrdude gcc-avr avr-libc binutils-avr gdb-avr разобрался как компилировать, получаю файл .hex который можно уже записать на контроллер, Но хотелось мы найти какой-нибудь визульныйсимулятор контроллера, где мог бы понакидать компонентов на платку, взять свой скрипт, и посмотреть как все работает. Есть что-нибудь подобное да под линукс?
Аноним 03/10/20 Суб 19:59:37 #98 №1822266 
>>1822249


Конкретнее плиз
Аноним 03/10/20 Суб 20:27:27 #99 №1822298 
>>1822266
*
Звёздочка
Wildcard
All
sageАноним 03/10/20 Суб 20:38:16 #100 №1822316 
>>1822245
Странно обсуждать единицы байт, когда бинарники по сотне мегабайт стали нормой.
Аноним 03/10/20 Суб 20:52:48 #101 №1822332 
>>1822266
Ну смотри, можно еще уметь не все, а только половинку но тогда не совсем в NASA возьмут, в ASSA возьмут

♂ SLAVE, GET YOUR ASS BACK HERE! ♂
Аноним 03/10/20 Суб 23:43:26 #102 №1822478 
>>1819308
>>1819308
Лол, а це таке fil? Правильно понял, что она в статическом скопе или это какая-то нех?
>>1819375
Так ведь можно FILE ptr fil = NULL вне функции и в самой функции - просто fil = file. И в рантайме файл можно будет править/закрыть где угодно.
Аноним 03/10/20 Суб 23:46:55 #103 №1822479 
>>1822316
Скорее напоминание того как мало раньше добавляли служебной инфы в бинарь. Впрочем, a.out предельно простой формат, там иначе и быть не могло.
Аноним 03/10/20 Суб 23:51:25 #104 №1822481 
>>1822332
У МЕНЯ ЕСТЬ ♂ DEEP ♂ DARK ♂ FANTASY ♂, МЕЧТАЮ НАПИСАТЬ МИКРОЯДРО ПОХЛЕЩЕ ЧЕМ В WINDOWS И ПОХЛЕЩЕ ЧЕМ L4Ka::Pistachio НА ЯЗЫКЕ ♂ СИ
Аноним 03/10/20 Суб 23:57:22 #105 №1822487 
>>1822481
>>1822332
♂ это только wchar_t?
мимо-ньюкек
Аноним 04/10/20 Вск 03:12:46 #106 №1822596 
>>1822481
>L4Ka::Pistachio НА ЯЗЫКЕ
Лучше можно. Но только, наверное, на ассемблере. И всё равно по спецификации L4X2. Т.е. закодировать можно лучше, а вот спроектировать уже нет.

Аноним 04/10/20 Вск 04:25:03 #107 №1822608 
>>1822596
Спроектировать можно лучше, но тогда уже выйдет ядро Linux
dead per dead 04/10/20 Вск 09:49:33 #108 №1822668 
>>1822316
Это не норма, так же как и статическая сборка не норма.
Определение нормы: посчитай средний размер бинаря на твоей системе. Это сильно меньше, чем 1е8
Аноним 04/10/20 Вск 10:44:07 #109 №1822700 
изображение.png
>>1822262
Я в бородатые времена использовал САПР Proteus для этих целей, там можно собирать схемки на микрухах, заливать на них hex файлы и смотреть как они отрабатывают, очень годная тема. Но она для винды и не бесплатная. А так можешь посмотреть что-то из списка на пике, может найдёшь что-нибудь.
Аноним 04/10/20 Вск 11:44:48 #110 №1822719 
>>1822608
Это заблуждение. И вообще глупо сравнивать. L4 оперирует только временем и памятью. Ядро Linux это полноценное ядро с файловой системой, сетевой подсистемой, вытеснением страниц и множеством драйверов. Ты вообще не понимаешь о чём говоришь.
Это как сравнивать кирпич и дом.
Подумай это.
Аноним 04/10/20 Вск 11:59:45 #111 №1822728 
>>1822668
Ты точно понимаешь как работает среднее арифметическое?
Достаточно пары программ в 10-100 Мб - игры, блендер, офис - чтобы такое перекрыть тебе понадобится миллион линукс-вей 10кб бинарников.
Аноним 04/10/20 Вск 13:15:02 #112 №1822780 
>>1822719
Я выбираю дом.
Тем более он сделан из нормальных кирпичей ответственных за память и время.
А не какой-то кусок говна из под немецкого исследовательского центра.
Претензии?
Я прочитал фулл спецификацию микроядра L4 и их API. Меня не впечатлило, наоборот выглядело бесполезно без остального софта, чисто бесполезное микроядро, ну и по классике - безопасность на руки программиста кладётся. То есть немцы даже не парились. Тупое говно тупого говна.
Ну и код чекал, такое говно конечно написать - это надо уметь.
Аноним 04/10/20 Вск 14:18:56 #113 №1822809 
image.png
>>1822780
Ну это просто твоё "красноглазие" говорит.
Был один true Linux, да и тот стал маргинальным.

> Я выбираю дом.
Другого от юзера ожидать не приходится.
Аноним 04/10/20 Вск 14:20:18 #114 №1822811 
>>1822780
>безопасность на руки программиста кладётся
А вот это прокомментируй.
Аноним 04/10/20 Вск 14:26:47 #115 №1822816 
>>1822809
Что значит тру линукс?
Аноним 04/10/20 Вск 14:27:10 #116 №1822817 
>>1822811
Ну он тут прав.
Аноним 04/10/20 Вск 14:33:35 #117 №1822820 
>>1822816
Slackware же. Один из старейших линуксов из ныне живущих. Где-то ровесник Красной Шапки и Дебиана. Знаменит тем, что не прогибается под моду, а чисто идёт по классическому Unix way. За что и поплатился падением популярности.

> Ну он тут прав.
Чем?
Аноним 04/10/20 Вск 14:48:34 #118 №1822828 
>>1822820
А Макось не тру линукс?
Аноним 04/10/20 Вск 14:52:15 #119 №1822834 
>>1822828
100% POSIX-compliant - это всё что я скажу про Mac OS.
Впрочем, как и линуксы и BSD.
sageАноним 04/10/20 Вск 15:07:41 #120 №1822853 
>>1822828
>А Макось не тру линукс?
The state of C and ASM threads in 2020, спасибо юнит фактори за это
Аноним 04/10/20 Вск 15:09:08 #121 №1822855 
>>1822809
>true Linux
А что для тебя true Linux? Чтоб консолечка и текстовый инсталлятор и ну это пакеты были простым архивом, и конфиги текстовые, да? Другого от туповатого дегрода ожидать не приходится.

>Другого от юзера ожидать не приходится.
Мать твоя юзер :)
А я вполне себе портирую ядро Линукс на другие железки на работе, маня.

>>1822811
Ну основной способ передачи данных между сервисами в микроядер это посылка сообщений. Валидность сообщений кладется на руки программиста. Грубо говоря ты можешь послать хитровыебаное сообщение и обвалить нахер всю ОС.
Для сравнения у меня после kernel panic ядро линукс продолжало работать, после пропуска события, recovery из внештатной ситуации вполне работал.

>>1822820
>консолечка и текстовый инсталлятор и ну это пакеты были простым архивом, и конфиги текстовые
Ясно. Можешь больше не писать. Мне все понятно.

>>1822828
https://www.opengroup.org/openbrand/register/brand3581.htm
Заплатили бабло Apple, ось у них true unix как бэ де юре.
Де факто любая ос которая имплементит posix может пройти сертификацию и стать true unix, было бы желание и деньги.

>>1822834
Читай матчасть.

Аноним 04/10/20 Вск 15:21:00 #122 №1822857 
image.png
>>1822855
>А что для тебя true Linux?
В глаза долбишься? Это Slackware.
И Патрик хуй ложил на systemd. А вы прогнулис.

>туповатого дегрода
Клоун, следи за базаром.

>А я вполне себе портирую ядро Линукс на другие железки на работе
Да мог бы и не признаваться. И так видно что ты обезьяна. Портирует он. Ха ха. Ну на назови ДВЕ железки, куда ты портирровал ядро Linux.

>Грубо говоря ты можешь послать хитровыебаное сообщение и обвалить нахер всю ОС.
Сразу видно что ты читал, но не понимал. L4 поддерживает три типа данных в сообщения - регистры сообщений, "строки" и memory mapping. Сможешь придумать сценарий как послать "хитровыебанное" сообщение?

>Для сравнения у меня после kernel panic ядро линукс продолжало работать
Пикрелейтед.
Ну и как бы тебе напомню что большинство микроядер позволяет сценарий запуска драйвера в выделенном адресном пространстве. Разумеется, с просадкой производительности. Но при этом kernel panic уходит в историю.

Аноним 04/10/20 Вск 16:06:13 #123 №1822883 
>>1821847
Какой-то зоопарк, я ебал, о чем вы спорите вообще? Одни делают вещи невозможное возможным, другие делают возможное нужным, и так по кругу. Воистину манямирок с какими-то односторонними иерархиями в голове. Ты еще скажи, что философы паразитируют на достижениях физиков, и стрелочка не поворачивается.
Аноним 04/10/20 Вск 16:07:47 #124 №1822885 
>>1822857
> >А что для тебя true Linux?
> В глаза долбишься? Это Slackware.
> И Патрик хуй ложил на systemd. А вы прогнулис.
У меня OpenRC в генту, впрочем не вижу ничегo плохого в systemd. Проблемы?

> >туповатого дегрода
> Клоун, следи за базаром.
Давай, клоун, поясняй что ж плохого в systemd?

> >А я вполне себе портирую ядро Линукс на другие железки на работе
> Да мог бы и не признаваться. И так видно что ты обезьяна. Портирует он. Ха ха. Ну на назови ДВЕ железки, куда ты портирровал ядро Linux.
Две борды внутреннего использования на MIPS.

> >Грубо говоря ты можешь послать хитровыебаное сообщение и обвалить нахер всю ОС.
> Сразу видно что ты читал, но не понимал. L4 поддерживает три типа данных в сообщения - регистры сообщений, "строки" и memory mapping. Сможешь придумать сценарий как послать "хитровыебанное" сообщение?
Да, посылаю сервису запрос, оно кидает дальше невалидное сообщение. Вполне себе сценарий уязвимости.

> >Для сравнения у меня после kernel panic ядро линукс продолжало работать
> Пикрелейтед.
> Ну и как бы тебе напомню что большинство микроядер позволяет сценарий запуска драйвера в выделенном адресном пространстве. Разумеется, с просадкой производительности. Но при этом kernel panic уходит в историю.
Так пишешь будто драйвер не общается с ядром вообще. Если происходит общение - возможен и обвал. Тем более если ядро не следит за валидностью посланных данных.

Дуй, маня, отсюда. Маловат ещё.
sageАноним 04/10/20 Вск 16:11:13 #125 №1822887 
>>1822857
Ебать ты долбоеб, земля тебе пухом, братишка.
Аноним 04/10/20 Вск 16:19:23 #126 №1822892 
>>1822855
Мне тоже кажется что Макось это тру Юникс.
Аноним 04/10/20 Вск 16:29:28 #127 №1822898 
image.png
>>1822885
>в генту
Уровень красноглазия зашкаливает.

>Две борды внутреннего использования на MIPS.
Ну так я и говорю - обезъяна. Не приписывай себе чужих заслуг, Linux на MIPS портирован более 20 лет назад. https://opennet.ru/docs/HOWTO/MIPS-HOWTO.html

> Да, посылаю сервису запрос, оно кидает дальше невалидное сообщение.
Ты так и не ответил, как повалить. Пример невалидного сообщения приведи.

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

Открою тебе серкет, но только тебе. При кривом дизайне того, что крутится поверх микроядра, возможна другая проблема, о которой ты не упомянул - flooding. Если какой-то процесс "сойдёт с ума" и начнёт спамить сообщениями. Вот это может быть проблемой. Но повторюсь - при кривом дизайне ОС.

>Маловат ещё.
Можешь прикинуть мой возраст, если впервые Linux я установил в 1995 году. С дискет.
Аноним 04/10/20 Вск 16:45:32 #128 №1822906 
>>1822885
И, кстати, вот на это можешь не отвечать:

>>>1822898
>>>Linux на MIPS портирован более 20 лет назад.

Я представляю трудозатраты на портирование на новое железо. С точки зрения "вкатывальщиков" это уровень Бог. Но бородатые дяди не оценят. Если без троллинга, обычная задача для обычного программиста.
Аноним 04/10/20 Вск 17:17:33 #129 №1822922 
>>1822898
> >в генту
> Уровень красноглазия зашкаливает.
Будто слака это не красноглазие

> >Две борды внутреннего использования на MIPS.
> Ну так я и говорю - обезъяна. Не приписывай себе чужих заслуг, Linux на MIPS портирован более 20 лет назад. https://opennet.ru/docs/HOWTO/MIPS-HOWTO.html
Ты тупой? Ты точно тупой. Я завел борду, а не архитектуру. И ты ещё тут что-то мне пишешь? Можешь нахуй сходить, маня.

> > Да, посылаю сервису запрос, оно кидает дальше невалидное сообщение.
> Ты так и не ответил, как повалить. Пример невалидного сообщения приведи.
Прям сейчас сяду и начну писать код под это говно. Делать мне нехуй для тупого дурачка с борд хуиту писать.

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

> Открою тебе серкет, но только тебе. При кривом дизайне того, что крутится поверх микроядра, возможна другая проблема, о которой ты не упомянул - flooding. Если какой-то процесс "сойдёт с ума" и начнёт спамить сообщениями. Вот это может быть проблемой. Но повторюсь - при кривом дизайне ОС.
Это кривой дизайн микроядра такое допускает.

> >Маловат ещё.
> Можешь прикинуть мой возраст, если впервые Linux я установил в 1995 году. С дискет.
По-моему ты просто родился в 1995 и так цепляешься за эту цифру
Я в это время универ закончил.
Аноним 04/10/20 Вск 17:19:32 #130 №1822925 
>>1822906
Куда сложнее завести gcc/binutils/glibc для новой архитектуры.
Ядро портировать на обычную risc архитектуру дело пары месяцев.
А вот смержить в апстрим дело пары лет.
Аноним 04/10/20 Вск 17:28:39 #131 №1822932 
>>1822922
Чел ты ахуенен, хочу быть таким же крутым как ты.

мимокрок
Аноним 04/10/20 Вск 17:33:12 #132 №1822934 
>>1822922
>Будто слака это не красноглазие
Sllacware это unix way.

> Я завел борду
Так это не повод для гордости.

> Это его основная проблема.
> Это кривой дизайн микроядра такое допускает.
Если бы ты ещё чего-нить в этом понимал. Пиздеть - не мешки ворочать. А дрвйвер-то хоть один написал под Linux? Вот так чтобы под новое железо, а не тупо переопределить адреса портов.

> Я в это время универ закончил.
Я тоже.

>>1822925
>Ядро портировать на обычную risc архитектуру дело пары месяцев.

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


Аноним 04/10/20 Вск 18:38:02 #133 №1822981 
Безымянный.png
Почему я такой тупой? Я не смог догадаться до такого простого решения. Пришлось подсматривать.
Аноним 04/10/20 Вск 18:39:42 #134 №1822985 
изображение.png
>>1822981
Аааааа щас меня будет бесить то что моё решение не сработало. СУККААААААААААААААААААААААА
Аноним 04/10/20 Вск 18:49:12 #135 №1822992 
Безымянный.png
Почему это решение обречено на смерть?
Аноним 04/10/20 Вск 18:51:59 #136 №1822997 
>>1822981
Идея очевидна, даже не читая код, сразу догадался, что там будет, хоть я и мимокрок-питонист. Но блять, насколько же СИ тяжело читать и понимать код, это пиздец.
Аноним 04/10/20 Вск 19:00:22 #137 №1823003 
>>1822997
Это типа стартовые задачки, которые легкие, легче блять не найти. Нужно написать самому все строковые функций которые в библиотеке есть.
Аноним 04/10/20 Вск 19:13:36 #138 №1823025 
image.png
>>1822992
Аноним 04/10/20 Вск 19:21:06 #139 №1823028 
>>1823025
ДА БЛЯТЬ ЧУВАК КАК? КАК?
Аноним 04/10/20 Вск 19:25:02 #140 №1823030 
изображение.png
>>1823025
Точно блять можно же было еще один поинтер заюзать, сукаааааааааааааааааааааааааааааааааааааааааааааааааааааа
sageАноним 04/10/20 Вск 20:11:35 #141 №1823082 
>>1823025
О, самое адекватное решение той задачи
Аноним 04/10/20 Вск 21:30:53 #142 №1823148 
image.png
>>1823082
>О, самое адекватное решение той задачи

Увы, нет. Его вариант может портить стэк. Вот так безопаснее.
Аноним 04/10/20 Вск 21:40:08 #143 №1823155 
image.png
image.png
Блядь, хуйня какая-то, думал оптимизирую, а получилась хуйня
Аноним 04/10/20 Вск 21:49:23 #144 №1823159 
>>1823155
Всё равно пишешь платформозависимо, от чего бы вссемблерную вставку не сделать?
Аноним 04/10/20 Вск 21:53:56 #145 №1823162 
>>1823159
Та не, я думал именно шоб конпелятор придумал какую-то дешевую проверку, чтоб в слове есть нулевые байты
Аноним 04/10/20 Вск 22:03:16 #146 №1823167 
>>1823155
Попробуй
MOV RDI, RAX
MOV RCX, -1
XOR AL, AL
REPNE SCASB
NEG RCX
MOV RAX, RCX

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

Аноним 04/10/20 Вск 23:32:04 #147 №1823204 
>>1823155
Хуй будешь?
Аноним 04/10/20 Вск 23:55:23 #148 №1823220 
Безымянный.png
ПАЦАНЫ Я ПОЧТИ СДЕЛАЛ ЭТО МОЖЕТЕ ОБОССАТЬ НО Я ДОВОЛЕН
https://pastebin.com/Tus0xpWY
dead per dead 05/10/20 Пнд 08:19:42 #149 №1823349 
>>1823220
Обосрамус в самом начале, где ты char сравниваешь c eof, который -1. Со знаковым ч это сработает на символе del, с беззнаковым - никогда.
Аноним 05/10/20 Пнд 09:15:54 #150 №1823368 
1552764091318.png
>>1822981
Рисуй какие нибудь такие схемки - все станет довольно очевидным.
Аноним 05/10/20 Пнд 10:14:25 #151 №1823394 
>>1823155

https://software.intel.com/sites/landingpage/IntrinsicsGuide/#

Не благодари.
Аноним 05/10/20 Пнд 11:07:34 #152 №1823420 
image.png
Всё же Конрад Лоренц был прав. Это конечно оффтопик здесь, но тем не менее. Это я про перенос агрессии. Вот например у голубей. Одно дело когда грубит гуру в сторону ламера, дабы наставить его на путь истинный. И совсем другое дело когда в бессильной злобе бесится воинствующая безграмотность. В общем, когда мозги закипят над решением сложной задачи, почитайте Конрада Лоренца - мир станет понятнее.
Аноним 05/10/20 Пнд 11:14:00 #153 №1823422 
>>1823349
Окей поставлю повтор ввода пока пользователь не напишет quit.
Аноним 05/10/20 Пнд 11:14:56 #154 №1823423 
>>1823349
Хотя в линухе всё работает. Ctrl+D выходит по маслу. В каждой системе же свой EOF. Я потом добавлю Quit.
Аноним 05/10/20 Пнд 11:18:39 #155 №1823425 
>>1823368
Да я думал типа абстрактное мышление прокачивать, в голове продумывать. Буду рисовать чо.
Аноним 05/10/20 Пнд 11:31:26 #156 №1823429 
>>1823420
На примере Линуса мы узнали что никакой разницы, и грубящий гуру так же получает леща.
Аноним 05/10/20 Пнд 11:37:36 #157 №1823434 
>>1823429
>мы
Не "мы", а ты. Анонимность конечно чуть-чуть помогает, но несколько строк вполне характеризуют скиллы человека.

Нет никакого "мы". Не успокаивай себя.
sageАноним 05/10/20 Пнд 11:50:34 #158 №1823440 
>>1823420
Никто не принимает долбоящерские идеи говенного микроядра? Нассали в рот и в жопу и никакого ощущения что кому-то есть дело до твоей писанины? Сожалею.
Может ещё накинь статеек, может 1 анчоус прочитает их, сидя на толкане. Если кому-то вообще есть дело до твоей писанины, шизик))
Аноним 05/10/20 Пнд 11:54:05 #159 №1823445 
.jpg
>>1823420
Никому не грублю, я вообще NPC но если будет сложная задача, буду сидеть пока не сдохну или не решу.
Аноним 05/10/20 Пнд 12:00:55 #160 №1823449 
1574521086280.png
>>1823434
>Не "мы"
Ну если _ты_ не узнал - то это только твоя неосведомленность, конечно.
sagedead per dead 05/10/20 Пнд 12:01:28 #161 №1823450 
>>1823423
Просто напечатай значение EOF, а потом перечитай man gets.
Аноним 05/10/20 Пнд 12:02:35 #162 №1823452 
>>1823420
>выдающийся австрийский зоолог и зоопсихолог[6], один из основоположников этологии — науки о поведении животных
Ясно. Ну я предпочитаю с животными не работать. Хотя нет, попугайчик на плече сидит когда код пишу.
Аноним 05/10/20 Пнд 12:15:57 #163 №1823471 
>>1823450
Я знаю что такое EOF. Не факт что в системе он будет -1, у каждой системы своё значение. А gets мне зачем перечитывать? Это строковая функция.
Аноним 05/10/20 Пнд 12:15:58 #164 №1823472 
>>1823449
Сотворили себе кумира и носитесь с ним.

Лучше посмотри на картинку и охуей.
Единственное что могу сказать - только полгода прошло с того момента, как с этого сервака перешли на другой и он сейчас в резерве. До этого он обслуживал десятки тысяч запросов ежедневно.
sageАноним 05/10/20 Пнд 12:16:43 #165 №1823473 
>>1823471
Ясно, можешь не продолжать.
Аноним 05/10/20 Пнд 12:16:46 #166 №1823474 
image.png
>>1823472
Аноним 05/10/20 Пнд 12:18:46 #167 №1823476 
>>1823472
То что у тебя аптайм большой никак не позволяет гению агриться в сторону других.
Аноним 05/10/20 Пнд 12:19:04 #168 №1823477 
>>1823452
Смотри на плечи то насрет
Аноним 05/10/20 Пнд 12:19:14 #169 №1823479 
>>1823471
Толсто.
Аноним 05/10/20 Пнд 12:19:26 #170 №1823480 
>>1823476
Позволяет. Ты даун и пидорас.
Аноним 05/10/20 Пнд 12:19:30 #171 №1823481 
>>1823477
Специальные погоны ношу.
Аноним 05/10/20 Пнд 12:19:57 #172 №1823482 
изображение.png
>>1823473
>>1823479
Аноним 05/10/20 Пнд 12:20:08 #173 №1823483 
>>1823480
А ты - в бессильной злобе бесится воинствующая безграмотность.
Аноним 05/10/20 Пнд 12:20:27 #174 №1823484 
>>1823481
Я их оторву и мы вместе пойдем на бал. В мою честь... И салюты там будут в мою честь...
Ой блять
Аноним 05/10/20 Пнд 12:20:43 #175 №1823485 
>>1823479
>>1823473
Два долбоеба лол
Аноним 05/10/20 Пнд 12:20:58 #176 №1823486 
>>1823482
Ну если у тебя gets и getchar это одно и то же...
(А разве gets не депрекейд?)
Аноним 05/10/20 Пнд 12:21:39 #177 №1823487 
>>1823482
>>1823485
Учитесь, сынки
Может у вас отвалится хвост
И вы сможете написать что-то сложнее hellyo wirld
Аноним 05/10/20 Пнд 12:22:23 #178 №1823488 
>>1823486
Во первых где я сказал, что gets это одно и тоже, а во вторых я его даже не использую в коде, это какой то чувак жопой читает.
Аноним 05/10/20 Пнд 12:22:54 #179 №1823490 
>>1823486
Он виндовопробитый очкопетух.
У него s_gets = s от слова безопасный секс
Аноним 05/10/20 Пнд 12:23:22 #180 №1823491 
>>1823487
Что?
Аноним 05/10/20 Пнд 12:23:54 #181 №1823492 
>>1823491
Что?
Аноним 05/10/20 Пнд 12:24:45 #182 №1823494 
16013982925660.png
>>1823490
Аноним 05/10/20 Пнд 12:26:52 #183 №1823497 
>>1823488
Блджад ну может ты другой анон тогда, я отвечал в ветку где gets в коде на скрине
Аноним 05/10/20 Пнд 12:27:13 #184 №1823498 
>>1823476
>То что у тебя аптайм большой никак не позволяет гению агриться в сторону других.
А кто гений? Торвальдс?

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

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

И есть какой-то пёс, которой скулит, но выдаёт ноль осмысленной информации. При этом, судя по ответам, кроме фекалий его пасть ничего не выдаёт. Биомусор, короче.

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

Если что, то вот эти посты мои -
>>1823025
>>1823148
>>1823167
Аноним 05/10/20 Пнд 12:28:59 #185 №1823500 
>>1823484
Осталось самолеты посчитать.
Аноним 05/10/20 Пнд 12:32:40 #186 №1823503 
>>1823420
Ну смотри, все хипстеры - это пидоры. А пидоры - говно. Вот эти все ваши подвороты, жидкие бородки, смузя, вот все эти "прогрессивные" идеи феменизма, толерантности, бигендерства, экофашизма, БЛМ, куколд-движение, ненависть маскулинности, вот эта вся любовь к JS и React.JS, любовь к разработке "ПАЛЕЗНЫХ СЕРВИСАВ", катание на пидорскутере и ненависть к мужским мощным авто с ДВС выдает в этих всех людях говно-пидоров и вообще червей. Психолухи, инфоцигане, бизнес-КОУЧИ, в принципе, в ту же когорту.

Смотри, я сагрессировал чутка.
Аноним 05/10/20 Пнд 12:34:57 #187 №1823504 
>>1823497
Вот моё говно -> >>1823220
s_gets это версия gets но без проблем оригинала. Там отбрасывается \n заменой нулем если лимит не достигнут чтобы не дублировалась новая строка в getchar() в будущем. EOF юзается если нужно выйти из системы, всё по Пратовскому учебнику. Кстати я уже дописал что делал.

https://pastebin.com/y4tCvUCW
Аноним 05/10/20 Пнд 12:39:05 #188 №1823506 
изображение.png
>>1823504
А да забыл добавить, можете обосрать и обоссать
Аноним 05/10/20 Пнд 12:41:20 #189 №1823511 
изображение.png
>>1823504
>EOF юзается если нужно выйти из системы
Аноним 05/10/20 Пнд 12:46:58 #190 №1823514 
>>1823482
Ладно, я понимаю что ты зеленишь. Поэтому напишу как есть на самом деле.
getchar() возвращает int. Это больше чем char, поэтому там может быть или char, или EOF. Будет он -1 или не будет действительно неважно.
gets() возвращает указатель на ту же строку, если прочитал успешно, или NULL, если был EOF или другая ошибка.
Аноним 05/10/20 Пнд 12:49:06 #191 №1823517 
>>1823423
ctrl-D это EOT, а не EOF, код 04 в ASCII
Аноним 05/10/20 Пнд 12:53:17 #192 №1823520 
>>1823503
Ух сколько же тут микроагрессии.
Пойду выпью клубничный смузи и подолблюсь в жопу, повейпив чутка.
Аноним 05/10/20 Пнд 12:53:18 #193 №1823521 
>>1823503
> бизнес-КОУЧИ
На этом месте рука непроизвольно потянулась к пистолету.

Не, этология заебатая хорошая наука. Многие книги по этой теме интереснее приключенческой фантастики и детективов. С трудами этологов по качеству и полезности могут сравниться лишь "талмуды" с описанием железа и протоколов.

Аноним 05/10/20 Пнд 12:58:31 #194 №1823524 
>>1823517
Осеннее послабление да?
The ^D character (aka \04 or 0x4) is the default value for the eof special control character parameter of the terminal or pseudo-terminal driver in the kernel (more precisely of the tty line discipline attached to the serial or pseudo-tty device).
Аноним 05/10/20 Пнд 13:02:10 #195 №1823526 
>>1823514
Короче хватит читать жопой, ты не понимаешь, что какой то шизик жопой прочитал код, заменил у себя в бошке getchar() на gets() и думает, что не обосрался, но на самом деле просто не хочет признавать.
Для справки, никто сука не говорил иначе. Все прекрасно знают как всё работает. Просто банальное слабоумие паскододебила говорит за себя.
Аноним 05/10/20 Пнд 13:04:05 #196 №1823529 
>>1823526
Какой еще getchar(), шиз? Покажи пост с кодом где использовался getchar. Использовался s_gets.
Аноним 05/10/20 Пнд 13:04:23 #197 №1823531 
изображение.png
>>1823349
Господи какой же еблан
Аноним 05/10/20 Пнд 13:05:53 #198 №1823532 
>>1823529
>>1823220
Аноним 05/10/20 Пнд 13:08:34 #199 №1823536 
>>1823531
Сам ты еблан. А я старательный.
Аноним 05/10/20 Пнд 13:08:45 #200 №1823537 
>>1823520
>Пойду выпью клубничный смузи и подолблюсь в жопу, повейпив чутка.

Удачно подхватить спид, пидрила.
sagedead per dead 05/10/20 Пнд 13:09:09 #201 №1823539 
15854928531320.jpg
Какой же stdio сложный... и опасный.
Как и весь си.
Аноним 05/10/20 Пнд 13:09:32 #202 №1823540 
>>1823536
Хуево получается чот. Маняхинатор блять.
Аноним 05/10/20 Пнд 13:09:33 #203 №1823541 
>>1823524
Мать твоя жопу послабила, вот мы ее и ебем
Спасибо за инфу
Аноним 05/10/20 Пнд 13:10:32 #204 №1823542 
>>1823539
Как гомопедрильный seax? Я думаю ты в этом профессионал.
Аноним 05/10/20 Пнд 13:12:49 #205 №1823545 
>>1823537
Следи за своим батей.
А я пойду писать кастомный солюшен под фриртос с использованием mqtt esp32 bluetooth mesh сетей. Тебе такое даже и не снилось.
Аноним 05/10/20 Пнд 13:16:24 #206 №1823548 
>>1823545
конечно, у меня ведь есть работа, поэтому у меня не так много времени чтобы в понедельник сидеть мамке систему автополива велосипедить для дачки.
Аноним 05/10/20 Пнд 13:22:50 #207 №1823552 
>>1823532
Глаза протри, это gets
Аноним 05/10/20 Пнд 13:24:22 #208 №1823554 
>>1823521
Возможно.
Но я на дух непереношу всяких Петь Хуесосиповых, Хуязов Шлюхбудтиновых, Трахформаторов (оно это непонятное, блять, хоть знает что это за устройство такое, трансформатор?!) и т.д. Атсасизатора в ту же парашу (ну, хоть один взял себе псевдоним, который чуть-чуть, но отображает суть - человек, который связан с говном но, вообще, ассенизатор - уважаемая профессия, в принципе).

Ну а забугорные инфоцигане... Как я понимаю, суть их не лучше. Только они не так в открытую чушь несут и все, собственно, за это им только и респект.
Аноним 05/10/20 Пнд 13:25:53 #209 №1823555 
>>1823548
А я не систему автополива делаю. Я делаю станцию для лифта у себя в доме.
Аноним 05/10/20 Пнд 13:32:35 #210 №1823559 
>>1823552
Жопочтеца не исправит даже могила
Аноним 05/10/20 Пнд 13:35:07 #211 №1823563 
>>1823555
>Я делаю станцию для лифта у себя в доме.
Так это задача не для программирования, а для разработки оптимального алгоритма. Закодировать это даже школьник способен, а вот разработать какой-то новый оптимальный алгоритм под эту тему, это уже не совсем тривиально. Это ж надо держать баланс между расходом электроэнергии, чтобы лифт попусту не гонять, и временем ожидания лифта.

Аноним 05/10/20 Пнд 13:42:03 #212 №1823569 
>>1823548
Factorio IRL
Аноним 05/10/20 Пнд 13:55:19 #213 №1823584 
>>1823548
Ага. Дуй на работу, раб!
РНН.
Только сишечка, только микрухи, только хардкор дома.
А ты там пахай на дяденьку за копеечку.
А я вот выйду на стартап и заработаю мешок золота.
Аноним 05/10/20 Пнд 13:59:12 #214 №1823587 
>>1823584
>только микрухи
Через пару лет будут пылиться на полке в шкафу. Как-то так.
sageАноним 05/10/20 Пнд 14:00:39 #215 №1823589 
>>1823563
Маразматик в треде, все в транзистор!
Ты дурак? Какой нахуй расход электроэнергии, открыл электричество на электромотор и он крутит, все! Кнопку тип в кабине нажал и тащит его на определенный этаж. Какой тут нахуй алгоритм, шизик? Ты ещё скажи что ты хотел бы отдефрагментировать стек.
Аноним 05/10/20 Пнд 14:02:10 #216 №1823592 
>>1823587
А вот и нихуя!
Аноним 05/10/20 Пнд 14:04:46 #217 №1823595 
>>1823589
Это тебя для "затравки"

http://ea.donntu.org:8080/jspui/bitstream/123456789/925/1/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0%20%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%D0%B0%D0%B1%D0%B8%D0%BD%D1%8B%20%D0%BB%D0%B8%D1%84%D1%82%D0%B0.pdf

Но не факт что осилишь даже это.
sageАноним 05/10/20 Пнд 14:10:52 #218 №1823599 
>>1823595
Даунецкий выблядок.
Очередной прорывдаже сказал бы взрыв ДНР в области микроконтроллеров принес.
Аноним 05/10/20 Пнд 14:16:20 #219 №1823603 
>>1823589
А если кнопку нажал и вышел, застрял, умер, МОРГ, гроб, кладбище? Или нажал все этажи? Или нажал с нижнего этажа и людям сверху нужно спуститься, а тебе выше их подниматься? Зачем еще раз ехать вниз, когда можно подняться на нужный этаж выше вызванного, высадить и спускаться вниз? Короче много вариантов.
Аноним 05/10/20 Пнд 14:17:01 #220 №1823605 
>>1823595
Судя по все ебалай пишет, у него сажа по кд включена. Мог бы и не тратить время на уебанца.
Аноним 05/10/20 Пнд 14:23:07 #221 №1823618 
>>1823599
Хрюн, тред сборщиков клубники там ->
sageАноним 05/10/20 Пнд 14:23:54 #222 №1823619 
>>1823605
А ты то программировать умеешь? Мне кажется ты банальный лох-вкатывальщик, который нихуя не умеет. А я вот указан как разработчик в паре общемировых и известных проектов, в том числе и на их сайтах указан как разработчик. Так что засунь свою культяпку себе в жопу и помалкивай там, если не сделал для опенсоурса и рынка ПО столько, сколько сделал я.
Аноним 05/10/20 Пнд 14:35:36 #223 №1823636 
>>1823619
Пруфы тащи или иди нахуй.
Аноним 05/10/20 Пнд 14:53:30 #224 №1823657 
>>1823619
Что ты только что сказал обо мне? Ты маленькая сучка. Чтобы ты знал, я вышел из матфака МФТИ с отличием и медалью. Как только я вышел из универа с красным дипломом, меня тут же повели за руку на рабочее место с зарплатой от 200к без испытательного срока как стажера с годовым опытом. Меня тренировали самые лучшие умы фирмы, я ходил среди них как равный и программировал процессоры как профессионал. Благодаря мне ты наверняка, маленькая колхозная тварина сейчас читаешь это сообщение. В отличие от тебя, говноеда нищука, я никогда не работал над попенсурсными проектами, ибо я не такой неудачник как ты. Я уважаю своё время и ресурсы. Подумай еще раз, ублюдок, перед тем как писать мне, божественному со-создателю современной линейки процессоров интел. Пока я пишу здесь, мои коллеги спрашивают совета. Я бы обоссал тебя десятьютысячными способами, но не желаю тратить время на тебя, жирного уродливого девственника. Если бы ты только знал, на что себя обрекаешь, не писал бы такие глупые комментарии мне, твоему идеалу, которым тебе никогда не стать. Ты проклятый идиот. Обоссан.
Аноним 05/10/20 Пнд 15:01:18 #225 №1823662 
>>1823657
>матфак МФТИ
Что это за шарага?
sageАноним 05/10/20 Пнд 15:19:13 #226 №1823682 
>>1823657
>пук
Ебать у тебя полыхнуло, лошок.
Без пруфов ты подзаборная шваль и твоё слово нихуя не стоит
Аноним 05/10/20 Пнд 15:34:09 #227 №1823693 
>>1823682
Сказала беспруфная пиздабольная колхозница
sageАноним 05/10/20 Пнд 15:36:27 #228 №1823697 
>>1823693
Я не твоя мать. Ты путаешься, ахахаха
Аноним 05/10/20 Пнд 15:44:07 #229 №1823707 
Безымянный.png
Почему в конце умножает на 10? Надо делить чтобы вышло норм число. (Про вариант - '0' знаю) просто через свич пробую лол
https://pastebin.com/nuWMMPyx
Аноним 05/10/20 Пнд 16:18:59 #230 №1823741 
>>1823707
Ты умножаешь на 10 в цикле для перевода числа в следующий разряд. Но ты это делаешь всегда, в том числе и когда работаешь с единицами уже.
Аноним 05/10/20 Пнд 16:19:22 #231 №1823743 
>>1823563
>>1823589
> станция управления лифтом
> ESP32
> MQTT
> Bluetooth
> ни слова о цепях безопасности, о том, как это все будет подключено, о том будет ли частотник или нет, вот это вот все, как этим управлять
> ОЛГОРЕТМ ШТОБЫ ИКАНОМИТЬ ЛИХТРИЧИСТВА!!!1!1!

Парни... Вы серьезно? Какой, нахер, ESP32 в станции управления лифтом?) И, тем более, какой там нахрен мктт и бт?)))

Бля. Двач такой двач)
Аноним 05/10/20 Пнд 16:27:30 #232 №1823749 
>>1823741
Оставил на потом, пока работает с делением. Но сегодня голова уже ебобо. Потом найду косяк перепишу. Спс.
Аноним 05/10/20 Пнд 16:28:12 #233 №1823751 
>>1823743
А потом говорят через 20 лет. УУУ ЛИФТЫ КАК В САВКЕЕЕЕЕ
Аноним 05/10/20 Пнд 16:28:17 #234 №1823752 
>>1823603
> Или нажал с нижнего этажа и людям сверху нужно спуститься, а тебе выше их подниматься?
Уебок так вот из за кого меня сначала увозит вверх на пару этажей где пытается втиснуться баба срака, вместо того чтобы просто доставить меня хекку на первый. Надеюсь вам таким лифт оторвет яйца и вы не будуете размножаться.
Аноним 05/10/20 Пнд 16:28:48 #235 №1823753 
В Швеции вроде лифты вон уже без дверей и кнопок, там искуственный интеллект сам выбирает куда ехать ЛОЛ
Аноним 05/10/20 Пнд 16:32:35 #236 №1823755 
>>1823743
Ну связь между кабиной и блоком управления по блютузу, можно поставить ретрансляторы и организацию на базе мэш сети, esp32 стоит дёшево и влепить их можно на каждом этаже. Управлять мотором можно через драйвер с мосфетом для ардуины, вполне тока в 5а хватит, радиатор можно прилепить. Даже если какой-то этаж выйдет из строя, то система все равно будет продолжать работу. Высокая отказоустойчивость достижима. А общение по блютузу можно сделать безопасным посредством lwip over bluetooth и сделать шифрованный канал связи на TLS. Главная esp32 будет обслуживать RESTful сервер, к которому будут обращаться остальные этажи. Ну и все написать можно на FreeRTOS.
Аноним 05/10/20 Пнд 16:36:06 #237 №1823757 
>>1823751
А потом, возможно, не через 20 лет этот лифт, нахуй уезжает в потолок (естественно, с последующим сотрясений мозга у пассажиров). А потому что станция на esp32 повисла нахуй и ей все до пизды.
Аноним 05/10/20 Пнд 16:37:57 #238 №1823760 
>>1823755
Двачую.
Кстати, предлагаю убрать ещё цепи безопасности дверей кабины и шахты. Это абсолютно не нужно, а то это как в этих старых лифтах.
Аноним 05/10/20 Пнд 16:38:29 #239 №1823761 
>>1823757
А можно приделать внешний watchdog таймер, и если есп32 не успела сбросить этот таймер, блок управления лифтом перезагружается путем сброса электричества. Удобно. Современные технологии рулят!
Аноним 05/10/20 Пнд 16:39:23 #240 №1823762 
>>1823760
А зачем цепи? Хватит и обычного прочного металлического троса.
Аноним 05/10/20 Пнд 16:46:02 #241 №1823767 
>>1823762
Лифту и трос не нужен - он когда падает, наклоняется и клинит об стенки шахты.
Аноним 05/10/20 Пнд 16:48:33 #242 №1823769 
>>1823767
А можно колесики с тормозами поставить и чтобы они со стенами лифта соприкасались.
Аноним 05/10/20 Пнд 16:50:09 #243 №1823772 
>>1823767
Двачую, нахуй ловители. Тоже для старых пердунов.
Аноним 05/10/20 Пнд 16:50:39 #244 №1823774 
>>1823769
И двери на пружинах, с автодоводчиками.
Аноним 05/10/20 Пнд 16:51:14 #245 №1823775 
>>1823762
Смотри, короч, сейчас в 2к20 в тренде лифты на ремнях, можно, крч, ремней понаспиздить где-то и на ременном приводе запилить.
Аноним 05/10/20 Пнд 16:52:05 #246 №1823777 
>>1823775
Кожаные ремни?
Аноним 05/10/20 Пнд 16:57:54 #247 №1823780 
>>1823777
Вообще, эти ремни делают из полимера, армированного стальными тросиками (кстати, благодаря им работает подобие СПК, но для ремней). Но будем использовать, какие найдем... Хоть даже и из кожи.
Аноним 05/10/20 Пнд 17:01:03 #248 №1823782 
>>1823774
Можно просто лифтера посадить.
Аноним 05/10/20 Пнд 17:01:25 #249 №1823783 
>>1823780
С кожаными ремнями у нас будет настоящий ♂️мужской лифт♂️, с ♂LEATHER BONDAGE♂️ и ♂️FUCKING SLAVES♂️
Аноним 05/10/20 Пнд 17:03:53 #250 №1823785 
>>1823782
А вот и лицо на должность ♂️FUCKING SLAVE♂️ в этой системе
Аноним 05/10/20 Пнд 17:04:46 #251 №1823787 
Безымянный.png
Всё, рачьё закончило 11 главу. Путешествую в 12 Storage Classes, Linkage, and Memory Management. Наконец-то.

https://pastebin.com/CMV2SRMw
Аноним 05/10/20 Пнд 17:29:27 #252 №1823802 
>>1823782
>>1823785
Кстати, да, будет аутентичненько, лифтер как в лифтах раньше было. Будет возить людей ♂️TWO BLOCKS DOWN♂️.
Аноним 05/10/20 Пнд 17:32:27 #253 №1823807 
>>1823802
А потом из выхода говорить ♂️FUCK YOU♂️
Аноним 05/10/20 Пнд 17:33:25 #254 №1823808 
>>1823802
За ♂️THREE HUNDRED BUCKS♂️ поедет ♂️TWO BLOCKS DOWN♂️
Чтобы выебать всех ♂️BOY NEXT DOOR♂️ на этаже
Аноним 06/10/20 Втр 09:43:48 #255 №1824145 
Ньюби квешн пак не обоссыте, плез:
1) История о том, что массив функциональных указателей - не лучшая идея из-за неработающего в таком случае бранч предиктора, правдива или нет?
Ведь намного же красивее(и быстрее?) (foo)[offset], чем case(key_func)...
2) Почему с метками нельзя работать как с функциональными поинтерами?
3) Компелятор всегда присваивает энумерациям значения, начиная с 0,1,2,....?
4) Как компелятор выбирает тип для (s)size_t?
dead per dead 06/10/20 Втр 10:00:21 #256 №1824149 
>>1824145
> 1) История о том, что массив функциональных указателей - не лучшая идея из-за неработающего в таком случае бранч предиктора, правдива или нет?
Как правило.
> 2) Почему с метками нельзя работать как с функциональными поинтерами?
Чтобы нельзя было впрыгнуть в случайную точку функции извне. В гцц есть &&
> 3) Компелятор всегда присваивает энумерациям значения, начиная с 0,1,2,....?
Да
> 4) Как компелятор выбирает тип для (s)size_t?
В заголовке определены как знаковый и беззнаковый типы, сравнимые по ширине с адресом.
dead per dead 06/10/20 Втр 10:23:56 #257 №1824160 
>>1824145
> Ведь намного же красивее(и быстрее?) (foo)[offset], чем case(key_func)...
Расписываю.
Если функция локальна, то case 1: f(х);
может подставить f или по крайней мере специализировать передачу аргументов. Если нет, то два варианта. Если свич скомпилирован в табличный переход, то это хуже, чем массив функций: время уйдет на выборку адреса ветки из таблицы, переход на ветку и потом на вызов функции. Если же скомпилирован в условные переходы, то тут поможет предсказатель.
Аноним 06/10/20 Втр 11:46:34 #258 №1824236 
>>1824149
>сравнимые
Сравниваемые?
Аноним 06/10/20 Втр 12:01:15 #259 №1824254 
>>1824145
> Ньюби квешн пак не обоссыте, плез:
> 1) История о том, что массив функциональных указателей - не лучшая идея из-за неработающего в таком случае бранч предиктора, правдива или нет?
> Ведь намного же красивее(и быстрее?) (foo)[offset], чем case(key_func)...
Да. А вообще сложная тема так как процессор черный ящик по факту.
На суперпродвинутых процессорах как у х86-64 может быть оптимизация которая узнает фактический адрес прыжка(без самого прыжка), и начинает оттуда исполнять инструкцииА потом привет spectre/meltdown
На всяких процессорах попроще(in order) видел по чертежам(на гитхабе полно), что при на наступлении на бранч или прыжок по адресу просто конвейер сбрасывает состояние и прыгает втупую на новый адрес, не заранее, а уже по факту, и никакой разницы там не было.
> 2) Почему с метками нельзя работать как с функциональными поинтерами?
По факту нельзя. Есть расширение gccмне кажется оно есть на любую возможную хотелку
https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
> 3) Компелятор всегда присваивает энумерациям значения, начиная с 0,1,2,....?
Нет, можешь сам задавать значение каждого элемента же.
> 4) Как компелятор выбирает тип для (s)size_t?
Ручками при сборке, при выборе архитектуры.
Аноним 06/10/20 Втр 12:09:35 #260 №1824260 
>>1824254
*Бля, в глаза ебусь.
По дефолту с 0 нумерует метки, но можешь сам указать нумерацию свою.
Аноним 06/10/20 Втр 21:29:59 #261 №1824805 
>>1824254

вообще, компиляторы могут делать лютое колдунство, например, вместо реального колла, проверяет равенство адреса в поинтере и адреса функции, и при совпадении просто переходит на заинлайненную версию функции (со всеми плюшками заинлайненной функции), ну а если не равно, то честн прыгает на адрес. В связи с этими инлайн-оптимизации у меня такое ощущение, что сейчас стоит отходить от стандартного сишного шаблона (.h - заголовок и .c - реализация), а тупо херачить хедер онли библиотеки, шоб компилятор мог всё агрессивно заинлайнить.
Аноним 06/10/20 Втр 21:30:20 #262 №1824806 
>>1824254

вообще, компиляторы могут делать лютое колдунство, например, вместо реального колла, проверяет равенство адреса в поинтере и адреса функции, и при совпадении просто переходит на заинлайненную версию функции (со всеми плюшками заинлайненной функции), ну а если не равно, то честн прыгает на адрес. В связи с этими инлайн-оптимизации у меня такое ощущение, что сейчас стоит отходить от стандартного сишного шаблона (.h - заголовок и .c - реализация), а тупо херачить хедер онли библиотеки, шоб компилятор мог всё агрессивно заинлайнить.
Аноним 07/10/20 Срд 00:24:50 #263 №1824869 
>>1824806
Пример покажи вот этого:
>проверяет равенство адреса в поинтере и адреса функции, и при совпадении просто переходит на заи
Аноним 07/10/20 Срд 00:44:10 #264 №1824871 
>>1824806
Ты наверное пытался описать tail call но у тебя вышло так коряво, что это выглядит еще дороже (лишние проверки)
Аноним 07/10/20 Срд 01:17:24 #265 №1824875 
>>1824805
>>1824806
Имеет место быть такое уже на самом деле. Компиляторы нынче пиздецки умны.

>>1824869
Я другой человек. У меня другой прикол был. Проект на Си на работе. Довелось заглянуть в релизную сборку с O3 на gcc 5.4.0(весьма олдовый уже), с включенными LTO и прочим. Был ивент луп, в котором перебирались структуры соединений, в структуре были функциональные указатели на обработчики (что-то закинуть в коннект, извлечь). Я был удивлен тем, что весь ивент луп был заинлайнен со всеми возможными функциями. inline принудительно не написан везде.
О3 оптимизации были выбраны путем лоад тестинга, так как показали наибольший перф. Ну и кодогенерации такая, что фиг вообще можно что-то понять где находится что в бинаре.
Аноним 07/10/20 Срд 02:12:59 #266 №1824885 
>>1824875
Принудительного инлайна нет лет 5 - он игорится.
Алсо инлайн это не всегда плюс - код может чаще вызывать кэшмиссы.
Аноним 07/10/20 Срд 03:02:03 #267 №1824896 
>>1824885
Ну там компилятор старый был. Продакшен на centos6, а за версию gcc ручаться не буду, возможно там и старее 5.4.0. У меня в контейнере гцц 5.4.0 стоит, что-то более новое проект не собирает в силу определенных причин.
Аноним 07/10/20 Срд 03:50:39 #268 №1824903 
>>1824885

ну это понятно, что инлай - для компилятора, как звонок -для учителя, лол
а как ввобще заинлайненная функция может вызвать больше кэшмиссов, по сравнению с обычным вызовом (не говоря уже о вызове по указателю)? ваще, конечно, хер знает, но мне кажется для современного проца идельный вариант - линейный код с простыми невложенными джампами. локальными джампаи, может. колл, по идее, может вызвать кэшмис(из-за нелокального доступа к памяти) , с другой стороны, колл на статический адрес наверняка предсказывается и соответствующая страничка префетчится в кэш. колл по указателю тоже (по идее, после нескольких вызовов проц выучит, что там реально только несколько функций реально используется, или же, банально, в хотлупе соответствующие странички не успеют из кэша вылезти).
У заинлайненной функции, однако, плюс в том, что не нужно исполнять ритуалы передачи аргументов по ABI, со всеми значениями работаем тупо на месте, оставляя компилятору максимальную свободу либо регистровой оптимизации, либо тупо раработы на прямо горяченькой вершине стека. Должно работать ещё лучше, если функции написаны в функциональном стиле, лол, без изменения аргументов.
Аноним 07/10/20 Срд 04:42:37 #269 №1824922 
>>1824903
Достойный ответ. Интересная мысль.
sageАноним 07/10/20 Срд 20:53:42 #270 №1825439 
>>1824885
> Принудительного инлайна нет лет 5
Есть forceinline/always_inline, который в разном виде умеют все. А inline нужен в основном для особого отношения к static inline в хедерах.


Аноним 08/10/20 Чтв 11:37:13 #271 №1825742 
Прив, поинтересуюсь у коллег. Понятное дело, что в этом треде преобладаем мы, C-шники. Но и представители других направлений могут свободно отвечать на заданные вопросы.
Какую IDE или текстовый редактор используете для написания кода под основу / на прод? Различаются ли выбранные инструменты (продукты) в зависимости от ОС? По возможности свой выбор подкрепите аргументами.
Аноним 08/10/20 Чтв 11:40:28 #272 №1825749 
>>1825742
Уже полгода сижу на связке 10+WSL+визуальная студия, полет нормальный брат жив
Аноним 08/10/20 Чтв 12:00:11 #273 №1825768 
>>1825742
Visual Studio. Алгоритмы отлаживаю в ней, а на таргете уже никакой среды нет - пакетная сборка.
Аноним 08/10/20 Чтв 12:01:28 #274 №1825769 
>>1825742
Любой рандомный дистрибутив Linux и любой редактор с поддержкой lsp(vscode, vim, kate, etc).
Если не используешь тонкие особенности линукса, то можно юзать wsl, иногда вполне валидный код для Линукса будет в нем падать. Wsl2 должен быть ещё лучше, но если он включен, то могут в системе отвалится любой другой виртуализатор. Нужно будет слегка поебаться с этим.
Аноним 08/10/20 Чтв 12:16:05 #275 №1825779 
>>1825769
>vscode
Которая с Visual Studio имеет общего только две буковки в названии.
Аноним 08/10/20 Чтв 12:49:18 #276 №1825819 
>>1825779
Так пишешь будто Visual Studio это что-то адекватное и нормальное. По-моему у вас там на платформе нету других вариантов что-то другое юзать безболезненно.
Аноним 08/10/20 Чтв 13:22:16 #277 №1825841 
>>1825819
Испокон веков весь embedded пользует Visual Studio.
Аноним 08/10/20 Чтв 14:37:47 #278 №1825882 
s.png
>>1825742
Аноним 08/10/20 Чтв 14:48:24 #279 №1825884 
>>1825841
Работал на 2 embedded проектах - ни разу ни у кого винды не видел. Кто-то считает что-то стандартом, а кто-то про это говноедство стандартизированное не слышал.
Аноним 08/10/20 Чтв 15:34:11 #280 №1825929 
>>1825884
>Работал на 2 embedded проектах
Тут улыбка чеширского кота.
Небосьв России/СНГ? Я тебе толкую за международную практику.
Аноним 08/10/20 Чтв 15:41:19 #281 №1825937 
>>1825929
Я тебе за США говорю.
Аноним 08/10/20 Чтв 15:52:32 #282 №1825943 
>>1825937
>Я тебе за США говорю.
Ну удачи. Я как бы не отрицаю возможноть разрабатывать в чём либо другом. Но эффективность разработки будет от полутора до трёх раз меньше. Так-то и в vi можно кодить, а отлаживать а gdb. Но гораздо эффективнее переносить уже отлаженные решения на железо, чем ковырять с JTAG. Что не исключает ковыряния c JTAG на финальной стадии.
Аноним 08/10/20 Чтв 17:34:32 #283 №1826014 
>>1825769
>>1825779
Меня ещё волнует причина отказа от имплементации VS под системы, базирующиеся на Linux. Пусть проприетарно и закрыто - буду пользоваться продуктом.
VSC субъективно не нравится только посредственной скоростю работы и чрезмерным потреблением ресурсов машины. На сегодняшний день работаю с вышеупомянутым редактором.
Аноним 08/10/20 Чтв 17:37:12 #284 №1826020 
>>1825943
>Но эффективность разработки будет от полутора до трёх раз меньше.
С редактором она на порядок выше, потому что не надеешься на отладчик и ебашишь сразу корректный код, который при этом еще и хорошо отлаживается просто чтением логов. Это водораздел между просто хорошим программистом и рокстаром.
Аноним 08/10/20 Чтв 18:03:58 #285 №1826046 
>>1826020
>не надеешься на отладчик и ебашишь сразу корректный код,
Самогиптноз это конечно хорошо.
Аноним 08/10/20 Чтв 18:51:13 #286 №1826068 
15984345191980.jpg
>>1826020
>С редактором она на порядок выше,
Джвачую, сколько говноиде ломали код при рефакторинге, а говноподелия Джетбрейнс заслуживает только лучи поноса.
Аноним 08/10/20 Чтв 19:08:39 #287 №1826100 
>>1826068
CLion лучшая IDE на планете!!1
Аноним 08/10/20 Чтв 19:18:23 #288 №1826112 
>>1826046
Если бы мы на форуме музыкантов сидели, и они были бы как программисты, пришел бы профи и сказал, что он с листа ноты читает и импровизирует охуенно - а ему такие в ответ, да не, невозможно, самогипноз, я так не могу. Потому что тяжело представить, что человек шел к чему-то много лет, ты же не шел - вот и все не шли. Вот тут такая же хуйня. Я не могу читать ноты с листа, и я даже знаю, что мне, как любителю смысла нет этому учиться годами, но бля, как же это было бы охуенно и удобно.
Но в программировании-то я профи в том смысле, что мне бабки платят. Есть смысл улучшать скиллы постоянно - они ковертируются как минимум в свободное время. При чем такие скиллы, которые помогут мне и через 10 лет, а не очередной фреймворк, который сдохнет через 2 года. И ты не развиваешься, если не напрягаешься, ты развиваешься, если напрягаешься и постоянно ставишь себе новые цели. И вот если поставить себе задачу не пользоваться отладчиком и идешным автодополнением - ты, внезапно, научишься писать код без отладчика и автодополнения, при чем за несколько лет скилл вырастет очень сильно - ровно до того момента, пока тебе не станет это делать комфортно, а ты не будешь срывать дедлайны и отставать от коллег. Можешь не верить. Но факт остается фактом.
И дальше IDE будешь воспринимать как трехколесный велосипед - типа ну да, можно не балансировать, но неудобно же нихуя.
Кстати, ровно по этой же причине множество любителей IDE совпадает с множеством говорящих, что студия - лучшая IDE. Потому что из всех программистов вендоблядок, сидящий в студии на одном-единственном языке, выученным в универе, и сидящий на нем последние лет 10 - это самый ленивый и не развивающий себя тюфяк из всех возможных.
При чем такой может неплохо знать сишку - потому что учить сишку доставляет удовольствие, а вот страдать и самоулучшаться - не доставляет, а редактор или там никсы освоить требует все-таки усилий.
Аноним 08/10/20 Чтв 19:22:58 #289 №1826117 
>>1826112
>которые помогут мне и через 10 лет
Сколько тебе будет через 10 лет?
Аноним 08/10/20 Чтв 19:27:45 #290 №1826122 
>>1826112
ПИШУ КОД БЕЗ ИДЕ
@
ОТЛАЖИВАЮ ПРИНТАМИ
Аноним 08/10/20 Чтв 19:29:02 #291 №1826123 
1601211078147813003.jpg
>>1818156 (OP)
Кстати, мне вот IDE нравилось, VS2005 топчик была, потом начали появляться тормознутые монстры, да и я стал ближе к Богу. Вот проект на Qt где идет микс cpp и qml подобие js, документашка в md, еще нужно простые текстовики править, а еще есть вывод json и sql запросы, плюс править make и кое какие скрипты на bash, кек.
Аноним 08/10/20 Чтв 19:32:18 #292 №1826128 
>>1826117
42
Аноним 08/10/20 Чтв 19:34:43 #293 №1826131 
>>1826112
Есть разряд людей - говнохранители.
Они обычно привыкнут к чему-то одному. И начинают топить за это без всякой на то причины. Шаг влево или вправо им трудно даётся.
Аноним 08/10/20 Чтв 19:35:02 #294 №1826132 
>>1826128
Ты хотел сказать 22?
Аноним 08/10/20 Чтв 19:37:17 #295 №1826136 
>>1826128
>>1826128

Вот ты споришь со мной, а я первую программу написал в год твоего рождения. На BASIC.

Аноним 08/10/20 Чтв 19:37:59 #296 №1826138 
>>1826136
И что из этого должно следовать?
Аноним 08/10/20 Чтв 19:47:01 #297 №1826142 
>>1826138
Что у меня опыта чутка побольше.
Конечно при условии что всё это время я продолжал программировать и познавал новое.

Вообще об IDE и языках глупо спорить. Каждый кулик своё болото хвалит. Но если кто вкатывается. то лучше Visual Studio он не найдёт. В том числе и для начальных этапов разработки под встраиваемые системы.

sageАноним 08/10/20 Чтв 20:01:49 #298 №1826149 
>>1826136
"Ой мля, я такой умный, ведь я ещё успел написать код на basic в 90е, и вообще тру линукс это слака, а если не слака - это красноглазая дрочь, я закончил в 90е какую-то шарагу и я этим выебываюсь, и студия лучшая ИДЕ - я СКОЗАЛ, ведь я дольше живу, не согласен? а ты проживи с моё, и я так много постигаю всего нового, но примера привести не могу, ведь я такой умный, вам просто не понять"
Аноним 08/10/20 Чтв 20:13:46 #299 №1826152 
>>1826149
>примера привести не могу
Ну давай я тебе расскажу за один из проектов.
Дело было в далёком 2002 году. За год до этого мы, команда из четырёх разработчиков, реализовали по спецификации некое семейство протоколов, затем портанули его на Linux и на WinCE.
Это предыстория. А затем нам прислали железку от Texas Instruments и кросс-компилятор к ней. Внезапно оказалось что на этой архитектуре размернорсть char оказалась 16 бит. Со всеми вытекающими из этого проблемами. Славно тогда поебались, но таки запустили свою имплементацию.

А ты такое железо щупал?
Аноним 08/10/20 Чтв 20:28:28 #300 №1826155 
>>1826142
Я с тобой согласен, анонче. В студии не сидел, но вот турбо паскаль надцать лет назад мне очень нравился. Такой кайф жать F9! Со воеменем я взялся за реальные задачи и пересел в командную строку.
Аноним 08/10/20 Чтв 20:36:47 #301 №1826158 
>>1826142
>Что у меня опыта чутка побольше.
Аргумент про возраст - это вежливый эквивалент "твою мамку ебал", пустая фраза, не говорящая ни о чем, кроме, собственно, желания доминировать. И такую хуйню как раз любят люди, которым сказать нечего. Классика: https://zadolba.li/story/110

>Конечно при условии что всё это время я продолжал программировать и познавал новое.
Так об этом мой пост. Опыт - штука с падающей отдачей, и если ты не создаешь себе целей, которые генерируют тебе батхерт от тяжести освоения - ты стагнируешь. И научиться работать без отладчика - это простая и понятная цель, которая потом окупится. Если ты к 40 не научился и работа в IDE для тебя в 1.5 раза быстрее - то что ты вообще делал все это время. Для меня это большой вопрос. Мне не важно, кто где работает, но я настороженно отношусь к людям, которые пишут, что они в IDE работают сильно быстрее.
sageАноним 08/10/20 Чтв 20:53:38 #302 №1826167 
>>1826152
"Ой мля я такой охуенный я щупал такие вещи что тебе даже и не снились пизду сестры, ну это там АЖ char 2 байта ебать ВСЕ В СИ ТРЕДЕ ПРОСТО ВЗЯЛИ И ВЫШЛИ НАХУЙ ОТ ТАКОЙ СЛОЖНОСТИ"
Аноним 08/10/20 Чтв 20:55:59 #303 №1826168 
>>1826158
Да походу это какой-то маняфантазер местный, учится на 2 курсе ПТУ и мечтает о программировании железа.
Аноним 08/10/20 Чтв 21:04:03 #304 №1826170 
>>1826158
> И научиться работать без отладчика
Отладка по JTAG это отладчик или нет? Или там в UART логи записать?

Аноним 08/10/20 Чтв 21:05:07 #305 №1826171 
>>1826170
Отладка это исключительно когда делаешь это в Visual Studio

40летний маразматик из этого треда
Аноним 08/10/20 Чтв 21:13:42 #306 №1826176 
>>1826171
Хуйня ты.
Аноним 08/10/20 Чтв 21:22:22 #307 №1826181 
>>1826152
по стандврту char 1 байт, дядя

Аноним 08/10/20 Чтв 21:25:08 #308 №1826183 
>>1826181
>>1826181

Я тоже так думал. Но если всё пойдёт как всегда - тебе сейчас объяснят.
Аноним 08/10/20 Чтв 21:25:41 #309 №1826185 
>>1826123
имхо, удачные были vs 6, vs 2010, vs 2017
Аноним 08/10/20 Чтв 21:25:44 #310 №1826186 
>>1826181
+30 лет в сфере)))
+22см))
+Visual Studio единственная лучшая ide)))
+Лучшие гей клубы Москвы)
+Дядя мне за сорок)))
+Char на железке 16 бит, уууух)
Аноним 08/10/20 Чтв 21:27:44 #311 №1826190 
>>1826185
>vs 6
Да, это как Delphi-7, на держались до последнего.
Аноним 08/10/20 Чтв 21:33:19 #312 №1826193 
>>1826186
>>1826186
>Char на железке 16 бит
Че за бред?
Аноним 08/10/20 Чтв 21:34:00 #313 №1826196 
>>1826183
а без этого не обойтись, ибо
typedef char BYTE;
Аноним 08/10/20 Чтв 21:37:27 #314 №1826198 
>>1826193
ждем ответа от пенсионера, че у него за целевая платформа была такая
Аноним 08/10/20 Чтв 21:37:31 #315 №1826199 
>>1826196
Макросики есть жи
Аноним 08/10/20 Чтв 21:39:20 #316 №1826201 
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/21671?Unsigned-Char-8-bits
Аноним 08/10/20 Чтв 21:48:14 #317 №1826208 
>>1826201
Как-то сегодня спокойно урок прошёл. Никому даже морду ещё не набили.
Аноним 08/10/20 Чтв 21:50:25 #318 №1826211 
>>1826201
Ну не конвенциональный размер. Просто самый меньший размер в системе. Только почему он с размером со short я без понятия. Для этого и создали макросики.
Аноним 08/10/20 Чтв 21:51:16 #319 №1826213 
>>1826181
А чар - минимум 8 бит, сынок
Аноним 08/10/20 Чтв 21:53:26 #320 №1826216 
>>1826198
Да 100% какой-то доисторический монстр по типу TI DSP
Аноним 08/10/20 Чтв 23:27:21 #321 №1826263 
>>1826213
хуита какая-то, по моим сведениям чар - минимум 0-127
Аноним 09/10/20 Птн 00:20:43 #322 №1826287 
>>1826213
8 битным он будет на х86.


>>1826263
>>1826181
Ссылку на свой стандарт. 0-127 чар у него, лол.
Аноним 09/10/20 Птн 01:55:27 #323 №1826309 
>>1826181
>по стандврту char 1 байт, дядя

тебя, видимо, пере ЕГЭ не учили что сишный байт не обязательно 8 бит (но не меньше)

3.6
1 byte
addressable unit of data storage large enough to hold any member of the basic character set of the
execution environment
2 Note 1 to entry: It is possible to express the address of each individual byte of an object uniquely.
3 Note 2 to entry: A byte is composed of a contiguous sequence of bits, the number of which is implementation-defined. The least significant bit is called the low-order bit; the most significant bit is called the high-order bit.

5.2.4.2.1 Sizes of integer types <limits.h>
1 The values given below shall be replaced by constant expressions suitable for use in #if preprocess- ing directives.
Moreover, except for CHAR_BIT and MB_LEN_MAX, the following shall be replaced by expressions that have the same type as would an expression that is an object of the corresponding type converted according to the integer promotions. Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
— number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT 8

Аноним 09/10/20 Птн 01:59:13 #324 №1826310 
>>1826309

— maximum value for an object of type unsigned char UCHAR_MAX 255 // 2^8 − 1
Аноним 09/10/20 Птн 14:31:38 #325 №1826637 
>>1826287
ДА ОН ТРОЛЛИТ ЧУВАК ТЫ НА ДВАЧЕ СИДИШЬ БЛЯТЬ
Аноним 09/10/20 Птн 14:31:57 #326 №1826638 
пиздец идиоты пошли
Аноним 09/10/20 Птн 14:32:55 #327 №1826639 
>>1826310
Ну зачем же ты его так обоссал а?
Аноним 09/10/20 Птн 14:34:05 #328 №1826640 
>>1826310
Вообще если у них чар 2 байта то пускай будет, зачем вмешиваться че то доказывать там?
Аноним 09/10/20 Птн 14:34:47 #329 №1826641 
>>1826310
Додики кривоглазые не могут отличить байт от бита, сука, нахуй им че то доказывать расписывать тут сука
Аноним 09/10/20 Птн 17:22:17 #330 №1826741 
>>1826640
Он не два байта, а один, просто байт жирный, 16-битный.
Аноним 09/10/20 Птн 17:33:05 #331 №1826745 
>>1826741
А какой порядок октетов использовался, если вообще была возможность адресовать раздельно верхнюю и нижнюю часть этого "байта"?
Аноним 09/10/20 Птн 17:43:24 #332 №1826749 
Язык программирования — это совокупность локальных функциональных интерфейсов (составляющих частей языка), оснащенных функциями, входящими в специфические структуры значений. В процессе выполнения интерфейса функция принимает определенные функции, а функции принимают определенные функции.
Аноним 09/10/20 Птн 18:01:44 #333 №1826762 
Таким образом, в основе функционального устройства языка лежат два логических принципа: принцип построения интерфейсов и принцип компоновки функций и связей[ 243 - Хеккелес М. И., Баруздин А. В. Логика языков программирования. — СПб.: Питер, 2008. С. 39– 40.].
Аноним 09/10/20 Птн 18:20:42 #334 №1826771 
>>1826310
Ты бы прочитал сопроводительный абзац, зеленый.
Там прямым текстом написано что это implementation defined и значения в табличке должны быть заменены настоящими.
Аноним 09/10/20 Птн 18:39:51 #335 №1826792 
Шел 5433 стандартосрач в ситреде

АСТАНАВИТЕСЬ
Аноним 09/10/20 Птн 18:46:38 #336 №1826799 
>>1826792
Причём срач на тему, которую порешали 20 лет назад в виде stdint.h
Аноним 09/10/20 Птн 18:50:35 #337 №1826807 
>>1826799
Ща бы писать int_least8_t вместо char (а int8_t это опционально отстутствующий на платформе тип)
Аноним 09/10/20 Птн 18:52:29 #338 №1826812 
>>1826741
Ну охуеть теперь байт 16 бит, до чего еще шиза доведёт?
Аноним 09/10/20 Птн 18:55:37 #339 №1826817 
>>1826807
Дураёбина, ты понимаешь, что раньше на системах char и int были одного и того же размера, не потому, что так надо, а потому, что нужно было отличие между символами и цифрами? Теперь ответь, нахуя мне использовать символ, где мне нужна цифра?
Хотя судя по всему ты рак который даже не знает что такое макросы и с чем их едят.
Аноним 09/10/20 Птн 18:56:33 #340 №1826819 
>>1826817
>нужно было отличие между символами и цифрами
>цифрами
Ясно
Аноним 09/10/20 Птн 18:57:04 #341 №1826821 
>>1826819
Хуясно иди читай базу пидор
Аноним 09/10/20 Птн 18:57:57 #342 №1826823 
>>1826821
Тебе бы учебник за 3-й класс почитать.
Аноним 09/10/20 Птн 18:59:34 #343 №1826827 
>>1826823
Приебывайся к словам дальше кретин ебаный, хотя если ты не улавливаешь смысла то можешь впринципе идти нахуй, я тебе объяснять ничего не буду, ибо в чем смысл раку что-то говорить вообще.
Аноним 09/10/20 Птн 19:01:39 #344 №1826830 
>>1826771
Сказал зеленый даун.
Аноним 09/10/20 Птн 19:01:54 #345 №1826831 
>>1826827
Децибел, если ты решил в лезть в терминологический спор, то у тебя нет права на ошибку в теминах. Цифры, блять, у него.
Аноним 09/10/20 Птн 19:02:12 #346 №1826832 
>>1826309
>сишный байт не обязательно 8 бит
На этом можно закончить. Еблана исправит могила короче.
Аноним 09/10/20 Птн 19:02:39 #347 №1826833 
>>1826831
Иди нахуй долбоеб. ДА ЧАР ЭТО 16 БИТ ВСЁ ОТЬЕБИСЬ.
Аноним 09/10/20 Птн 19:04:23 #348 №1826836 
>>1826832
Если тебе доставляет радость писать непортируемые программы - так и скажи.
С таким же успехом ты можешь удивляться почему твоя чудо программа работает в линуксе но не компилится под виндой.
Аноним 09/10/20 Птн 19:05:01 #349 №1826838 
>>1826833
Че ты разнервничался то? К тебе никто и не доебывался, это ты на людей кидаешься.
Аноним 09/10/20 Птн 19:05:50 #350 №1826841 
>>1826836
О маняпрограммист поворачивает стрелочку, найс.
>>1826838
Пошел нахуй еще раз. Сколько раз тебе повторять мань?
Аноним 09/10/20 Птн 19:06:02 #351 №1826842 
>>1826827
Причем ты сам доебывался когда кто то перепутал чар с байтом - а чего же ты к себе не применил те же принципы про улавливание смысла?
Аноним 09/10/20 Птн 19:06:18 #352 №1826843 
>>1826838
Ты не человек, ты уебанец.
Аноним 09/10/20 Птн 19:06:24 #353 №1826844 
>>1826841
Там занято тобой.
Аноним 09/10/20 Птн 19:08:06 #354 №1826845 
>>1826836
Портируемость - это миф, в любой мало-мальски серьезной программе будет много специфичного для конкретного компилятора/платформы кода.
Аноним 09/10/20 Птн 19:08:30 #355 №1826846 
>>1826842
>перепутал чар с байтом
Дальше можешь не продолжать. Я понимаю осенняя шиза все дела.
Аноним 09/10/20 Птн 19:09:54 #356 №1826847 
>>1826845
Ты еще скажи, что переносимость кода - это миф. Нормально делай - нормально будет
Аноним 09/10/20 Птн 19:12:28 #357 №1826850 
>>1826845
Какая может быть портируемость у рака? О чем речь вообще если у этого идиота самая меньшая единица памяти, т.е чар разница между системами? Она не 1 байт как на любой системе, а может быть размером 16 бит. Пусть использует себе такое определение, но не пиздит про портируемость.
Аноним 09/10/20 Птн 19:13:00 #358 №1826851 
>>1826845
Если для ракообразного чар и инт это одно и то же.
Аноним 09/10/20 Птн 19:14:09 #359 №1826852 
>>1826846
Учи матчасть. Это не одно и то же.
Аноним 09/10/20 Птн 19:15:09 #360 №1826853 
>>1826310
>>1826181
>>1826186
>>1826198
>>1826196
>>1826193
>>1826799
Двачую адекватов.
Аноним 09/10/20 Птн 19:15:25 #361 №1826854 
>>1826845
Ну да, для криворучки вроде тебя - это миф.
Есть кроссплатформенные либы, которые можно скачать в виде исходников и сразу подключить.
И написанные такими, вроде тебя, у которых размер чара прибит гвоздями.
Аноним 09/10/20 Птн 19:15:33 #362 №1826855 
>>1826852
Господи. Какой же пиздец.
Аноним 09/10/20 Птн 19:16:03 #363 №1826856 
>>1826855
Чел, ты...
Аноним 09/10/20 Птн 19:16:43 #364 №1826858 
>>1826856
Ооо ну все я понял что ты за зверь. У вас че каникулы начались?
Аноним 09/10/20 Птн 19:16:52 #365 №1826860 
>>1826850
Честное слово, вот я вообще не ебу, какой размер у кэра блядь, но есть же uint8_t для бинарной хуйни типа протоколов. Кому вообще нужно знать размер таких типов и зачем. Та же маняхуйня, как приоритет операций.
Аноним 09/10/20 Птн 19:18:29 #366 №1826863 
>>1826860
> есть же uint8_t
Не ту.
Это опциональный тип.
Аноним 09/10/20 Птн 19:19:59 #367 №1826865 
>>1826863
И что блядь? Переходишь на новый компилятор, где почему-то нет этого типа, тратишь целых 10 секунд на его определение.
Аутисты ебаные, лишь бы посраться по поводу какой-то маняхуйни. Хррртьфу
Аноним 09/10/20 Птн 19:21:19 #368 №1826867 
>>1826865
Ой бляяяяя
Аноним 09/10/20 Птн 19:22:00 #369 №1826868 
>>1826867
Аутист порвался
Аноним 09/10/20 Птн 19:22:36 #370 №1826869 
>>1826836
Линукс не нужен.
Аноним 09/10/20 Птн 19:25:01 #371 №1826872 
>>1826860
Ну например чтобы не использовать char вместо int когда он нужен. Общее понимание размеров в системе тебе даст понятие где и когда тебе использовать тот или иной тип. Если не нравится есть другие языки программирования. Так-же в разных процах своя размерность типов, поэтому придумали stdlib. Например в одной системе int был 8, в другой 4. Разделили, сделали short. Потом пошло снова, short теперь 8, а int 16. Кстати до этого еще байт называли словом. Чтобы не было непоняток сделали стандарт, где прописали просто, что short меньше int, int меньше long. Если нужно было точное определение типа, его засовывали либо в typedef, либо подключали stdint, где куча макросов которые определяют размер в твоей системе. Удобно при портирований. А так да, разницы никакой, если ты не паришься на счет утечек памяти ит.д или той же оптимизаций. Но считать char и int одним и тем же это тупость.
Аноним 09/10/20 Птн 19:25:48 #372 №1826873 
>>1826872
>поэтому придумали stdlib
Ой не stdlib а stdint.
Аноним 09/10/20 Птн 19:27:57 #373 №1826875 
>>1826836
Ты даже не понимаешь сути обсуждения, рак.
Аноним 09/10/20 Птн 19:29:21 #374 №1826877 
>>1826872
Сколько же у тебя каши в голове
>до этого еще байт называли словом
Слово это слово оно никуда не делось (64-битные процессоры оперируют 64-битным словом, и это никак не влияет на размер байта)
>short меньше int
Short не меньше int. Short меньше ИЛИ РАВЕН int.
Аноним 09/10/20 Птн 19:30:25 #375 №1826878 
>>1826877
>Short не меньше int. Short меньше ИЛИ РАВЕН int.
Пруфы? Или шиза порвалась снова?
Аноним 09/10/20 Птн 19:34:08 #376 №1826881 
>>1826877
>до этого еще байт называли словом
>Слово это слово оно никуда не делось (64-битные процессоры оперируют 64-битным словом, и это никак не влияет на размер байта)
Аноним 09/10/20 Птн 19:35:42 #377 №1826884 
1560656069068.png
>>1826878
Аноним 09/10/20 Птн 19:38:01 #378 №1826888 
>>1826881
Тебе поплохело? Врача вызвать?
Аноним 09/10/20 Птн 19:38:09 #379 №1826889 
>>1826872
>Ну например чтобы не использовать char вместо int когда он нужен
Нахуя он нужен в 2020 году, когда даже контроллер за 100 рублей в розницу может в полноценные 32 бита? ASCII строки хранить?
Для байтоебли есть uint8_t, по которому сразу видно, что на любой платформе он будет восьмибитным ансайнд типом. Создавай любые бинарные структуры, сериализуй, десериализуй, обмазывайся байтиками сколько влезет. А если ты всерьез держишь в голове мысль о том, что "вот тут я использую short, но не потому что у меня 2 байта в бинарном файле, а потому что мне нужен тип с минимальной гарантией в 32767 значений...", то за такое убивать нужно. То есть наличие таких знаний в голове - гарантированный признак задрота-мудака.
Аноним 09/10/20 Птн 19:41:49 #380 №1826895 
>>1826889
>Для байтоебли есть uint8_t
Это опциональный тип.
Есть только uint8_least_t и uint8_fast_t. Которые, конечно, могут быть и 16-битными. Если процессор 16-битный онли.
Аноним 09/10/20 Птн 19:42:06 #381 №1826897 
>>1826884
Ну и где там написано, что short не может быть меньше int?
Аноним 09/10/20 Птн 19:42:57 #382 №1826900 
>>1826888
Тебя читать научить полоумный?
Аноним 09/10/20 Птн 19:44:07 #383 №1826901 
изображение.png
>>1826884
Аноним 09/10/20 Птн 19:44:17 #384 №1826902 
>>1826897
Пойми уже что в программировании используются четкие определения.
Там написано что он может быть меньше или равен.
Если он равен, то он не меньше, а значит, нельзя исходить из предположения что он всегда меньше.
Аноним 09/10/20 Птн 19:44:54 #385 №1826903 
>>1826901
Че сказать хотел?
Аноним 09/10/20 Птн 19:45:25 #386 №1826904 
>>1826889
Нужно различие, хотя бы потому, чтобы было такое понятие как строка.
Аноним 09/10/20 Птн 19:47:00 #387 №1826906 
>>1826900
Чел, никто кроме олигофренов не называл байт словом.
Байт ВСЕГДА был короче слова.
Аноним 09/10/20 Птн 19:47:08 #388 №1826907 
>>1826902
А ну ок.
Аноним 09/10/20 Птн 19:48:14 #389 №1826910 
>>1826906
Ну да ну да 8 битных процессоров никогда не существовало, ИДИ НАХУЙ!
Аноним 09/10/20 Птн 19:48:56 #390 №1826911 
>>1826889
short используют тогда, когда хотят именно short, а не твои маняфантазии про 2 байта.
В нормальных языках вообще можно заводить типы на любые диапазоны чисел, хоть на 13..37
Но тут только так.
Аноним 09/10/20 Птн 19:50:30 #391 №1826913 
>>1826910
Это частный случай, когда они совпали.
Аноним 09/10/20 Птн 19:52:33 #392 №1826918 
>>1826913
Нет, словом реально тогда называли байт.
Аноним 09/10/20 Птн 19:55:17 #393 №1826920 
>>1826918
Может быть какие то рачки и называли. Зачем распространять?
Аноним 09/10/20 Птн 20:01:03 #394 №1826926 
изображение.png
>>1826920
Без комментариев. Сочувствую, что тебе мудаки поднасрали в голову.
Аноним 09/10/20 Птн 20:03:29 #395 №1826927 
1533530559582.png
>>1826926
Ты опять путаешь чары со словами, мудило?
Вот тебе в твоей википидории написано английским по белому - байт использовался для обозначения части МЕНЬШЕ ворда.
Аноним 09/10/20 Птн 20:05:52 #396 №1826929 
>>1826927
Бля ты читать внатуре не умеешь.
Аноним 09/10/20 Птн 20:06:27 #397 №1826930 
>>1826929
Вот это проекции.
Аноним 09/10/20 Птн 20:12:43 #398 №1826932 
image.png
>>1826889
>Нахуя он нужен в 2020 году, когда даже контроллер за 100 рублей в розницу может в полноценные 32 бита?
Вот вообще бесплатный, но у него нет поддержки операций 8 и 16 бит.
Аноним 09/10/20 Птн 20:14:55 #399 №1826933 
>>1826930
Короче напишешь когда осознаешь что обосрался.
Аноним 09/10/20 Птн 20:18:24 #400 №1826936 
>The C language defines a byte to be the number of bits used by type char , so one can have a system with a 16-bit or 32-bit byte and char type.
Как же я жидко обосрался. Признаю, я долбоебина.
Аноним 09/10/20 Птн 20:18:46 #401 №1826937 
>>1826911
>short используют тогда, когда хотят именно short
Аутисты-долбоебы хотят
Аноним 09/10/20 Птн 20:18:49 #402 №1826938 
>>1826933
Перечитывай скрин с этого >>1826927 поста, я тебе спецом подчеркнул красненьким.
Аноним 09/10/20 Птн 20:19:59 #403 №1826940 
Ну вы тут разбушевались. PDP-11 под который писали первый компилятор Си, был 16 битным процессором. И по сути там было только 2 типа short(он же int в те времена) и char. 16 и 8 бит соответственно. Впрочем названия целое и символ были взяты не зря. Подразумевалось что размер будет меняться. Поэтому char может быть 8, может быть 7, а может быть 16 бит.
Аноним 09/10/20 Птн 20:20:41 #404 №1826941 
>>1826938
Там не написано, что байт меньше слова дефакто. Там написан случай, где byte меньше word.
Аноним 09/10/20 Птн 20:21:14 #405 №1826942 
>>1826941
Там написано что байт был по определению придуман как часть ворда.
Аноним 09/10/20 Птн 20:23:00 #406 №1826944 
>>1826942
А char? Как часть строк которых де-факто нету в Си?
Аноним 09/10/20 Птн 20:24:31 #407 №1826945 
>>1826942
Нет там это не написано это блять. Иди учи английский кретиныч.
Аноним 09/10/20 Птн 20:25:40 #408 №1826947 
>>1826937
Шикарный аргумент.
>>1826940
Да не потому что размер будет меняться, а потому, что char был придуман для символов. char для символов, int для целых чисел.
Аноним 09/10/20 Птн 20:27:27 #409 №1826950 
>>1826945
Я тебе красненьким все подчеркнул.
Аноним 09/10/20 Птн 20:28:46 #410 №1826954 
>>1826947
> Да не потому что размер будет меняться, а потому, что char был придуман для символов. char для символов, int для целых чисел.
Ну где-то так да. А для тех кто хочет именно оперировать размерами типов как количеством бит - есть stdint.h
Аноним 09/10/20 Птн 20:29:40 #411 №1826955 
>>1826944
Нет, а что?
Аноним 09/10/20 Птн 20:31:52 #412 №1826957 
>>1826955
Да, а нет что ли?
Аноним 09/10/20 Птн 20:32:19 #413 №1826958 
>>1826950
Если ты читать не умеешь это не мои проблемы. Ты шлешь аргумент, но лупиш в ворота. Я прав, ты тупой. Байтом называли слово. ИГРА В ФУТБОЛ ОКОНЧЕНА ПАЦАН.
Аноним 09/10/20 Птн 20:35:04 #414 №1826960 
>>1826958
>пук
Аноним 09/10/20 Птн 21:30:49 #415 №1826992 
>>1826812
Юноша, отвлекитесь на минуту от своих подворотов. Вы знаете такие архитектуры, как pdp-10, cdc6600, бэсм-6?
Аноним 09/10/20 Птн 21:35:14 #416 №1826995 
>>1826944
"de facto netu v si"
Аноним 09/10/20 Птн 21:38:57 #417 №1827000 
>>1826992
Я знаю intel core i7. А остальное и не нужно!
Аноним 09/10/20 Птн 21:47:50 #418 №1827008 
>>1827000
Джаваскрипт тебе ждет, родной!
Аноним 09/10/20 Птн 21:53:07 #419 №1827012 
>>1827008
Пойду покомпилирую код на Javascript тогда, тем более мне сказали что так возможно в Javascript треде.
Аноним 09/10/20 Птн 23:24:44 #420 №1827079 
полезное обсуждение

но все же хотелось бы услышать от пенсионера что за платформа была где char (байт) был 16 бит

не флейма ради
Аноним 10/10/20 Суб 00:23:51 #421 №1827098 
>>1827079
https://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char
Далеко ходить не надо.
Аноним 10/10/20 Суб 00:24:56 #422 №1827100 
>>1826637
Ну ладно в /po или отбитом наглухо /b. Но не на этой же доске, тем более в таком треде. Я понимаю если бы веб-макак js/python/php троллил, что у них нихуя не объекты, а строготипизированный типы данных.

Эпоха декаданса наступила. Двач погрузился во тьму дегенератов выращенных разведенками.
Аноним 10/10/20 Суб 00:29:26 #423 №1827102 
>>1827100
Зато какой движ тут в треде был, такая дискуссия ни о чем. Почитать было весело. Спасибо обоям
Аноним 10/10/20 Суб 00:30:34 #424 №1827103 
>>1827100
Спасибо что упомянул на чем веб макаки пишут, а то бы подумали что ты один из них ахах вот троллинг бы получился да))) жыес ваще макакены еп)
Аноним 10/10/20 Суб 00:35:27 #425 №1827108 
>>1827102
Нафиг не нужны такие движухи. Зочется общения есть /soc или те же /po, /b.


>>1827103
Не смешно шутишь парниша
Аноним 10/10/20 Суб 00:43:08 #426 №1827109 
>>1827108
Ящитаю вообще надо делать тест на входе в тред, если человек считает что char может быть только 8 бит - не давать постить.
Аноним 10/10/20 Суб 00:54:23 #427 №1827112 
1491007841676.png
9-битный чар, со значениями 0..511
Аноним 10/10/20 Суб 01:29:48 #428 №1827116 
>>1827098
угу
в общем, на некоторых мейнфреймах и платах dsp, char имел не 8 бит

а еще стандарт posix все же требует 8 бит в char
Аноним 10/10/20 Суб 01:31:39 #429 №1827117 
>>1827112
угу
Аноним 10/10/20 Суб 02:19:25 #430 №1827122 
image.png
>>1826831
>Децибел
прослезился подливой
Аноним 10/10/20 Суб 04:14:03 #431 №1827142 
>>1827116
> а еще стандарт posix все же требует 8 бит в char
И это даже хорошо. 9 битный char выглядит маргинально
Аноним 10/10/20 Суб 04:16:44 #432 №1827144 
>>1827122
Просрался слезами с твоих щюток.
Аноним 10/10/20 Суб 05:20:44 #433 №1827161 
А знаете в чем самый сок?
Если CHAR_BITS == 32
То sizeof(uint32_t) == 1
Потому что sizeof возвращает размер в байтах
А байт по стандарту равен CHAR_BITS битам.
Аноним 10/10/20 Суб 08:05:26 #434 №1827178 
>>1827161
Этот слишком много знает
Аноним 10/10/20 Суб 10:09:44 #435 №1827215 
>>1827108
Ты дегенерат сука ебучий ещё смеешь произносить слово СМЕШНО?
Аноним 10/10/20 Суб 13:51:04 #436 №1827294 
еще странно, что в языке системного программирования, нет типа "байт" byte, но подразумеваеться что байт - это char "символ"
Аноним 10/10/20 Суб 14:45:45 #437 №1827324 
Ritchie.png
>>1827294
> системного
Исторически, Си - язык общего назначения и машинно-независимый притом.
Аноним 10/10/20 Суб 15:17:09 #438 №1827352 
>>1827324
Зачем мне это вообще нужно было знать? Я хотел игры делать, почему я сижу теперь читаю списки архитектур процессоров и их размеры слов, занимаюсь байтоеблей, углубленными изучениями терминов. Что за хуйня, ловушка джокера?
Аноним 10/10/20 Суб 15:54:11 #439 №1827363 
>>1827294
Скорее всего чтобы путаницы не возникало, т к ascii коды как-бы в "uint8".

>>1827352
Жиза. Если хотел игорей, то не нужно отвлекаться, а практиковаться в их направлении. Остальное потом.
Аноним 10/10/20 Суб 15:59:42 #440 №1827366 
>>1827352
Ты же хочешь быстрый код в игоре?
Тебе придется выбрать ширину КАЖДОЙ сука целочисленной переменной.
Аноним 10/10/20 Суб 16:35:23 #441 №1827392 
>>1827324
Системный язык и general-purpose language это не антонимы если что
Аноним 10/10/20 Суб 17:11:05 #442 №1827406 
>>1827392
Конечно. Но byte в системе типов? А это сколько бит? Да, на pdp-11 это 8. А на pdp-10 сколько?
http://pdp10.nocrew.org/docs/instruction-set/Byte.html
Аноним 10/10/20 Суб 17:52:20 #443 №1827426 
>>1827406
Тогда зачем ввели CHAR_BIT макрос с размером чара? Может они так отождествляют размер байта, байт и тип char?
Аноним 10/10/20 Суб 18:43:31 #444 №1827456 
>>1827363
>>1827366
Понимаете, суть в том, что я подсел на эту хуйню. Я хочу дрочить термины по кд. Я на игле.
Аноним 10/10/20 Суб 19:28:00 #445 №1827480 
>>1827324
угу, но, бля, спроектирован он для pdp11, а в остальных системах уже костыли прикручивали..
Аноним 10/10/20 Суб 20:09:01 #446 №1827514 
>>1818156 (OP)
почему сишникам-мидлам дяди в целом платят меньше и востребованность на рынке аналогично меньше, чем например у каких-нибудь фронтэндеров и растоебов?
Аноним 10/10/20 Суб 20:13:51 #447 №1827521 
>>1827514
Про растоебов хз, а фронтэндерам гораздо проще объяснить и показать менеджерам чем они занимаются и за что им платить деньги.
Аноним 10/10/20 Суб 22:52:18 #448 №1827624 
>>1827456
Ты идешь по улице и зависаешь на пару минут с закрытыми глазами, мечтая о высокооптимизированной игре на языке Си?
Аноним 10/10/20 Суб 22:54:26 #449 №1827628 
>>1827514
Сфера уменьшаетсячасть разработки уходит с Си на другие языки, тут думаю не секрет. Плюс ненаглядность результата. Ну что-то там на железке или в консольке. Не интересно. Всем бы приложение на телефон или сайт показать с красивой кнопкой.
Аноним 10/10/20 Суб 23:01:42 #450 №1827635 
>>1827514
>>1827514
>в целом

По России?
Аноним 11/10/20 Вск 00:38:00 #451 №1827690 
>>1827215
>Ты дегенерат сука ебучий

Ты че кобыла ебаная охуела? Ты с кем так базарить удумала, ты ондатра плешивая, лошадь зарыганая. Ты хуев блатных обсосалась дурочка ебаная? Ты шотдура ебаная писюн возле кареньуого почувствовать захотел? Да? Мускульное кольцо тебе помассировать хуем? Дичь ты ебаная иди на хуй пидор хуеглот спермохлеб. Вафельница ты дурная.
Аноним 11/10/20 Вск 02:31:59 #452 №1827707 
>>1827690
>пук
Ясно. Ты хотя б Си знаешь как мужик блатной или ты плешивый подшконарный мудень?
Аноним 11/10/20 Вск 03:52:29 #453 №1827715 
>>1827690
Уныло ругаешься. Слышал брань куда покрепче.
Аноним 11/10/20 Вск 11:18:38 #454 №1827827 
>>1827690
>Мускульное кольцо
Маскулинное?
Аноним 11/10/20 Вск 12:08:59 #455 №1827850 
>>1826792
Как будто бы что-то плохое.
Аноним 11/10/20 Вск 12:22:55 #456 №1827855 
>>1827827
Двачую, хипстеры и фемки (бляди ебанные), трахгендеры (не люди) не нужны. Мы за маскулинность и мужество в этом треде.
Аноним 11/10/20 Вск 16:03:06 #457 №1827966 
>suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
Ну и что вы скажете на это, стандартоёбы?
Аноним 11/10/20 Вск 17:55:57 #458 №1827995 
Будьте добры, дайте ссылку на задачи, которые анон тут решает.
Вот та, например, где из строки пробелы надо убрать.
Аноним 11/10/20 Вск 18:28:22 #459 №1828007 
>>1818156 (OP)
Как вы доки пишите? Какие инструмены пользуете?
Аноним 11/10/20 Вск 18:31:00 #460 №1828008 
>register pok-pok dpsrc;
>f(&dpsrc);
>...
>error: address of register variable ‘dpsrc’ requested

Почему компилятор не может копировать значение из регистра в память, передать адрес, а затем записать обратно в регистр?

>>1827995
Шапка -> Керниган&Ритчи. Конкретно эта задача - в конце первого чаптера, вроде как.
Аноним 11/10/20 Вск 18:40:54 #461 №1828010 
>>1828008
>Почему компилятор не может копировать значение из регистра в память, передать адрес, а затем записать обратно в регистр?
Так в этом смысла нет. Изначально register было задумано для оптимизации. При этом, если склероз не изменяет, нет гарантии что переменная будет размещена в регистре.
Аноним 11/10/20 Вск 18:46:02 #462 №1828014 
>>1828010
>>1828010
>Изначально register было задумано для оптимизации.
Условно в одной функции у меня три указателя, которые должны меняться очень часто в рантайме. Один из них (наиболее активный) и был помечен register.
>При этом, если склероз не изменяет, нет гарантии что переменная будет размещена в регистре.
Да, всё так, это лишь компилятору рекомендация. Хотя вроде в каком-то возможно старом стандарте и было жесткое соответствие, но я тоже неуверен.
Аноним 11/10/20 Вск 20:21:25 #463 №1828058 
>>1828014
Клопилятор Ричи размещал первые три такие переменные в регистрах. При встрече амперсанда он ругался, с тех пор это и пошло.
Аноним 11/10/20 Вск 20:58:48 #464 №1828071 
>>1827514
чел, программисты вообще нахуй не нужны щас
в россии щас больше половины выпускников-инженеров выпускаются с ай-ти специализацией в дипломе, это не считая вкатывальщиков
то что за раст или за реакт больше платят, тебя вообще ебать не должно, тк на одну вакансию тысячи кандидатов
Аноним 11/10/20 Вск 21:06:12 #465 №1828074 
>>1828071
но программирование интересное хобби, ты можешь им заниматься в свободное время
работать дворником, уборщиком, убирать говно за стариками, чистить толчки.. такого типа работы ибо на кассу возьмут молодуху, а охранником мента на пенсии..
с этой точки зрения интересней изучать языки lisp-семейства, ml-семейства, декларативные языки наследники prolog, языки основаннын на автоматическом выводе типа, тот же haskell, чисто ооп языки типа смоллтолка и эйфеля, куча всего интересного
эмбеддед сишка слишком простое и занудное дело чтобы быть хобби
Аноним 11/10/20 Вск 21:09:55 #466 №1828075 
>>1827514
1. Почти нет аутсорса с западными зарплатами
2. Есть огромное количество 35+ дядь, которые уже не будут переучиваться, зато у них дети и ипотека, поэтому будут получать сколько дают

Короче хуевый выбор сишка для заработка денег, ее нужно знать просто для собственного развития
Аноним 11/10/20 Вск 21:13:43 #467 №1828076 
>>1828075
>1. Почти нет аутсорса с западными зарплатами
Какой же дурак на аутсорс выложить Си проект? Зато перекатиться легче.
Аноним 11/10/20 Вск 21:20:58 #468 №1828083 
>>1828074
>программирование
>изучать языки
Это разные вещи. Языки изучают всякие аутисты, которые особо не программируют ничего интересного
Аноним 11/10/20 Вск 23:37:00 #469 №1828157 
Чем компильнуть (желательно онлайн) С код, чтобы проверить поведение на big-endian хосте?
Аноним 11/10/20 Вск 23:40:01 #470 №1828158 
tavo rot naoborot.PNG
Анон, такой вопрос, почему gcc выебывается, и при выводе ошибок в консоли, он вместо кириллицы хуету эту выдает. Что за непонятки с кодировкой, заебался угадывать что он говорит
Аноним 11/10/20 Вск 23:42:47 #471 №1828160 
>>1828158
Enjoy your Шindoшs кодировка.
chcp укажи в консоли правильно
Аноним 11/10/20 Вск 23:59:54 #472 №1828165 
>>1828158
Документ сохраняй в кодировке cp866 если хочешь кириллицу читать в сосноле. Этот
>>1828160 хуйню советует.
Аноним 12/10/20 Пнд 00:04:34 #473 №1828168 
>>1828165
Это не документ, это ковычьки у самого гцц. Все правильно советуют - надо chcp 65001, chcp 1251 или chcp 866 (скорее последнее), чтобы отображалось нормально.
Аноним 12/10/20 Пнд 00:41:43 #474 №1828187 
>>1828157
PostgreSQL, Midnight Commander или... https://github.com/ralienpp/deco
Аноним 12/10/20 Пнд 00:44:06 #475 №1828189 
>>1828158
>почему gcc выебывается
Visual Studio так же выёбывается. Забей на русский в консоли. US ASCII это как латынь в фармацевтике и медицине.
Аноним 12/10/20 Пнд 01:08:29 #476 №1828195 
>>1828008
А если памяти нет? Где он вообще ее должен выделять?
А многопоточность?
Аноним 12/10/20 Пнд 04:10:53 #477 №1828250 
>>1828158
Используй bash, дятел.
gcc это пердоподелка для пердоконсоли, которые как правило юникодные utf-8, а виндозная консоль не умеет в юникод.
Аноним 12/10/20 Пнд 08:29:09 #478 №1828304 
>>1828074
Ну, вот у меня сейчас эмбеддед сишка хобби. Ничего занудного в этом нету, весело и интересно.
Аноним 12/10/20 Пнд 08:32:11 #479 №1828307 
>>1827628
Этого двачую.
Сейчас век ебучих золотых оберток.
Идеи для приложений говно редкое, я вам скажу. Но, сука, такое ощущение что клиенты нихуя не допирают до этого самостоятельно и продолжают вваливать в это деньги.

Кто этим всем говнищем пользуется - я хуй его знает.

мимо, к сожалению, мобильщик
Аноним 12/10/20 Пнд 08:56:47 #480 №1828312 
>>1826910
>Ну да ну да 8 битных процессоров никогда не существовало

8-битные процессоры это сраный новодел из второй половины 70х.

Да та же кратность 8 битам это сравнительный новодел от IBM и её линейки System/360 которую совок потом копировал.
Аноним 13/10/20 Втр 01:36:25 #481 №1828926 
>>1828304
Поделись весельем, что делаешь, на чём и чем?
Аноним 13/10/20 Втр 07:46:23 #482 №1829034 
>>1828926
Да дрочу вприсядку, и иногда пишу hello world с мигающим диодом, весело пиздец.
Аноним 13/10/20 Втр 11:59:16 #483 №1829152 
>>1828926
Ебу DS18B20 по one wire с помощью таймеров и дма, как один из примеров.
Аноним 13/10/20 Втр 13:11:16 #484 №1829209 
>>1828926
Отклеилось, сорри.
Пишу на си. Юзаю мейк. Иде - силайон (говно без симейк, но да похуй).

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

Также вот сегодня потихоньку читаю доки на ssd1306.

Алсо, этот пидор, >>1829034, это не я. Это какой-то гомодрил тебя захотел подъебать.
Аноним 13/10/20 Втр 13:36:00 #485 №1829224 
Будет ли это повторным очищением одной и той же памяти?

int a;
int
b;
a = new int[5];
b = a;
delete[] a;
delete[] b;
Аноним 13/10/20 Втр 13:38:21 #486 №1829226 
>>1829224
Звездочки при объявлении указателей съелись макабой.
Аноним 13/10/20 Втр 13:53:55 #487 №1829232 
>>1829224
Вылетит с ошибкой.
Аноним 13/10/20 Втр 13:57:18 #488 №1829233 
Сисуны кто нибудь имел дело с libjpeg? Как этим говном ебаным пользоваться, это просто пиздец какой то а не API.
Аноним 13/10/20 Втр 14:06:34 #489 №1829239 
>>1829233
жри что дают, свинья
зато бесплатно
жри и причмокивай
и не смей жаловаться
умный дядя за тебя столько работы сделал
а ты тут ебало скривил
Аноним 13/10/20 Втр 14:06:42 #490 №1829240 
>>1829224
Да. Конечно, будет вторым освобождением уже освобождённой памяти. Что приведет к падению данной программы, кстати.
Ты же присваеваешь не кусок памяти во второй раз, а указатель на нее. Т.е., по сути, адрес.
Аноним 13/10/20 Втр 14:08:03 #491 №1829241 
>>1829239
А можешь мне чуть-чуть пососать, пожалуйста?
Ну так... Потилибомкать чуть-чуть чисто... пока молофья с моего конца не закапает... Ну так, чисто по-дружески...
Аноним 13/10/20 Втр 18:20:18 #492 №1829449 
>>1829241
съеби животное
Аноним 13/10/20 Втр 22:01:58 #493 №1829596 
>>1829449
Понял, снимаю штаны, открывай рот.
Кстати, я тут утром дрочил и забыл смыть подзалупный творог :( Прости, а? Ну это ж мой, а? Ты ж его всегда любил...

Анон, заранее благодарю тебя за эту работу! :3
Аноним 13/10/20 Втр 22:06:01 #494 №1829597 
>>1829209
Алсо, сорри, утром был на нервах. Забыл написать про МК - STM32F103
Аноним 13/10/20 Втр 22:57:53 #495 №1829637 
>>1829233
А что не так с ней собственно? Глянул на апи, вроде ничего сложного, если обычная задача по типу открытия картинки требуется.
Аноним 13/10/20 Втр 23:01:52 #496 №1829639 
>>1829209
> Отклеилось, сорри.
> Пишу на си. Юзаю мейк. Иде - силайон (говно без симейк, но да похуй).
А в попку даёшь? Пользоваться - clion себя не уважать. Надо ставить Visual Studio.

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

> Также вот сегодня потихоньку читаю доки на ssd1306.
Лучше бы почитай как можно программировать 16 битный калькулятор. Смысла больше.

> Алсо, этот пидор, >>1829034, это не я. Это какой-то гомодрил тебя захотел подъебать.
Сам ты гомодрил. Наебываешь тут людей и обманываешь. Говоришь что дрочишь в присядку, а потом пытаешься сойти за нормального наркомана.
Аноним 13/10/20 Втр 23:27:39 #497 №1829662 
>>1829639
А ты, как я посмотрю, гей-хипстер со смузистическими наклонностями? Свою жиденькую рыженькую пиздобородку причесал? А подворотики? А смузи выпил? За фемок утром прокричал? А права окружающей среды и бигендеров защитил? А, так не гей? Ну, по тебе не скажешь... А что ты тогда на митинге зеленых тригендеров делал, а? Ааа, БЛМ? Так тебе, может быть, по щам нужно?

Я-то в жепу не даю, я, скажем так, гомофоб. А силайон пользуюсь так как я сильно альфач чтобы разобраться с вимом.
Аноним 14/10/20 Срд 01:02:45 #498 №1829700 
>>1829662
> А ты, как я посмотрю, гей-хипстер со смузистическими наклонностями?
Ну да. А ты завидуешь?
> Свою жиденькую рыженькую пиздобородку причесал?
Естественно, и андеркат сделал.
> А подворотики?
А зачем их причесывать?
> А смузи выпил?
А то. Вкусно пиздец.
> За фемок утром прокричал?
Да, прям с утра, каждый день в окно кричу "слава фемкам!"
> А права окружающей среды и бигендеров защитил?
Конечно же. Использую гендернейтральный компьютер от компании Apple.
> А, так не гей?
Я гей. Тебя смущает?
> Ну, по тебе не скажешь...
Ты поехавший? Я пидор.
> А что ты тогда на митинге зеленых тригендеров делал, а?
Ну люблю тригендеров, люблю к ним подсаживаться.
> Ааа, БЛМ?
Люблю ниггеров.
> Так тебе, может быть, по щам нужно?
А может тебе надо по щщам, поехавший?

> Я-то в жепу не даю, я, скажем так, гомофоб. А силайон пользуюсь так как я сильно альфач чтобы разобраться с вимом.
Какой нахуй вим? Надо использовать Visual Studio. Ровные поцоны только студию юзают.
Аноним 14/10/20 Срд 01:21:56 #499 №1829704 
>>1828250
Крч, смена кодировок в нативной шиндовой cmd давала нечитаемое месиво, либо кириллицу вообще не отображала. Если кому нужно, проблему решил установкой ConEmu и chcp1251
Аноним 14/10/20 Срд 01:26:22 #500 №1829705 
>>1829700

Ты не ровный пацан потому что ты за пидоров, фемок и, тем более, блм.

Тебе по щам, ты тело не по понятиям. Не пацан. Пидор-баба, пиздец.

А я вот чай люблю. Вкусно пиздец. И смузей не нужно.

Послушай вот, может ты ровнее станешь и начнёшь превращаться в нормального пацыка (хотелось бы): https://youtu.be/zLWF6G6AQNk
Аноним 14/10/20 Срд 02:14:32 #501 №1829721 
>>1829705
Я не он,он не я.
Visual Studio заебись.
Макось - фуфло.
gcc в целом неплох, чтобы собрать то, что было протестировано и отлажено в Visual Studio.


https://youtu.be/0r3xvd-dloU
https://youtu.be/AqS4aNi0HQY
https://youtu.be/8LhkyyCvUHk
https://youtu.be/foGkU6x3eSE
https://youtu.be/9_Iq9CWuqMM
https://youtu.be/D4y_acTR0MY
https://youtu.be/GcpPg9n-EzQ
Аноним 14/10/20 Срд 03:47:45 #502 №1829741 
кароче только вкатился в с. сижу на кодварсе таски выполняю и увидел в тестах макрос для определения длины массива.

#define ARRAY_SIZE(x) (sizeof x / sizeof 0[x] / (size_t) !(sizeof x % sizeof 0[x]))

вдупляю уже 2 часа в это и не могу понять как это блядь работает.
что за sizeof 0[x], че это за наркомания нахуй. в gdb хуй поинспектишь, помогите разобраться плз
Аноним 14/10/20 Срд 04:14:08 #503 №1829747 
>>1829741
>что за sizeof 0[x],
ты точно не попутал x[0] ???
Аноним 14/10/20 Срд 04:20:22 #504 №1829749 
>>1829747
это одно и тоже, внезапно можешь проверить
Аноним 14/10/20 Срд 04:26:34 #505 №1829750 
>>1829741
> #define ARRAY_SIZE(x) (sizeof x / sizeof 0[x] / (size_t) !(sizeof x % sizeof 0[x]))

Ничего необычного. Просто написано уебками чтобы запутать.
Можно упростить в:

#define ARRAY_SIZE(x) (sizeof x / sizeof x[0])
Аноним 14/10/20 Срд 04:46:20 #506 №1829751 
>>1829747
>>1829750
ебануться можно, спс
Аноним 14/10/20 Срд 07:52:41 #507 №1829791 
>>1829750
Может там выравнивание?
Аноним 14/10/20 Срд 08:23:57 #508 №1829803 
>>1829637
Задача еще проще,получить на вход жпег прочитать и сжать обратно с задаваемыми опциями.
программа минимум:

void jpgopt(unsigned char* src_jpg, unsigned long src_size)
{
struct jpeg_decompress_struct srcinfo;
struct jpeg_compress_struct dstinfo;

jpeg_create_decompress(&srcinfo);
jpeg_create_compress(&dstinfo);

jpeg_mem_src(&srcinfo, src_jpg, src_size);
jpeg_save_markers(&srcinfo, JPEG_COM, 0xFFFF); //сохраняет метаданные по битовой маске

jpeg_read_header(&srcinfo, TRUE); // хуй знает что хуй знает зачем

jvirt_barray_ptr хcoef_arrays = jpeg_read_coefficients(&srcinfo); // еще какую то хуйню читает и возвращает указатель.

jpeg_copy_critical_parameters(&srcinfo, &dstinfo); //копирует цветовой профиль, уровень сжатия итд в выходную структуру

unsigned char хout_jpg;
unsigned long out_size;

jpeg_mem_dest(&dstinfo, &out_jpg, &out_size); //out_size заполняется, out_jpg почему то пустой пустой

jpeg_write_coefficients(&dstinfo, coef_arrays); //то же самое что jpeg_compress(&dstinfo); только с какими то коофициентами
}

Код позаимствован из jpegtran из состава libjpeg-turbo, в оригинальной библиотеке насколько я понял jpeg_mem_src/dst вообще не предусмотрен, есть только jpeg_std_src/dst ошибки предлагается обрабатывать через лонгджамп. Все функции как черный ящик в котором что то проиходит со структурами, то есть без изучения кода самой библиотеки догадаться что оно делает не представляется возможным, как и написать код без примера (у меня даже и с примером не получается).
Понятно что оригинальную библиотеку написали в дремучих годах и все современные реализации/форки тупо тянут совместимость, но API тем не менее ультрауебищное написанное каким тоо мудаком
Аноним 14/10/20 Срд 08:31:51 #509 №1829805 
>>1829803
Ерунду пишешь.
Аноним 14/10/20 Срд 08:43:01 #510 №1829808 
>>1829791
Там вызывают деление на 0, когда размер масява не делится на размер элемента (у наркоманов)
Аноним 14/10/20 Срд 09:29:31 #511 №1829821 
>>1829805
Чому? В современных сишных (да и не только) библиотеках есть более менее общий принцип построения, тут же какой то венегрет.

Алсо, сейчас посмотрел в турбожпег есть оказывается свой API, который как раз уже вменяемый.

Аноним 14/10/20 Срд 14:04:13 #512 №1830076 
>>1829721
Смоуки хороши. И hot stuff Донны Саммер.
Аноним 14/10/20 Срд 17:15:05 #513 №1830350 
>>1828158
Кодировка cmd не совпадает с кодировкой выводимых сообщений от gcc. Что насчёт того, чтоб юзать Git Bash, Windows Terminal?
Аноним 14/10/20 Срд 17:18:43 #514 №1830353 
>>1829224
Обозначение указателя забыл поставить, дружок.
Да и проверку на NULL (nullptr) сделать было бы неплохо.
Аноним 14/10/20 Срд 19:03:21 #515 №1830464 
>>1830353
>Да и проверку на NULL (nullptr) сделать было бы неплохо.
Не нужно. Прекратите.
ПЕРЕКАТ Аноним OP 14/10/20 Срд 19:41:58 #516 №1830516 
>>1830513 (OP)
>>1830513 (OP)
>>1830513 (OP)
>>1830513 (OP)
>>1830513 (OP)
Аноним 14/10/20 Срд 20:13:28 #517 №1830541 
>>1830464
почему же?
Аноним 14/10/20 Срд 23:11:58 #518 №1830706 
>>1830516
Уууррраааа, їбати!!!
Ми це здобули!
Щиро дякую!
Аноним 15/10/20 Чтв 05:04:22 #519 №1830817 
>>1829821
Потому что ты нашел какой то дурацкий пример
Вот тут никаких setjmp https://github.com/md81544/libjpeg_cpp/blob/master/jpeg.cpp
Аноним 21/10/20 Срд 13:17:07 #520 №1836070 
>>1829808
В макросе же "!" (отрицание) стоит. Если результат от деления будет 0, то в конце выражение обратится в 1. По итогу произойдёт деление на единицу. Появляется вопрос. Когда же результат выражения будет обращаться в конце в нуль (должно произойти деление на 0 по сути)? - Правильно, когда будет ненулевой остаток (>= 1).
Мне понятен принцип работы 3-его действия, но не понятна цель (зачем так сделали). Неужели для запутывания читающих код?
Массивы же однотипные. Мы, конечно, можем записать разные типы через приведённые указатели (void *), но тип технически будет один и тот же (размеры элементов равны). Получается, что ненулевого остатка ожидать не стоит. Получается, что обсуждаемая часть кода бесполезна? Разве не так?
comments powered by Disqus

Отзывы и предложения