Сохранен 511
https://2ch.hk/pr/res/1329854.html
Архивач перешёл на постоянный домен ARHIVACH.NG. Независимо от дальнейшего развития событий, сайт всегда доступен через Tor.
Ваши пожертвования помогают нам оплачивать хостинг и домены.

C Programming Language #38 /clang/

 Аноним OP 19/01/19 Суб 04:26:17 #1 №1329854 
C Programming Language.png
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/ или 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 (драфт)
- man/Dash/zealdocs

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

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 2017 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://www.iso-9899.info/wiki/Books#Learning_C

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

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

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

- №35: https://arhivach.ng/thread/398891/
- №36: https://arhivach.ng/thread/407257/
- №37: https://arhivach.ng/thread/414099/
Аноним 19/01/19 Суб 04:45:26 #2 №1329857 
Первыйнах
Аноним 19/01/19 Суб 05:13:34 #3 №1329866 
>>1329857
Номер поста у тебя второй, маня.
Аноним 19/01/19 Суб 05:30:30 #4 №1329869 
>>1329866
Странно. Как ни зайду, тут все время какие-то срачи на пустом месте.
Аноним 19/01/19 Суб 06:07:25 #5 №1329873 
Есть какие нибудь мануалы о том как написать эмулятор процессора, ну там двоичный сумматор и все такое? Хочу лучше разобраться в работе железа, и при том по практиковать Си.
Аноним 19/01/19 Суб 06:33:27 #6 №1329874 
>>1329873
Сперва в железе разберись, Петцольда там почитай, для начала очень годно. Потом накидай сам проц в каком-нибудь логисиме, чтобы не париться. Потом переходи на Verilog, наркоман
Аноним 19/01/19 Суб 06:34:17 #7 №1329875 
>>1329873
> ну там двоичный сумматор
До такого эмуляция обычно не опускается - зачем складывать побитово, если можно сложить инструкцией add хоста и потом лишь посчитать флаги, если нужно.

С другой стороны, про работу железа есть Харрисы. Или лекции индусов.
Аноним 19/01/19 Суб 06:42:01 #8 №1329878 
>>1329874
Читать без практики мало полезно. Не влезает в голову, и не запоминается. Как я накидаю проц, если не знаю полное его устройство? У Петцольда по моему мнению слишком размыто, обрывками как то. Читал, но цельной картины не получил.

>>1329875
Ну это я для примера написал. Вообще хотелось бы понять, насколько отличаются от процессора регистровые виртуальные машины. Что лучше книга Харрисов или Таненбаума? Пробовал читать и то и другое, занудно очень, без практики не заходит. Вот бы была книга, где бы реализовывали регистровую ВМ, аналогичную современному процессору.
Аноним 19/01/19 Суб 06:42:12 #9 №1329879 
>>1329873
Алсо, кидал уже сюда статью: http://www.gtoal.com/sbt/ Это на случай, если надоест играться с медленным switch/case и захочется зделать, как у взрослых дядь.
Аноним 19/01/19 Суб 06:48:46 #10 №1329880 
>>1329875
>зачем складывать побитово, если можно сложить инструкцией add хоста и потом лишь посчитать флаги, если нужно
Для обучения. Чтобы понять как устроен процессор.
Аноним 19/01/19 Суб 06:50:24 #11 №1329882 
>>1329878
> Что лучше книга Харрисов или Таненбаума?
Харрисы гораздо, гораздо глубже. Если тебе для общего развития - лучше Таненбаум.

> Как я накидаю проц, если не знаю полное его устройство?
Нахуй тебе полное устройство? Это слишком низкий уровень для Си. Тебе правильно посоветовали не писать для этого по сути свой логисим, а взять готовый. А потом, когда наиграешься в гейты, уйти в какой-нибудь HDL.

А уровнем выше внутреннее устройство процессора перестает тебя волновать, ты просто придумываешь, что вот у тебя сколько-то регистров, такие-то инструкции, а вот так ты их кодируешь. Вот ты читаешь инструкцию по PC, разбираешь на опкод и операнды, вычисляешь ее и пишешь результаты. Это задача на вечер, а необходимые для ее выполнения знания приобретаются по ходу дела.

>>1329880
> Для обучения.
Так это... https://www.nand2tetris.org/
Аноним 19/01/19 Суб 06:51:26 #12 №1329883 
>>1329878
Запускаешь Logisim @ делоешь.
Сперва АЛУ, потом память (с ней можно не запариваться и взять готовую), связываешь, прикручиваешь управляющие сигналы, после чего долго ебешься с устройством управления и его табличками истинности но я слабак и сделал все на микрокоде.
Аноним 19/01/19 Суб 06:56:05 #13 №1329884 
>>1329875
Где сейчас можно скачать свежее русскоязычное издание Цифровая схемотехника и архитектура компьютера? Вроде на оф. сайте уже не скачаешь.
Аноним 19/01/19 Суб 07:02:26 #14 №1329886 
>>1329884
Не знаю. Не читаю переводы, если есть возможность найти оригинал. Кому нужна русифицированная терминология, если все статьи - на английском?
Аноним 19/01/19 Суб 15:37:58 #15 №1330109 
>>1329886
А зря. Русскоязычное комьюнити намного богаче, чем англоязычное.
Аноним 19/01/19 Суб 15:48:04 #16 №1330114 
>>1330109
+15
Аноним 19/01/19 Суб 16:28:15 #17 №1330137 
>>1330114
хрююююю
Аноним 19/01/19 Суб 16:35:25 #18 №1330140 
>>1329884
http://gen.lib.rus.ec/ и разные зеркала http://booksdescr.org/ https://b-ok.cc/ https://ambry.pw/ http://bookfi.net/
Но действительно, читай лучше оригиналы. Угрюмова можешь почитать, ничуть не хуже. Методички для студентов тоже неплохие попадаются.
Аноним 19/01/19 Суб 16:55:26 #19 №1330151 
>>1329886
Попробуй задуматься, где можно применить знания по цифровой схемотехнике? Или ты принципиальный тракторист?
Аноним 19/01/19 Суб 17:39:23 #20 №1330184 
Есть ли зло хуже, чем errno?
Аноним 19/01/19 Суб 17:49:45 #21 №1330188 
>>1330184
goto.
Аноним 19/01/19 Суб 18:07:09 #22 №1330203 
>>1330184
Python
Аноним 19/01/19 Суб 18:12:01 #23 №1330208 
error_reporting(0)
Аноним 19/01/19 Суб 19:15:28 #24 №1330281 
>>1329879
Ууххх блядь ничего не понял.
Можешь вкратце, чем заменяют CASE/SWITCH взрослые дяди?
Аноним 19/01/19 Суб 19:18:25 #25 №1330284 
чотко.jpg
>>1330137
>>1330114
Прекратили оба резко
Аноним 19/01/19 Суб 19:30:09 #26 №1330292 
Господа, подскажите если есть годную книгу по проганью в линухе
Аноним 19/01/19 Суб 19:43:38 #27 №1330299 
>>1329882
>Так это... https://www.nand2tetris.org/
Этот израильский акцент, лолблядь ностальжи
Аноним 19/01/19 Суб 19:43:50 #28 №1330300 
>>1330292
Так а труды Торвальдства тебе чем не угодили? Финский не знаешь?
Аноним 19/01/19 Суб 19:47:57 #29 №1330302 
>>1329879
То есть мы опускаем свитч-кейс и опускаемся сами на уровень ниже, заменяя свитч на кучу побитовых операций. Ну да, так быстрее, но несведущий в железе хуй поймет, как эти побитовые выполняются на процах с разной разрядностью.
Аноним 19/01/19 Суб 19:55:42 #30 №1330305 
>>1330300
>труды Торвальдства
Вообще не попадались, только высеры где он в очередной раз что-то поливает говном.
Аноним 19/01/19 Суб 20:18:52 #31 №1330322 
>>1330302
>заменяя свитч на кучу побитовых операций. >несведущий в железе хуй

Там же заменили switch/case на goto по массиву меток. Тогда у нас не будет множества сравнений и нужный адрес перехода будет получен сразу по опкоду.
Но эта штука ломает предиктор переходов, на малом числе инструкций должна проигрывать по скорости.
Аноним 19/01/19 Суб 20:47:18 #32 №1330357 
>>1330322
Я не знаю Си, просто предположил, что там делается исходя из своих знаний в джаве. Циклы кстати увидел, флаги увидел, но так и не допер, зачем все это надо. Сишку только начал учить.
Аноним 19/01/19 Суб 20:49:14 #33 №1330361 
>>1330305
Я имею ввиду само ядро. Открывай исходники да изучай. Или на чем ты программировать собрался?
Аноним 19/01/19 Суб 21:01:22 #34 №1330381 
>>1330357
Потом почитай что-нибудь по ассемблеру и Таненбаума по архитектуре.
Аноним 19/01/19 Суб 21:05:47 #35 №1330388 
>>1330322
>Там же заменили switch/case на goto по массиву меток.
Это как-то похоже на специализированный хеш?
Cразу отмечу, я нуб но ты уже сам догадался
Аноним 19/01/19 Суб 21:11:33 #36 №1330393 
>>1330388
Ага, ага, сам хотел привести аналогию с хешом. Switch раскроется в if-конструкции, а в методе выше будет jmp на адрес arr[index].
Аноним 19/01/19 Суб 21:12:50 #37 №1330396 
>>1330184
Есть ли альтернатива? inb4 исключения

>>1330208
Да!

>>1330281
> чем заменяют CASE/SWITCH взрослые дяди?
Ну, во-первых, бывает удобнее табличками, а во-вторых, я слегка неправильно выразился. Можно транслировать эмулируемый код в нативный, и выполнять уже его. switch, конечно, останется, но уже в трансляторе, зато однажды оттранслированный код уже можно выполнять быстро, безо всяких switch. Можно делать это статически и итеративно, как в статье, а можно динамически, как делает QEMU.
Аноним 19/01/19 Суб 21:18:30 #38 №1330400 
>>1330396
>эмулируемый код в нативный

Так это же JIT-компилятор, а там функциональный симулятор.

Аноним 19/01/19 Суб 21:20:02 #39 №1330403 
>>1330400
Там статический транслятор, а JIT - динамический.
Аноним 19/01/19 Суб 21:24:46 #40 №1330406 
>>1330396
>Есть ли альтернатива
Нормальные коды ошибки.
Аноним 19/01/19 Суб 21:51:58 #41 №1330421 
>>1330403
Окей, при беглом чтении увидел в нем обычный функциональный симулятор.
Аноним 19/01/19 Суб 23:00:07 #42 №1330458 
Мне нужно сделать сравнение if (massiv[x][y] == пробел || massiv[x][y] == отступ)
Как в C выглядит пробел и отступ? Ни \n, ни "\n" не проходят.
Аноним 19/01/19 Суб 23:12:24 #43 №1330468 
>>1330458
' ' для пробела и '\t' для табуляции.
Аноним 19/01/19 Суб 23:13:13 #44 №1330470 
>>1330458
" "
>отступ
чем отступ отличается от пробела?
Аноним 19/01/19 Суб 23:26:42 #45 №1330485 
>>1330458
Есть isspace, он проверяет на все виды отступов. То есть просто
if (isspace(arr[j]))
{
// ...
}
Аноним 20/01/19 Вск 00:19:45 #46 №1330515 
>>1330470
Отступ это на строку ниже. Нет?
Аноним 20/01/19 Вск 00:23:33 #47 №1330516 
>>1330485
Форма записи именно такая? Никаких == ?
Аноним 20/01/19 Вск 00:29:26 #48 №1330520 
>>1330516
Ты блять ебанутый штоле? Иди сука хотя бы одну книжку прочитай, урод блять. А то еще даже синтаксиса не знают, уже пидоры компиляторы качают. ХУЙ СОСИ БЛЯДИНА ЕБАНАЯ
Аноним 20/01/19 Вск 00:30:02 #49 №1330521 
>>1330520
Лол. Скрыл тебя.
Аноним 20/01/19 Вск 00:32:31 #50 №1330522 
>>1330521
Скрыл его?А я тебе напомню ХУЙ СОСИ БЛЯДИНА ЕБАНАЯ
Аноним 20/01/19 Вск 00:36:50 #51 №1330524 
>>1330522
А тебя вообще за шитпостинг зарепортил.
Аноним 20/01/19 Вск 03:30:42 #52 №1330546 
>>1330292
https://richard.esplins.org/static/downloads/linux_book.pdf
Все основные возможности упомянуты, но при этом не подавишься избытком инфы. Дальше четкое знание, куда копать по тому или иному вопросу, да и с одной этой книгой уже можно много что сделать.
Аноним 20/01/19 Вск 03:50:10 #53 №1330548 
>>1330546
А на Русском языке что-нибудь годное знаешь?
Аноним 20/01/19 Вск 04:05:53 #54 №1330549 
>>1330393
С какого перепугу switch/case раскроется в if/else?
Если сишник предпочел написать
| switch (suka) {
| case 1:
| deystvie1();
| break;
| case 2:
| deystvie2();
| break;
................
| default:
| idinahui();
| }
вместо нисколько не более длинного варианта
| if (suka == 1) {
| deystvie1();
| } else if (suka == 2) {
| deystvie2();
| }
................
| } else {
| idinahui();
| }
значит так надо, и должна использоваться jump table для выбора нужного адреса по индексу, а не N ненужных проверок на равенство с небольшим int. Следующая метка не задает логический конец куска кода под предыдущей, а просто показывает, откуда начать, и в случае, если break опущен, программа по вполне defined behaviour должна выполняться дальше, ведь так было задумано.
Аноним 20/01/19 Вск 04:14:23 #55 №1330550 
>>1330548
Не знаю...
Русской литаратуры практически не существует, стало быть, речь идет о переводах. Я перевод этой книжки никогда не искал, а перед гуглом все равны, так что пусть помогает без посредников)
Аноним 20/01/19 Вск 04:48:34 #56 №1330552 
изображение.png
изображение.png
>>1330550
>Русской литаратуры практически не существует
Аноним 20/01/19 Вск 05:04:28 #57 №1330554 
>>1330552
>сиддхартха
Аноним 20/01/19 Вск 05:35:23 #58 №1330556 
изображение.png
Откуда при файловом вводе вылезает символ ? Если я пытаюсь завершить вывод массива когда его элемент равен NULL, то он не выводится, но с NULL в условии записи символа в ячеййку массива всё равно попадает в нулевую ячейку.
Аноним 20/01/19 Вск 06:09:35 #59 №1330562 
>>1330556
У тебя файл выглядит так: 30\ndh fh\n
Когда ты в 12 строке читаешь k, у тебя каретка переходит на перый\n, и в name записывается "\ndh". Чтобы подобной хуйни не было, читай сначала построчно с помощью fgets, а потом уже парси отдельно строки.

Вообще, кто бы тебя чему не учил, используй эти советы:

1. Никогда не объявляй кучу переменных построчно
char name[30];
char b = '.';
2. Всегда инициализируй переменные, даже если это не несет смысла.
int k = 0;
3. Объявляй переменные как можно ближе к месту использования и как можно быстрее их пришибай
FILE* vvod;
fopen_s(...);
int k = 0;
fscanf(vvod, "%i", &k);
4. По возможности объявляй перменные прямо в цикле for
for (int yoba = 0 ...
5. Думай о переполнении буфера. Из-за него цикл while тебе на самом деле не очень нужен
int i;
for (i = 0; i < 30; ++i) {
int b;
fscanf(vvod, "%c", &b);
if (b == ' ') { break; }
if (b != '\n') { name = b; }
}
for (int i1 = 0; i1 < i; ++i1) {
//...
}
5. Всегда обрамляй if, for и прочее в фигурные скобки, даже если там одна строка.

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

Аноним 20/01/19 Вск 06:14:48 #60 №1330563 
>>1330562
Я всегда обрамлял if в фигурные скобки, если там больше одного двоеточия, но в этот раз что-то забыл. Я хз как это давало мне ту закорючку, но именно фигурные скобки решили проблему. Спасибо, что напомнил.
Аноним 20/01/19 Вск 06:29:19 #61 №1330565 
А можно ли как-то при файловом вводе при выполнении определённого условия переместить курсор программы в начало следующей строки, если на текущей ещё что-то написано?
Аноним 20/01/19 Вск 08:22:17 #62 №1330585 
>>1330563
простые expression можно в один statement поместить
if (b != '\n') name = b, ++i, ++a;
и никакие { } не понадобятся
Аноним 20/01/19 Вск 08:23:29 #63 №1330586 
>>1330565
ну, до '\n' и выбираешь
while (fgetc (file) != '\n');
Аноним 20/01/19 Вск 08:29:03 #64 №1330587 
>>1330585
Ой мудак, ой мудак.
Аноним 20/01/19 Вск 08:32:36 #65 №1330589 
>>1330587
почему мудак сразу?) между прочим, это удобно в макросах, когда надо сделать несколько последовательных действий, и в конце еще что-то "вернуть"
Аноним 20/01/19 Вск 08:41:27 #66 №1330593 
>>1330589
>это удобно в макросах
Ведь сам же это придумал
Аноним 20/01/19 Вск 11:38:31 #67 №1330680 
>>1330562
2 чая анончику!
Аноним 20/01/19 Вск 11:50:36 #68 №1330694 
>>1330680
Что, тоже ебёшься с файловым вводом?
Аноним 20/01/19 Вск 13:56:01 #69 №1330782 
>>1330589
Это прекрасно делается с помощью do {} while (0), и не надо придумывать своих костылей.
Аноним 20/01/19 Вск 14:08:44 #70 №1330788 
>>1330549
>С какого перепугу switch/case раскроется в if/else?
>значит так надо, и должна использоваться jump table для выбора нужного адреса по индексу, а не N ненужных проверок на равенство с небольшим int
Это уже компилятор решает, в данном случае тот же gcc таблицу делать не будет из-за явной потери скорости на inderect-переходах.

>Следующая метка не задает логический конец куска кода под предыдущей, а просто показывает, откуда начать, и в случае, если break опущен, программа по вполне defined behaviour должна выполняться дальше, ведь так было задумано.
И без таблицы переходов абсолютно такое же поведение, он сначала ищет нужную метку по значению, дальше никаких проверок нет.
Аноним 20/01/19 Вск 16:10:54 #71 №1330864 
>>1330788
мои пардоны. Опять меня студента занесло. Не подумал про адекватную реализацию цепочки else-if, когда все тесты вначале.
Аноним 20/01/19 Вск 16:49:46 #72 №1330882 
>>1329854 (OP)
Нахуй он нужон в 2019? Микроконтроллер на бетономешалке погромировать или нахуя?
Аноним 20/01/19 Вск 18:43:09 #73 №1330942 
>>1330882
Нужен для ядра твоей Windows/Linux/MacOS, системного софта, драйверов, интерпретаторов и VM, СУБД, встроенных систем и различных задач, требующих от кода максимальной производительности.
Аноним 20/01/19 Вск 18:51:17 #74 №1330956 
>>1330942
Агась. Понятно. Этим занимается ничтожный процент умеющих срать не снимая свой прокуренный свитер, с бородой до хуя и очками толщиной с увеличительное стекло. Остальным 99% бетономешалка?
Аноним 20/01/19 Вск 18:55:23 #75 №1330961 
>>1330956
>Этим занимается ничтожный процент умеющих срать не снимая свой прокуренный свитер, с бородой до хуя и очками толщиной с увеличительное стекло
Да
>Остальным 99%
На них похуй
Аноним 20/01/19 Вск 18:59:59 #76 №1330967 
>>1330956
>Этим занимается ничтожный процент умеющих срать не снимая свой прокуренный свитер, с бородой до хуя и очками толщиной с увеличительное стекло.
Не всё так плохо, но в целом - близко.
Аноним 20/01/19 Вск 19:07:13 #77 №1330971 
>>1330961
Значитца или элитка или полное дно. Нормально. Борода и свитер у меня уже есть, дело осталось за малым. Программировать программирование не имеет смысла, какую литературу читать для специфики, чтобы избежать бетономешалки обосцатой.
Аноним 20/01/19 Вск 19:10:21 #78 №1330974 
>>1330971
>Программировать программирование не имеет смысла
Ну ты еще не придумал ебописечку которую нужно оптимизировать и переписывать ни си
Аноним 20/01/19 Вск 19:15:14 #79 №1330978 
>>1330974
Это не так работает. Учишься годами никому ненужной хуйне, потом торгуешь попкой на Толоке. Если не сложно покажи вакансии для тех кто смог, чтобы по требованиям было понято хуле им надо кроме свитера и бороды.
Аноним 20/01/19 Вск 19:20:34 #80 №1330984 
>>1330978
>Это не так работает
Так
>Учишься годами никому ненужной хуйне, потом торгуешь попкой на Толоке.
Нет
>вакансии
Пиздуй на ХХ
Аноним 20/01/19 Вск 19:25:18 #81 №1330985 
>>1330984
Чот долго отвечал, я уж думал путь вам открыл и вы все на толоку сбежали. Ну ладно. Сейчас смотрю вакансии в Миллионной мухосране. 70% 1С погроммист, остальные 30% кресты в сочетании с С#, питончиком. По СИ ни одной. Судя по рынку труда рисковые вы ребята..
Аноним 20/01/19 Вск 19:27:51 #82 №1330987 
>>1330882
Си вне времени. Ты сдохнешь через несколько десятков лет, а си будет жить. Он жил в 20 веке, будет жить в 21 веке. Си вечен.
Аноним 20/01/19 Вск 19:30:51 #83 №1330989 
>>1330967
>>1330961
>>1330956
Мне кстати очень приятен внешне этот образ. Я даже иногда видеотрансляции смотрю, как такие вот прогмики пишут что-то сложное на сиплюсплюс или чистом си.
Может даже сделаю этот образ своим личным стилем.
Аноним 20/01/19 Вск 19:37:17 #84 №1330992 
>>1330985
А нахера тебе вакансии? На си пишут для себя.
Аноним 20/01/19 Вск 19:37:38 #85 №1330993 
>>1330985
>Судя по рынку
Лол, у меня джва стартапа которые нужно оптимизировать, хочешь работать на дядю, тогда да, вкатывайся в 1С
Аноним 20/01/19 Вск 19:38:30 #86 №1330994 
>>1330989
>видеотрансляции смотрю, как такие вот прогмики
Давай ссылу, жутко интересно
Аноним 20/01/19 Вск 19:42:38 #87 №1330995 
>>1330994
https://www.youtube.com/channel/UCUhQNuTAQ933YBTy6awC0Pw/featured

Вот тут частенько бывает. Владелец канала типикал битард.
Аноним 20/01/19 Вск 19:43:40 #88 №1330997 
>>1330993
Стой. Тебя-то я и искал. Извиняюсь за много постов ребята, но в таком деле не помешает определиться стоит ли ввязываться, не на пять минут развлечение. А что ты продаёшь? Подучу там инкремент, указатель, хуё-моё, что знать надо, подетальнее бы.
>>1330992
>А нахера тебе вакансии?
Представляю собой анахронизм в виде устаревшего гетеросексуального меньшинства. Не хотелось бы торговать попкой оставшись без денег с навыком 999lvl по погромированию калькулятора.
Аноним 20/01/19 Вск 19:48:18 #89 №1331000 
>>1330997
>Представляю собой анахронизм в виде устаревшего гетеросексуального меньшинства.
Надеюсь, это шутка. То, что тебе борда мозги промыла по поводу того, что все геи и битарды, это не отменяет того, что в реальной жизни ничего не меняется.
Аноним 20/01/19 Вск 19:49:30 #90 №1331001 
>>1330997
>А что ты продаёшь
Поиск и NLP, там нужны скоростя, так что без вариантов как и в OCR, попробуй в риалтайме 1920x1080 фрейм обработать.
Аноним 20/01/19 Вск 19:50:57 #91 №1331002 
>>1330995
И че, там скрины пидерской студии, где ебла в свитерах?
Аноним 20/01/19 Вск 19:55:29 #92 №1331008 
>>1331002
Нет, просто чувак сидит и с другими по скайпу код пишет.
Аноним 20/01/19 Вск 19:59:40 #93 №1331010 
>>1331008
>и с другими по скайпу код пишет.
Пиздос, ну и на хуй он нужен, я же типаж хотел посмотреть, а не говнокод
Аноним 20/01/19 Вск 20:02:10 #94 №1331012 
>>1331010
А вот типаж:

https://www.youtube.com/watch?v=yAyjxNVhKkU
Аноним 20/01/19 Вск 20:04:55 #95 №1331015 
>>1331012
Типаж смузихлеба с выбритой бородкой, у меня грязная и дырявая майка, волосы с хвостиком завязанные резинкой для денег, самостоятельная борода и пивной живот.
Аноним 20/01/19 Вск 20:05:20 #96 №1331016 
>>1331001
Спасибо. Кек. Вы мне нравитесь, вакансий нет, какие-то слова по запросам на которые гугл находит поехавших психологов. Заманчиво, но надо подумать.
Аноним 20/01/19 Вск 20:06:38 #97 №1331018 
>>1331016
>Заманчиво, но надо подумать.
А что тут думать, иди на хуй, ты нам не нужен.
Аноним 20/01/19 Вск 20:15:17 #98 №1331021 
>>1331015
>у меня грязная и дырявая майка, волосы с хвостиком завязанные резинкой для денег, самостоятельная борода и пивной живот.

Покажешь примерный типаж на фотке , или скинь свою?
Аноним 20/01/19 Вск 20:25:56 #99 №1331040 
141865695206.jpg
>>1331021
>Покажешь примерный типаж
Аноним 20/01/19 Вск 20:29:16 #100 №1331047 
>>1331040
Так это тоже сейчас модно, так что ты не далеко ушел.
Аноним 20/01/19 Вск 20:31:28 #101 №1331052 
>>1331047
Мне нравится такая мода, раньше все спрашивали почему оброс как макака, а сейчас вот модно.
Аноним 20/01/19 Вск 20:34:15 #102 №1331059 
>>1331052
А я в 2008-2012 вообще ходил с неким подобием каре, как сейчас ходят какие-то школьники. Но я специально так делал, потому что забивал на внешку, чтобы быть не как все, что собственно делаю по сей день.
Аноним 20/01/19 Вск 20:37:18 #103 №1331063 
>>1331059
>неким подобием каре
Тоже тема, ну это все равно нужно стричься, а я это дело не люблю
Аноним 20/01/19 Вск 22:50:12 #104 №1331259 
Тупой вопрос, конечно, но никак не могу найти пример интеграции flex и bison в программу. Все примеры как-то сами по себе. Хочу, например, считать конфиг файл, что-то с данными сделать и записать обратно.
Аноним 20/01/19 Вск 23:46:08 #105 №1331294 
>>1331259
Нахрена? Есть же стандартные средства.
Аноним 21/01/19 Пнд 00:16:00 #106 №1331312 
Где взять таблицу прерываний для i686?
Аноним 21/01/19 Пнд 00:36:46 #107 №1331320 
>>1331312
Каких именно? Как настроишь APIC, так и будет. А программные так и подавно под твоим контролем.
Аноним 21/01/19 Пнд 01:19:07 #108 №1331328 
А вы знали, что в асме можно метки на русском писать?
Аноним 21/01/19 Пнд 02:06:04 #109 №1331336 
>>1331328
Зависит от ассемблера. В Си тоже можно имена переменных на русском писать, и это тоже зависит от компилятора (в шланге все ок, а в гцц можно только кодировать через \u): https://wandbox.org/permlink/70CQj8G6CNhTpJio
Аноним 21/01/19 Пнд 06:36:04 #110 №1331386 
изображение.png
>>1331294
>Нахрена?
Для общего развития и упрощения
>Есть же стандартные средства
В студию?

Писать ручками разбор пикрелейтеда желания нет Не осилю, вернее
Аноним 21/01/19 Пнд 06:48:11 #111 №1331388 
>>1331259
Я как-то делал такое, но в C# проекте. Все упирается в систему сборки, которой ты пользуешься. Если простым make, то вообще элементарно.
Аноним 21/01/19 Пнд 12:41:11 #112 №1331582 
>>1331388
Но вообще это неправильно. Надо разобраться зачем вообще эта интеграция.

Если этот код - часть какой-то сторонней библиотеки или фреймворка, его править нельзя.

Если этот код часть flex/bison - тоже нельзя.

Ты должен умело изменять поведение программы, а не лепить зависимости, из-за которых потом нельзя перенести проект.
Аноним 21/01/19 Пнд 13:17:57 #113 №1331628 
Что означает строчка

printf("Your number squared is: %d.", mess.imess.i);

>mess.i
mess.i
Типо умножить обьект структуры (i) на саму себя ?
Аноним 21/01/19 Пнд 13:19:05 #114 №1331631 
>>1331628
там звездочка после первой i
Аноним 21/01/19 Пнд 13:30:01 #115 №1331652 
>>1331631
Это не звездочка, а указатель, ХУЕ-МОЕ!
Аноним 21/01/19 Пнд 16:13:22 #116 №1331783 
>>1331652
в таком случае, что это значит?
Между двумя mess.i и mess.i
Аноним 21/01/19 Пнд 16:21:05 #117 №1331790 
>>1331652
Где ты там указатель нашел, наркоман?
>>1331783
Значение в квадрат возводит.
Аноним 21/01/19 Пнд 16:35:10 #118 №1331801 
>>1330882
Я, например, учусь программировать, хочу вкатиться.
А ты зачем здесь?
Аноним 21/01/19 Пнд 16:36:53 #119 №1331802 
>>1330956
> Этим занимается ничтожный процент умеющих срать не снимая свой прокуренный свитер
Умею срать не снимая пуховика, суров.
Аноним 21/01/19 Пнд 17:12:33 #120 №1331834 
>>1331790
Благодарствую
Аноним 21/01/19 Пнд 17:14:17 #121 №1331836 
>>1330956
Все верно, лучше иди вебом займись))ведь это щас модно
Аноним 21/01/19 Пнд 17:21:00 #122 №1331848 
>>1330942
>требующих от кода максимальной производительности.
А почему в геймдеве с++ это стандарт?
На нем легче проектировать? Или в каких-то задачах с++ производительнее?
Я понимаю что это уже сто раз схавано и высрано, но реально не найти нормального объяснения.
Аноним 21/01/19 Пнд 18:21:21 #123 №1331914 
>>1331582
wut
flex/bison - это программы которые генерят код парсинга, не библиотеки. Тебе нужно скомпилировать этот сгенерированный код как часть твоей программы. Соответсвенно нужно настроить сборку чтобы она запускала flex/bison, а потом компилировала сгенерированный код
Аноним 21/01/19 Пнд 18:22:35 #124 №1331917 
>>1331848
> легче
Аноним 21/01/19 Пнд 19:59:28 #125 №1332007 
Как сделать так, чтобы, например, память выделялась для количества строк или ячеек массива, которое задаётся заранее и может быть меньше, чем объявлено константой в самом коде? Например, я не могу сначала сделать так:
int n;
scanf ("%i", &n);
int massiv[n];
Аноним 21/01/19 Пнд 20:21:47 #126 №1332017 
Аноны, посоветуйте, что можно написать такого на Сишке?
Желательно как-то связанное с сетями и безопасностью. Может, малварь какую? Есть какое чтиво по этой теме?
Аноним 21/01/19 Пнд 20:28:54 #127 №1332022 
>>1332007
malloc
Аноним 21/01/19 Пнд 20:34:48 #128 №1332025 
>>1332007
А в GCC/MinGW можешь.
Аноним 21/01/19 Пнд 20:36:10 #129 №1332026 
>>1331914
Да я уже вроде разобрался. Теперь осталось придумать как, например, оттуда заполнять какую-нибудь структуру из моей части программы.
Автор оригинального вопроса
Аноним 21/01/19 Пнд 21:47:42 #130 №1332069 
>>1331917
Это ирония или что?
Аноним 21/01/19 Пнд 22:08:56 #131 №1332088 
Насколько я поехавший, если собираюсь пилить оконное приложение на WinAPI? Какие подводные?
Аноним 21/01/19 Пнд 22:16:13 #132 №1332091 
>>1332069
Движки очень хорошо пишутся с ООП
Аноним 21/01/19 Пнд 22:24:59 #133 №1332094 
>>1332091
Без ООП еще лучше.
Аноним 21/01/19 Пнд 22:49:45 #134 №1332109 
>>1332088
Непереносимо. В остальном ок. Присмотрись к dialog manager, ему можно скормить шаблон окна из ресурсов, заставив делать всю эту кучу CreateWindowEx с проверкой ошибок вместо тебя. Даже если у тебя не диалог на самом деле.

>>1332094
Написав в тысячный раз "конструктор" для структуры, ты передумаешь. И много ли ты знаешь сколько-нибудь современных движков на Си? Незаконченный и кривой Corange, да движки стратежек, где все гвоздями прибито к конкретной игре.
Аноним 21/01/19 Пнд 23:05:36 #135 №1332126 
>>1332109
Зачем мне конструктор. При чем тут Си? Если у тебя движок ассоциируется с ООП, то мне тебя жаль. Культ-карго ООП.
Аноним 21/01/19 Пнд 23:36:14 #136 №1332159 
>>1332126
А ты что-то подобное хоть раз писал? Обычно такое никто не говорит.
Аноним 22/01/19 Втр 00:03:30 #137 №1332181 
>>1332159
Что писал? Что обычно не говорят? Хочешь сказать нельзя написать движок на Си или на Хаскелле, потому что в них якобы нет ООП?
Аноним 22/01/19 Втр 00:15:28 #138 №1332189 
>>1332181
Можно хоть на Брейнфаке написать, он Тьюринг-полный.
Вопрос в том, что если сама задача распологает к использованию парадигмы ООП, почему надо избегать подходящего инструмента?
Только потому, что на Си тоже можно?
У меня создается впечатление, что ты залетный петушок, который учебник еще не закончил читать.
Аноним 22/01/19 Втр 00:16:25 #139 №1332190 
Блядь, промахнулся
>>1332126 -> >>1332189

Аноним 22/01/19 Втр 00:25:41 #140 №1332196 
>>1332189
Что там конкретно располагает? И что ты понимаешь под парадигмой ООП? Сдается мне, что ты очередной онально-ориентированный-питух.
Аноним 22/01/19 Втр 00:30:11 #141 №1332199 
>>1332196
>ты понимаешь под парадигмой ООП?
Больной? То же самое, что и другие, тебе что, определение сюда скопипастить? Гугл в помощь.
>ты очередной онально-ориентированный-питух
Как что-то плохое
Аноним 22/01/19 Втр 00:36:46 #142 №1332206 
>>1332199
Знаешь только на уровне определений. Все понятно. Значит я был прав. Интуиция не подвела.
Аноним 22/01/19 Втр 01:41:53 #143 №1332225 
>>1332181
>Что писал?
Какие-нибудь игровые движки или что-то схожее (на C/C++).

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

>Хочешь сказать нельзя написать движок на Си или на Хаскелле, потому что в них якобы нет ООП?
Это только ты такую чушь можешь выдать.

Представь себе простую ситуацию, тебе нужно создать некоторый новый "тип" объектов в игре. В плюсах ты просто создаешь нужный класс-наследник, модифицируешь несколько методов и voilà. В Си же ты заметишь, что код нечитаем и представляет из себя кривой копипаст, чуть ли не экспоненциально разрастающийся. Си не очень подходит для написания игровых движков.

>>1332189
>У меня создается впечатление, что ты залетный петушок, который учебник еще не закончил читать.
Аноним 22/01/19 Втр 01:45:41 #144 №1332228 
>>1332225
Цитирую анона:
>>1332189
Аноним 22/01/19 Втр 01:49:34 #145 №1332230 
>>1332225
> модифицируешь несколько методов
А в си у тебя инкапсуляция, ты делаешь пару оберток над методами, и норм, никакого копипаста. Вот с виртуальными функциями (или каким-то иным способом взаимодействия объектов) слегка сложнее, но тоже решаемо. И еще писать игровые движки сильно мешает необходимость изобретать даже сраный динамический массив или тащить какую-то левую либу для этого, тогда как в крестах все из коробки, да еще и с дженериками.
Аноним 22/01/19 Втр 01:50:41 #146 №1332231 
>>1332225
Ты не понял, о чем он говорит, он говорит не о том, что писать на плюсах используя ООП менее удобно, чем на Си.
Он пишет про то, что можно написать движок не используя ООП, и все твои аргументы про объекты вообще смысла не имеют, смекаешь?
Аноним 22/01/19 Втр 01:52:51 #147 №1332232 
>>1332091
На самом деле нет. В движках очень много попарных взаимодействий, а классическое ООП очень хуево диспетчеризует их.
А конструктор структуры это не признак ООП, такое и в хаскелле есть.
Аноним 22/01/19 Втр 01:54:52 #148 №1332235 
>>1332231
> написать движок не используя ООП
https://github.com/angelXwind/OpenSyobonAction/blob/master/main.cpp получится как-то так.
Аноним 22/01/19 Втр 02:01:05 #149 №1332237 
>>1332206
А моя интуиция рисует мне -максималиста, который о других анонах строит необоснованные выводы и что-то сам себе наговаривает, ни разу не выйдя в объеме своего кода на Си за 500 строк.
Аноним 22/01/19 Втр 02:05:42 #150 №1332241 
>>1332235
Ты точно писал что-то действительно сложное?
Просто ты ты в противоположность ООП скинул какой-то странный нечитаемый код.
Или по-твоему если не использовать ООП, то тогда писать код можно только так?
Аноним 22/01/19 Втр 02:07:52 #151 №1332242 
>>1332230
Да, почти все можно. Но кроме как эксперимента ради в больших проектах так делать не будут.
Аноним 22/01/19 Втр 02:12:46 #152 №1332244 
>>1332241
Приведи какой-то другой пример. Если в твоем примере будет не говнокод, там будут структуры и функции для работы с ними. Это ничем не отличается от объектов и методов, кроме названия, особенно если говорить об изначальном понятии ООП.
Аноним 22/01/19 Втр 02:15:31 #153 №1332246 
>>1332225
>Представь себе простую ситуацию, тебе нужно создать некоторый новый "тип" объектов в игре. В плюсах ты просто создаешь нужный класс-наследник, модифицируешь несколько методов и voilà.
Нит.

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

collide(ship, asteroid);
collide(asteroid, ship);
collide(asteroid, asteroid);

с разными последствиями.

Но в С++ диспетчеризация основана на VMT и класс, по которому ты диспетчеризуешь, только один. Поэтому если ты захочешь написать класс Yoba, который будет collide, модификацией нескольких методов ты не обойдешься. Проще всего будет написать класс Pawn, из которого как из кубика в конструкторе можно будет создать новый тип, а в его методе collide уже разбираться что там да как с помощью банального свитча

void Pawn::collide(Pawn another_pawn) {
switch (another_pawn.type) {
.......
}
}

корабль - это Pawn, у которого такая-то текстура, при взрыве хуячится Pawn.setAnimation(animation), ну и куча подобного. Никакого наследования не нужно, только композиция таких хуевин. И современные движки так и работают.
Аноним 22/01/19 Втр 02:17:18 #154 №1332247 
>>1332231
>Ты не понял, о чем он говорит
>Он пишет про то, что можно написать движок не используя ООП...
Даже если так, то я на это прямо ответил. А это не так, смотри:

>>1332094
>Без ООП еще лучше.

>>1332126
>Зачем мне конструктор. При чем тут Си? Если у тебя движок ассоциируется с ООП, то мне тебя жаль. Культ-карго ООП.

Да, у меня игровые движки ассоциируются с ООП. Как и у тех, кто их пишет. По крайней мере даже самый плохой код движка, который пишут на Си, будет к этой концепции стремиться.
Аноним 22/01/19 Втр 02:28:25 #155 №1332252 
>>1332247
>Да, у меня игровые движки ассоциируются с ООП. Как и у тех, кто их пишет.
Это не так. Движки нужно писать компонентно-ориентированными. То, что с точки зрения ООП является лютым зашкваром.
Выше я описал концепцию кратко: игровые сущности не являются инстансами класса с наследованием, они являются одним универсальным классом, в который как кубики вставляются различного рода модификаторы.
А далее случается такая хуйня, что ООП-ньюфаги видят слово класс и говорят, мол "ну это же тоже ООП", но нет, ООП, несмотря на свое желеобразное определение, компонентый подход не является.
Unity сильно компонентен, Unreal стар и появился еще во времена доминирования ООП, но дрейфует в сторону компонентов, писать новый движок с ООП нет никакого смысла.

https://gamedevelopment.tutsplus.com/articles/unity-now-youre-thinking-with-components--gamedev-12492
https://docs.unrealengine.com/en-us/Programming/UnrealArchitecture/Actors/Components
https://www.oreilly.com/library/view/programming-net-components/0596102070/ch01s02.html
https://forum.unity.com/threads/oop-vs-component-based-architectural-design.216532/
Аноним 22/01/19 Втр 02:33:13 #156 №1332254 
>>1332252
Это просто новый баззворд, который почему-то противопоставляют ООП. А на самом деле: объекты есть? - есть, сообщениями обмениваются (методы вызывают)? - да. Все, ООП. А дальше ты уже можешь различать способы, как наиболее удобно этого добиться.
Аноним 22/01/19 Втр 02:37:58 #157 №1332256 
>>1332254
>Это просто новый баззворд
Я тебя inb4 разъебал: 'А далее случается такая хуйня, что ООП-ньюфаги видят слово класс и говорят, мол "ну это же тоже ООП", но нет, ООП, несмотря на свое желеобразное определение, компонентый подход не является.'
Этот новый баззворд старше тебя.
>А на самом деле: объекты есть? - есть, сообщениями обмениваются (методы вызывают)? - да
Оу, ну тогда хаскель - ооп язык. И машинные коды, хули.
Аноним 22/01/19 Втр 02:39:27 #158 №1332257 
>>1332252
Компоненты это скорее архитектурный паттерн.
Если ты не маньяк, то в любом случае даже в компонетном движке у тебя будет множество классов для самих компонентов, векторов, матриц, строк, коллекций, геймплейныйх объектов и т.п.
даже если ты напишешь все на С, то все равно придешь к ООП просто сделаному через жопу
Аноним 22/01/19 Втр 02:40:20 #159 №1332258 
>>1332256
> хаскель - ооп язык. И машинные коды, хули
Насчет хаскелей не скажу, но "ООП-язык" - это, видимо, что-то, содержащее сахарок для реализации какого-то сорта ООП. В Си сахарка нет, в машинных кодах тем более. Но писать объектно-ориентированный код на этих языках можно.
Аноним 22/01/19 Втр 02:42:53 #160 №1332259 
>>1332257
>у тебя будет множество классов
Аналогично: 'ООП-ньюфаги видят слово класс и говорят, мол "ну это же тоже ООП"'.
А если я
#define class struct
напишу у меня ООП перестанет быть ООП?
Аноним 22/01/19 Втр 02:56:14 #161 №1332262 
>>1332258
>В Си сахарка нет, в машинных кодах тем более. Но писать объектно-ориентированный код на этих языках можно.
Писать объектно-ориентированный код можно, и примером такого кода является оконная система WinAPI - при чем там сообщения это не просто какие-то функции, это действительно сообщения а-ля смоллток, которые ты можешь послать кому угодно, это наследование и прочая хуйня. И это ООП.

Но объектно ориентированный код - это не все, что содержит структуры с конструкторами и деструкторами, как думают ньюфаги. Основной признак ООП - это иерархия наследования реализации. Если у тебя нет наследования, у тебя нет ООП. Например, STL в С++ - не ООП, и автор STL ООП не любит. std::vector не наследник std::abstractcontainer. И в игровых движках ОО-подход не используется. Какие-то фичи ОО-языков могут использоваться для каких-то своих целей или эмуляции других парадигм, но с мыслью об ООП никто не программирует.
Аноним 22/01/19 Втр 03:06:11 #162 №1332265 
>>1332262
> Если у тебя нет наследования, у тебя нет ООП
Ты скозал? Это всего лишь еще одна деталь реализации.
Аноним 22/01/19 Втр 03:07:12 #163 №1332266 
>>1332252
>когда не понимаешь разницу между ООП и наследованием классов
Аноним 22/01/19 Втр 03:15:04 #164 №1332268 
>>1332265
Нет, это та вещь, которая отличает ООП от любой другой парадигмы. Определения они вообще про это - как отличить одну парадигму от другой.
То, что ты вокруг себя нихуя, кроме ООП не видишь, это проблемы твоей малообразованности, а не моих попыток тебя образовать.
Аноним 22/01/19 Втр 03:15:53 #165 №1332269 
>>1332266
А вот и Даннинг-Крюгер подоспел
Аноним 22/01/19 Втр 04:40:16 #166 №1332277 
Ребят, но я всего лишь спросил почему в геймдеве доминирует анальное с++..
Ответа я так и не понял. На нем легче? Не легче? Тогда почему все практически на нем?
Аноним 22/01/19 Втр 04:59:12 #167 №1332281 
>>1332277
C++ практически единственный язык, который предлагает тебе т. н. zero cost abstractions - то есть ты используешь высокоуровневые абстракции, а компилируется это в эффективный машинный код, как если бы ты писал на С.
Сишка таким языком не является, в ней высокоуровневых абстракций просто нет.
И, что важнее, он в такой роли уже практически 30 лет. То есть если сейчас появится язык, который лучше С++ в этой области, 30 лет доминирования хуй обойдешь.
Аноним 22/01/19 Втр 05:03:05 #168 №1332284 
>>1332259
Нет, но теперь я знаю, что ты идиот.
Аноним 22/01/19 Втр 05:05:09 #169 №1332286 
>>1332262
>Основной признак ООП - это иерархия наследования реализации.
Это всего лишь твоя охуительная теория.
Аноним 22/01/19 Втр 05:05:16 #170 №1332287 
>>1332277
Изначально геймдев на крестах из-за байтоёбства, потом сам язык стал стандартом отрасли, это как у физиков фортран, и ссать они на всех хотели, особенно зарубежные, там написано уже почти всё и заебёшься заново пердолить.
Аноним 22/01/19 Втр 05:12:38 #171 №1332290 
>>1332287
Геймдев вообще был на С где-то до конца 90х.
Аноним 22/01/19 Втр 05:14:00 #172 №1332291 DELETED
>>1332284
Аргументация будет или продолжать тебе хуем по губам водить?
>>1332286
>Это всего лишь твоя охуительная теория.
Нет, это общепринятное в индустрии определение. Потому что твое определение, которое используют люди недалекие, сводится к тому, что ООП - это все, что угодно. Это хуевое определение.
Аноним 22/01/19 Втр 05:18:47 #173 №1332292 DELETED
>>1332291
Ребенок, угомонись.
Аноним 22/01/19 Втр 05:19:41 #174 №1332293 
> А на самом деле: объекты есть? - есть, сообщениями обмениваются (методы вызывают)? - да. Все, ООП.
o.m(p) = m(o, p)
Аноним 22/01/19 Втр 05:29:19 #175 №1332294 DELETED
>>1332292
Аргументации нет, продолжаю водить хуем по губам.
Аноним 22/01/19 Втр 06:02:24 #176 №1332295 
>>1332293
Все так.
Аноним 22/01/19 Втр 07:08:57 #177 №1332301 
>>1332017
Сервер напиши.
Аноним 22/01/19 Втр 07:20:38 #178 №1332305 
>>1332225
Если ты не умеешь писать без классов, то не надо утверждать, что никто не умеет.
Аноним 22/01/19 Втр 07:23:23 #179 №1332306 
Ребята, хватит спамить. Этот шизик вчера в php треде срал, теперь сюда пришел срать. Не отвечайте тому, кто пишет что-то провокационное про ООП.
Аноним 22/01/19 Втр 07:24:14 #180 №1332308 
>>1332247
>Да, у меня игровые движки ассоциируются с ООП.
Секта свидетелей ООП. Еще до плюсов писали сложные проекты. И тут ты такой выполз, и кричишь что без ООП код не читаемый. Не обобщай, просто ты не умеешь писать.
Аноним 22/01/19 Втр 07:29:08 #181 №1332310 
>>1332262
Слышь, хватит пургу нести. В Си функции значит не сообщения, а твои такие же функции в классе уже значит сообщения? Придумали ерундуу, те же самые функции пишут, а кричат типа это сообщения.
Аноним 22/01/19 Втр 07:30:11 #182 №1332311 
>>1332262
Если наследования нет, значит не ООП? Тяжелый случай. Очередной адепт секты свидетелей ООП.
Аноним 22/01/19 Втр 07:32:45 #183 №1332313 
>>1332268
Вот ты и попался. Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП? Хорошо, а ты в курсе, что в Хаскелле тоже есть наследование?
Аноним 22/01/19 Втр 07:33:52 #184 №1332314 
>>1332281
>Сишка таким языком не является, в ней высокоуровневых абстракций просто нет.
ШТА? Это каких нет? Ты вообще знаешь что такое абстракция? Иди СИКП читай, неуч.
Аноним 22/01/19 Втр 07:38:04 #185 №1332315 
>>1332281
>И, что важнее, он в такой роли уже практически 30 лет. То есть если сейчас появится язык, который лучше С++ в этой области, 30 лет доминирования хуй обойдешь.
Ладно ты ООП сектант, но оказывается еще и упоротый по крестам. Типичный пример эффекта Даннинга-Крюгера. Не видел ни одного языка кроме крестов, и заикаешься о том, что лучше, где абстракции мощнее.

Все, тебя уже не исправить. Такое бывает когда начал с C++ и дальше не изучил ни одного языка. Мозг искривляется в сторону крестов, и больше не способен адекватно мыслить.
Аноним 22/01/19 Втр 07:40:26 #186 №1332316 
>>1332306
Испугался да, крыть то нечем. Сами своей терминологии даже не знаете. Дошколята.
Аноним 22/01/19 Втр 07:54:25 #187 №1332322 
Согласен, ооп говно.
Аноним 22/01/19 Втр 07:59:16 #188 №1332325 
bloomfilter.png
Спасибо тому кто в прошлом треде тыкнул меня в Bloom Filter >>1326938 , благодаря этому решил свою задачу гораздо проще чем собирался.
Также обнаружил для себя существование таких алгоритмов как HyperLogLog и MinHash, но пока моих математических знаний не достаточно для того чтоб нормально понять как этим пользоватся
Аноним 22/01/19 Втр 08:36:24 #189 №1332337 
>>1332325
Пожалуйста.
>>1332310
>В Си функции значит не сообщения, а твои такие же функции в классе уже значит сообщения?
Я такого не писал.
>>1332311
>Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП?
В секте свидетелей ООП немного другое - они считают, что если что-то написано с использованием ключевого слово class - это уже ООП. Например, STL - это ООП. Потому что вектор, епта, это класс, епта, и мы ему, епта, посылаем сообщение resize, епта. Что, конечно же, не так.
Даже с учетом того, что vector в современной реализации STL может наследоваться от _GLIBCXX_STD_C::vector, все равно ООП это не станет.
>>1332313
>Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП? Хорошо, а ты в курсе, что в Хаскелле тоже есть наследование?
Цитирую себя >>1332262 основной признак ООП - это иерархия наследования реализации
Проблема в том, что ты не читаешь, что пишут, а ищешь, как бы так сделать, чтобы я попался. Во-первых, пососи хуй. Во-вторых, даже если я где-то опечатался, это не значит, что я не прав. Впрочем, см. во-первых, потому что для таких долбоебов я заранее написал уточнение.
>>1332314
Что ты блядь с этим сицпом носишься. Я эту книгу прочитал 8 лет назад. Еще про Даннинга-Крюгера мне что-то втирает, лол, прочитал одну книжку и уверен, что стал богом программирования, лол.
В SICP термин object oriented встречается один раз, в сноске, в которой говорится, что наследование - это пиздец и источник сложности, поэтому мы сфокусировались на состоянии и сознательно эту тему обходим, пока не придумают что-то получше. Видишь ли какое совпадение, даже в SICP термины object oriented и inheritance стоят рядом.
>>1332315
Бля, обожаю этих бордошизиков, которые выдумали себе картину мира и дальше их манямирок трескается: оказывается в мире есть С++ программисты, которые знают больше языков, чем шизики, прочитали больше книжек и каким-то чудом ПРОЧИТАННЫЙ СИЦП не превращает их в каких-то гениев аргументации по существу, а они так и остаются маньками с гонором и с тупыми, не относящимися ко мне вангованиями.
Аноним 22/01/19 Втр 08:41:45 #190 №1332338 
>>1332277
>почему в геймдеве доминирует анальное с++
потомучто школьников набирают кодить

Реальные разрабы, которые сами пишут игры и сами зарабатывают, на своих играх бабло, пишут их на чистом Си!
https://habr.com/ru/post/275135/
Аноним 22/01/19 Втр 08:53:27 #191 №1332340 
>>1332338
Для таких игр gamemaker самое то
Аноним 22/01/19 Втр 08:54:49 #192 №1332341 
>>1332338
Кармак, очнись, девяностые прошли!
Аноним 22/01/19 Втр 08:55:51 #193 №1332342 
>>1332341
Кармак перешел на С++ после Q2
Аноним 22/01/19 Втр 09:09:21 #194 №1332346 
>>1332342
>Кармак перешел на С++ после Q2

После Q3. В думе 3.

Аноним 22/01/19 Втр 09:09:54 #195 №1332348 
>>1332346

И то, там код - си с классами во все поля.
Аноним 22/01/19 Втр 09:20:32 #196 №1332351 
>>1332337
>наследования реализации
>реюз поведения или реюз абстракций
пофиксил тебя, не благодари

Аноним 22/01/19 Втр 09:22:23 #197 №1332352 
>>1332337
Слив засчитан. Кстати, STL написан в функциональном стиле. Шах и мат ООПэшник.
Аноним 22/01/19 Втр 09:23:43 #198 №1332354 
>>1332337
Абстракция не равно ООП. Еще один шах и мат тебе.
Аноним 22/01/19 Втр 09:25:40 #199 №1332355 
>>1332352
Опять стандартная ситуация - пишешь пост, разъебывающий кого-то, в ответ жалкое блеянье в стиле "обосрался - притворись троллем".
>>1332352>>1332354
Ты с кем вообще разговариваешь, шизик? Найди у меня фразу "Абстракция не равно ООП". У тебя дислексия похоже.
Аноним 22/01/19 Втр 09:26:04 #200 №1332356 
>>1332337
Ты даун походу. ООП это объекты и сообщения. Все, только эти две концепции определяют ООП. Такое можно писать и на Лисп, и на Хаскелле. Об этом в СИКПе говорится тоже. Ты конечно же не читал.
Аноним 22/01/19 Втр 09:27:51 #201 №1332357 
Бля, я понял. Когда шизик читает:
"В секте свидетелей ООП немного другое - они считают, что если что-то написано с использованием ключевого слово class - это уже ООП. Например, STL - это ООП."
он видит фразу "STL - это ООП" и из-за клипового сознания уверен, что это я утверждаю, что STL - ООП. Лол. Насколько тупым нужно быть, чтобы не видеть, что написано.
Аноним 22/01/19 Втр 09:29:03 #202 №1332358 
>>1332356
>ООП это объекты и сообщения. Все, только эти две концепции определяют ООП
Приведи пример не ООП.
> Об этом в СИКПе говорится тоже
И тут ты такой с цитатой.
Аноним 22/01/19 Втр 09:29:56 #203 №1332359 
>>1332355
Тебя уже раскусили, дошколенок. Ты написал, что в Си нет высокоуровневых абстракций. Если бы ты читал СИКП, то знал бы, что можно кодировать данные на функциях, создавать свои абстрактные структуры данных. Про абстракцию данных ты ничего не знаешь. Это ты так СИКП читал, ну-ну. Это и есть абстракции высокого уровня.
Аноним 22/01/19 Втр 09:31:18 #204 №1332363 
>>1332357
Мать твою ебал.
Аноним 22/01/19 Втр 09:31:42 #205 №1332364 
>>1332358
Историю ООП почитай. Алан Кей четко обозначил, что есть ООП, а что нет.
Аноним 22/01/19 Втр 09:32:10 #206 №1332368 
>>1332358
>пример не ООП
Brainfuck.
Аноним 22/01/19 Втр 09:32:46 #207 №1332369 
>>1332364
Так и запишем: на вопрос о том, что такое НЕ ооп слился, потому что боится обосраться.
Аноним 22/01/19 Втр 09:33:45 #208 №1332370 
>>1332368
Объекты - ячейки, сообщения - +, -, . и так далее.
Еще примеры?
Аноним 22/01/19 Втр 09:34:39 #209 №1332371 
image.png
Посоны! Я погромирую на скрутках. Это достаточно низкоуровнево? Какие абстракции тут можно прикрутить?
Аноним 22/01/19 Втр 09:35:22 #210 №1332372 
>>1332368
Форт? Из коробки нет, но можно сделать
Аноним 22/01/19 Втр 09:36:03 #211 №1332373 
>>1332369
Ты тупой что ли. Я тебе написал - объекты и сообщения. На этом было основано ООП, это главная идея. Это легко в основу Smalltalk и Simula, а потом было стянуто Страуструпом.
Аноним 22/01/19 Втр 09:36:08 #212 №1332375 
>>1332371
Очевидно, что скрутка - это объект, а скручивая ты посылаешь ему сообщение
Аноним 22/01/19 Втр 09:37:00 #213 №1332376 
>>1332373
Нет, это ты тупой. Я не спрашиваю тебя, что такое ООП в твоем уебанском определении, я спрашиваю тебя, что ООП в твоем уебанском определении не является.
Аноним 22/01/19 Втр 09:40:37 #214 №1332377 
>>1332376
Возьми и отними от всей чепухи объекты и сообщения. Идеальным ООП языком можно назвать Erlang. Там настоящие сообщения, как в Smalltalk. Даже сам Кей об этом говорил.
Аноним 22/01/19 Втр 09:40:39 #215 №1332378 
>>1332370
А ведь ты и правда шизофреник.
Нет, это не толстота - ты просто болен и тупой
Аноним 22/01/19 Втр 09:43:46 #216 №1332381 
>>1332378
Это называется доказательство от противного.
Шизофреник тот, кто определяет ООП через объекты и сообщения. Я показываю, что это определение не работает, потому что оно слишком обобщенно, это все равно, что сказать, что человек - животное без волос. Что для местных школьников является недостижимым уровнем дискуссии.
Аноним 22/01/19 Втр 09:46:08 #217 №1332382 
короче, посоны. ооп это костыль для людейкак и фп, для людлей поумнее, шоб им понятнее и проще было. вы можете оборачивать это во сколько хотите слоёв филосовствовоний и прочей поебени для юзеров, но на самом дне это всё еще опкод
Аноним 22/01/19 Втр 09:47:03 #218 №1332383 
>>1332377
Идея ООП изначально была глупой. Алан Кей же был биологом, и еще очень любил громкие высказывания, якобы он все понимает лучше других. В математике насколько мне известно он ничего не открыл. Из этого следует, что у него была прочная профессиональная деформация в сторону биологии. Биология имеет мало общего с техническими науками, и инженерией. Но Кей все равно решил скрестить бульдога с носорогом. И насколько мне известно не реализовал свои громкие заявления. Его модель ООП так и осталась никому не известной, но из-за него появились другие модели, которые еще более провальны.

Поэтому книги по OОП, старые или новые, априори содержат в себе чепуху. Так как сама идея чепуха, а реализация еще хуже. И не стоит забывать, что ООП на классах не единственная модель. Есть еще прототипное ООП из языка Self, и якобы тру-модель из языка Smalltalk, которая потом (в Smalltalk-80 и далее, а может чуть раньше) тоже была сильно извращена.
Аноним 22/01/19 Втр 09:49:07 #219 №1332384 
>>1332382
Робот Бендер закукерекал
Аноним 22/01/19 Втр 09:54:17 #220 №1332385 
>>1332383
Это я и писал если что. Но это никак не мешает тому факту, что ООП определяют объекты и сообщения. Вся остальная шелуха была введена уже после.
Аноним 22/01/19 Втр 09:55:57 #221 №1332387 
>>1332381
>Шизофреник тот, кто определяет ООП через объекты и сообщения.
Потеряйся. Умник тут нашелся. Ты что ли ООП создавал? Создатель ООП Алан Кей. Он сказал, что главная идея ООП объекты и сообщения между ними, все. Ты понимаешь или у тебя мозгов нет.
Аноним 22/01/19 Втр 09:56:28 #222 №1332388 
>>1332377
Ты так с придыханием произносишь "сам Кей", как будто слова дедушки кого-то волнуют. Он даже не первый ООП-язык придумал. Все, что он сделал - это дал людям хайповый термин, который наполнили содержанием другие люди. Когда критикуют ООП, критикуют не какие-то рандомные утверждения об объектах (без определения) и сообщениях (без опеределения), а монструозные иерархии наследования, паттерны gof (которые делают эти иерархии еще более монструозными) и прочее.
>Идеальным ООП языком можно назвать Erlang
За такое тебе в лучшем случае перезвонят, если ты где-то назовешь Erlang ООП-языком.
Аноним 22/01/19 Втр 09:58:53 #223 №1332389 
>>1332387
>Создатель ООП Алан Кей.
Создатель ООП Оле-Йохан Даль. Алан Кей придумал этому название. И дал неверное определение.
Аноним 22/01/19 Втр 10:02:31 #224 №1332390 
>>1332388
>Он даже не первый ООП-язык придумал.
Чяво? Щас будем тебя носом тыкать.

Разработал язык программирования Smalltalk, где впервые был применён объектно-ориентированный подход. Лауреат премии Тьюринга 2003 года за работу над объектно-ориентированным программированием, Премии Киото (2004). Один из создателей проекта One Laptop Per Child.

>>1332388
>Когда критикуют ООП, критикуют не какие-то рандомные утверждения об объектах (без определения) и сообщениях (без опеределения), а монструозные иерархии наследования, паттерны gof (которые делают эти иерархии еще более монструозными) и прочее.
Эта вся чепуха не относится к эталонной модели ООП. Тем более паттерны от банды четырех наркоманов. Снова шах и мат тебе. Иди матчасть учи.

>>1332388
>За такое тебе в лучшем случае перезвонят, если ты где-то назовешь Erlang ООП-языком.
Эрлангистов разбирают как горячие пирожки в голодный год. Он наиболее близок к эталонной модели ООП.
Аноним 22/01/19 Втр 10:05:05 #225 №1332391 
image.png
>>1332390
>Один из создателей проекта One Laptop Per Child
Аноним 22/01/19 Втр 10:07:13 #226 №1332393 
>>1332389
>Создатель ООП Оле-Йохан Даль. Алан Кей придумал этому название. И дал неверное определение.
Чепуху несешь. То что он там наваял, не называлось ООП, это обычная наркомания как в C++.

«Я придумал термин «объектно-ориентированный», и могу сказать, что я не имел в виду С++». Алан Кэй, конференция OOPSLA, 1997.


Аноним 22/01/19 Втр 10:07:27 #227 №1332394 
>>1332390
>Чяво? Щас будем тебя носом тыкать.
Тово, школьник с даннингом-крюгером. Тово.
Впрочем, ключевые слова для судорожного гугления я уже назвал в прошлом посте, можешь пиздовать гуглить.
>Эта вся чепуха не относится к эталонной модели ООП.
Относится. И в смоллтоке были ебанутые иерархии. Это уже задним числом Кей начал от них открещиваться.
Аноним 22/01/19 Втр 10:08:20 #228 №1332395 
>>1332391
Да да, Кей еще и создатель первого планшета, и первого графического интерфейса.
Аноним 22/01/19 Втр 10:10:44 #229 №1332397 
>>1332394
>Впрочем, ключевые слова для судорожного гугления я уже назвал в прошлом посте, можешь пиздовать гуглить.
Основателем ООП считается Кей, а никакой не Даль. Далевская наркомания это процедурка на классах.

>>1332394
>И в смоллтоке были ебанутые иерархии. Это уже задним числом Кей начал от них открещиваться.
Не ври. Их ввели в Smalltalk-80, когда он уже не участвовал в разработке.
Аноним 22/01/19 Втр 10:15:58 #230 №1332398 
Короче, даже Джон Бэкус, создатель первого высокоуровневого языка (предка Си), говорил что ФП превосходит императивное программирование во всем. Есть уйма инфы по этой теме, его доклады и статьи.
Аноним 22/01/19 Втр 10:27:07 #231 №1332399 
>>1332398
Да заебал ты уже со своим декраративным подходом. Императивное программирование ближе человеку. Императивная программа выполняется так, как было задумано, без ебучих отложенных вычислений, которые всю память сжирают.
Аноним 22/01/19 Втр 10:30:11 #232 №1332401 
>>1332397
>Основателем ООП считается Кей, а никакой не Даль. Далевская наркомания это процедурка на классах.
Кем считается? Кей - калифорнийский хипстер, а Даль - норвежский ученый. В этом разница. Хипстеры тебя тебя слышат друг от друга о Кее, потому что из Калифорнии проще хайповать и уверены, что смолток первый ОО-язык. Хотя в среде профессионалов подобной хуйни нет.
>Далевская наркомания это процедурка на классах.
Ты 5 минут назад первый раз услышал о симуле и у тебя уже готов вердикт. Википедийный школьник как есть.
Сообщество с тобой не согласно, оно Далю за изобретение ООП премии дает.
>Не ври. Их ввели в Smalltalk-80, когда он уже не участвовал в разработке.
А почему ввели, лол? Потому что это ключевая концепция для ООП. То, что Кей в первой редакции забыл реализовать наследование из-за желания максимально упростить симулу, не делает смолток каким-то священным идеалом.
Термины со временем уточняются и усложняются, а твоя позиция типа "св. Кей сказал вот так вот" мало отличается от религиозных догматиков. Что имел в виду Кей - похуй, потому что с тех пор прошло 40 лет, ООП успело появиться, оказаться в зените в 90-е и после этого постепенно сгнило и сдохло.
Поэтому твой подход "ща я в википедии прочитаю определение" и не работает - приходится делать охуительные выводы о том, что Erlang - ООП-язык. В манямирке, может, оно и так, но в сообществе за такое посмотрят как на шизика.
Аноним 22/01/19 Втр 10:30:12 #233 №1332402 
>>1332399
Все наоборот, школьник. Декларативному подходу учат с детства, в школе. В вычислениях нет понятия времени, они декларативны по своей природе. Императивная природа только у процессора.

Какие еще отложенные вычисления? Все понятно, ты ноль в программировании.
Аноним 22/01/19 Втр 10:30:39 #234 №1332403 
>>1332398
>ФП
нинужно
Аноним 22/01/19 Втр 10:30:59 #235 №1332404 
>>1332398
У тебя свое мнение есть без ссылок на чужие авторитеты?
Аноним 22/01/19 Втр 10:34:12 #236 №1332405 
>>1332398
>ФП превосходит императивное программирование
орнул с этого куска мяса. на дне это всё императивее некуда. если мясным мешкам нужны абстракции над скрутками, баг им судья
мимо бендер
Аноним 22/01/19 Втр 10:35:22 #237 №1332407 
>>1332401
Короче, я уже понял что у тебя ноль знаний CS. Кей ученый. Кей создатель ООП, везде можно об этом прочитать. Кей получил премию Тьюринга за ООП.

В современном ООП, в любой книжке написано, что объекты передают сообщения. Это придумал Кей. У Даля такого не было, обычная процедурщина с классами. Если даже современные адепты Java, C++, признают что в ООП есть передача сообщений, которую придумал Кей, то какой Даль может быть создатель ООП.

Erlang ООП язык, да. На этом все. Иди матчасть учи. Не собираюсь тратить на тебя свое время.
Аноним 22/01/19 Втр 10:35:42 #238 №1332408 
>>1332402
>Императивная природа только у процессора.
Состояние придумали жиды, ирл ни у чего состояния нет, только платонические идеи, плавающие в океане монады.
Аноним 22/01/19 Втр 10:37:09 #239 №1332409 
>>1332407
>премию Тьюринга
Бля, даже премии в честь этого пидара есть, лол
>ООП
Нинужно
Аноним 22/01/19 Втр 10:40:36 #240 №1332411 
>>1332407
>Кей создатель ООП, везде можно об этом прочитать.
Ну правильно, если быть википедийным школьником и везде видеть упоминание калифорнийского хипстера. Только "везде можно прочитать" - это не аргумент. А вот факт того, что симула - первый ООП язык, это факт.
>Кей получил премию Тьюринга за ООП.
На два года позже Даля. При чем Далю дали за что? За ООП, ЛАЛ. Ты определись, авторы премии Тьюринга, они как, хуесосы (как Тьюринг), или ты хуесос?
>Erlang ООП язык, да. На этом все. Иди матчасть учи. Не собираюсь тратить на тебя свое время.
Erlang не ООП язык. Это функциональный язык с динамическими типами.
Аноним 22/01/19 Втр 10:46:53 #241 №1332412 
Так, чувак, поясните мне одну хуйню. Вот у меня есть множество битов в озу. Теоритически, я могу провернуть над ними вот эту всю чисто математическую поебень и это будет считаться фп? А что я должен провернуть, чтобы это стало ооп?
Аноним 22/01/19 Втр 10:51:08 #242 №1332414 
>>1332412
В ФП ты не можешь изменять свое множество, только скопировать и при копировании что-то поменять, создав новое множество.
А чтобы это стало ООП, не знаю, подрочи. Все равно никто не знает, что такое ООП, потому что никто не знает, что такое объект.
Аноним 22/01/19 Втр 11:02:02 #243 №1332416 
>>1332414
Тоесть, ооп это ёбаный симулякр?
>что такое объект
Некая совокупность инструкций и даты?
Аноним 22/01/19 Втр 11:14:10 #244 №1332420 
>>1332416
>Тоесть, ооп это ёбаный симулякр?
Так же, как и процедурное, функциональное и всякое другое программирование.
Правильно парадигмы применять к дизайну программ, а не к языку. Просто некоторые языки заточены под определенный дизайн.

Процедурная программа - это программа, архитектура которой основывается на модели данных и изменяющих эти данные процедур. Объектный дизайн основывается на модели объектов и общений, таких изолированных компьютеров, которые что-то сами собой считают и взаимодействуют с другими объектами посредством передачи сообщений, такая абстракция компьютерной сети внутри твоей программы.
Датафлоу дизайн основывается на том, что у тебя есть данные, которые как по конвееру передаются и обрабатываются определенными блоками
и т.д.
Любой такой дизайн можно реализовать хоть на си, хоть на java.
Аноним 22/01/19 Втр 11:18:18 #245 №1332421 
>>1332416
>Некая совокупность инструкций и даты?
Ну окей, стек процессора в языке ассемблера - это объект в терминах ООП?
Нет.

>Тоесть, ооп это ёбаный симулякр?
ООП - это кот. Ты даешь определение кота, типа, животное такое-то, класс, род, вид, я не биолог, ты понел, короче, а тебе показывают картинку nyan-cat или тома из тома и джерри и ты говоришь, это нихуя не кот, это нарисованный персонаж и будешь прав. Но те, кто скажет, что том - это кот, будут правы, потому что а кто это, СИМУЛЯКР что ли.
Я вижу выход только в том, чтобы дать людям характерные признаки кота, а они уже пусть решают, кот перед ними, или нет. И характерный признак ООП это объекты (некая совокупность инструкций и даты), которые состоят между собой в иерархии наследования.
Вот теперь думай, как прилепить сюда множество бит в озу. Да никак. Но если твое множество состоит в иерархии множеств, то тут уже можно думать об ООП.
Аноним 22/01/19 Втр 11:20:11 #246 №1332422 
>>1332420
>модели данных и изменяющих эти данные процедур
>модели объектов и общений
А тут есть какая-то разница, кроме чисто философской?
Аноним 22/01/19 Втр 11:25:29 #247 №1332429 
есть целая книжка "ооп в си" на английском
желающие всегда могут выяснить все вопросы
Аноним 22/01/19 Втр 11:32:13 #248 №1332431 
>>1332422
Можно определить так: посылка сообщения это late binding, то есть если при выполнении кода можно подменить один объект другим из-за того, что диспетчеризация происходит в рантайме, а вызов процедуры это early binding, то есть сообщение жестко привязано к типу адресата.
Проблема в том, что в таком определении отвалится большинство ООП-языков.
Аноним 22/01/19 Втр 11:34:53 #249 №1332432 
Ребята, сегодня я многое понял. День прошел не зря.
Аноним 22/01/19 Втр 11:39:30 #250 №1332434 
>>1332432
ИДИ НАХУЙ ОТСЮДА
Аноним 22/01/19 Втр 11:40:58 #251 №1332435 
>>1332422
Конечно есть. Разница уровня шаблонов проектирования.
Архитектура твоей программы это ЧЕРТЕЖ, а то, на каком станке были выточены ДЕТАЛИ этого чертежа - это уже вторично.
Аноним 22/01/19 Втр 11:42:20 #252 №1332436 
>>1332435
Нечего сказать - ебашь тупую аналогию.
Аноним 22/01/19 Втр 11:45:22 #253 №1332437 
>>1332431
Да это не важно. Это все особенности реализации конкретного станка. Например, в java есть перегрузка методов, а в js нет. Ну и что. Это конкретные особенности языка. В одном может быть много абстракций, упрощающих написание программы, а в другом может их не быть.
Аноним 22/01/19 Втр 11:47:01 #254 №1332438 
>>1332436
Это потому что ты не понял, что я имел ввиду.
Дизайн программы и реализация этого дизайна на языке программирования - это две раздельные сущности. А ты этого не видишь и мыслишь все как одну сущность, отсюда ошибки.
Аноним 22/01/19 Втр 12:30:51 #255 №1332460 
>>1332438
К сожалению из-за того, что люди этого не понимают, у нас программирование по прежнему является кустарной областью, где все решения по ходу дела принимает дядя Ваня на основе личного опыта.
Аноним 22/01/19 Втр 12:33:33 #256 №1332462 
>>1332460
Ох уж эти сладкие мечты аутистов - исключить людей из работы.
Аноним 22/01/19 Втр 12:34:09 #257 №1332463 
>>1332460
Почаще конпелируй, чтобы таких пробем не было.
Аноним 22/01/19 Втр 12:51:31 #258 №1332468 

Антош, как разобраться в архитектуре/устройстве Си++?

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

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


Хотелось бы найти ответы на эти вопросы, в идеале бы какую-нибудь литературу, а не просто набор статей из интернета. Спасибо
Аноним 22/01/19 Втр 12:58:47 #259 №1332473 
>>1332468
>Хотелось бы найти ответы на эти вопросы, в идеале бы какую-нибудь литературу, а не просто набор статей из интернета. Спасибо
Книжка называется Дизайн и эволюция С++
Затем несколько книжек Мейерса и Саттера на выбор
Чтобы понимать бусты-хуюсты и метапрограммирования на шаблонах - Александреску, хотя может есть что поновее.
Аноним 22/01/19 Втр 13:50:52 #260 №1332497 
>>1332473
Благодарю за ответ, буду в метро читать, а дома писать код.
Аноним 22/01/19 Втр 14:20:03 #261 №1332503 
Сильно ли ебнет наполовину полный баллон с дезодорантом, если кинуть его в костер?
Аноним 22/01/19 Втр 14:31:34 #262 №1332507 
>>1332503
Недостаточно условий - размер баллона, что за дезодорант, что такое по твоему сильно ебнет.
Думаю, сильно, улетит метров на 30 нахуй
Аноним 22/01/19 Втр 14:44:51 #263 №1332516 
>>1332507
Да обычный аэрозоль 150 мл от адидас. Запах не понравился, хочу выкинуть, сосед на заднем дворе покрышки жгет от камаза, хочу приколоться и подкинуть сюрприз.
Аноним 22/01/19 Втр 14:46:59 #264 №1332517 
>>1332516
У меня так дед на два года сел, прикололся, а у человека электроожог и больничка
Аноним 22/01/19 Втр 15:03:58 #265 №1332531 
>>1332462
Ты бы доверил строить свой дом команде строителей агильщиков, или тем кто построят твой дом по TDD?
Аноним 22/01/19 Втр 15:06:46 #266 №1332532 
>>1332531
>Мы поставили унитаз в зале. Сначала он проходил все тесты, но потом внезапно сломался тест на запахи. Придется все переделать, с вас еще $1000
Аноним 22/01/19 Втр 15:06:47 #267 №1332533 
>>1332531
>Ты бы доверил свой ангуляр команде рубистов
Поправил тебя, сладкий :3
Аноним 22/01/19 Втр 15:13:33 #268 №1332537 
>>1332531
>Ты бы доверил строить свой дом команде строителей агильщиков, или тем кто построят твой дом по TDD?
Строительство хорошего индивидуального жилья это всегда эджайл, потому что предусмотреть все заранее как тебе нужно невозможно, сколько бы бабок ты архитектору не отвалил.
То же касается и типовых коробок - тебе предоставлен отлаженный фреймворк, но ремонт один хер индивидуально надо делать.
Аноним 22/01/19 Втр 15:55:08 #269 №1332568 
>>1332533
Я горький.
Аноним 22/01/19 Втр 16:01:42 #270 №1332571 
>>1332342
Си мертв, даже Кармак перешел...
Пичаль..
Аноним 22/01/19 Втр 16:24:34 #271 №1332602 
>>1332571
Какого хуя игры делают не на C с диезом?
Аноним 22/01/19 Втр 16:35:20 #272 №1332615 
>>1332602
Нет сборщика мусорщика оптимизированного под минимальные паузы.
Там пилят что-то вроде модульного сборщика мусорщика, но такими темпами они еще лет 10 будут пилить
Аноним 22/01/19 Втр 16:49:14 #273 №1332634 
>>1332615

>под минимальные паузы

Про какие паузы тут имеется ввиду?
Аноним 22/01/19 Втр 16:53:05 #274 №1332638 
>>1332531
>или тем кто построят твой дом по TDD?
Проиграл со строителей, которые в процессе строительства ломают тестами дом и каждый раз заново его пересобирают.
Аноним 22/01/19 Втр 17:01:58 #275 №1332645 
Почему Кармак перешёл на C++?
Аноним 22/01/19 Втр 17:10:41 #276 №1332650 
>>1332645
Очевидно, заебался пилить огромные проекты на си.
При этом сам он называет этот переход "эволюцией моего С-стиля", лол.
Аноним 22/01/19 Втр 17:13:48 #277 №1332655 
>>1332638
Не ломают, а проводят испытания компонентов.
Ты удивишься наверное, но вся область техники и строительства именно этим и руководствуется.
Так что ты пукнул в лужу, смешной дурачок.
Аноним 22/01/19 Втр 17:16:53 #278 №1332658 
>>1332650
У него жена узкопленочная, я таким людям вообще не доверяю.
Аноним 22/01/19 Втр 17:19:03 #279 №1332660 
>>1332655
>проводят испытания компонентов
Типа автомобильные краш-тесты?
И где ты видел, чтобы на стройке делали испытания ЖБИ под нагрузкой или проверяли канализацию под давлением? Все делают про проверенным веками технологиям, и тесты тут нахуй никому не нужны.
Аноним 22/01/19 Втр 17:27:26 #280 №1332665 
LAUGHTER.jpg
>>1332658
>жена узкопленочная
Проиграл.
Это что?
Аноним 22/01/19 Втр 17:30:01 #281 №1332670 
>>1332665
Ну пиздоглазая.
Аноним 22/01/19 Втр 17:30:16 #282 №1332671 
>>1332665
Пизда поперек. А так вообще нет разницы.
Аноним 22/01/19 Втр 17:31:05 #283 №1332672 
>>1332670
лолблядь
Аноним 22/01/19 Втр 17:47:38 #284 №1332682 
>>1332655
>Не ломают, а проводят испытания компонентов.
В TDD сначала придумывают тест на фундамент, потом строят фундамент, потом проверяют че построили, потом доделывают/ломают/переделывают. Тесты позеленели? Жить можно!

От кастомера пришел баг-репорт. Пишем, тест. Чтобы его позеленить, надо лифтовую шахту залить монтажной пеной, и временно повесить люльку снаружи вместо него.
Аноним 22/01/19 Втр 18:04:51 #285 №1332695 
>>1332682
Это ж сколько пены надо, чтобы залить шахту, лол.
Аноним 22/01/19 Втр 18:11:07 #286 №1332698 
Прошу пример интеграции парсинга с flex/bison в программу. Ну вот разобрал я файл на части. А в основную прогу-то как передать?
Аноним 22/01/19 Втр 18:14:49 #287 №1332700 
>>1332698
Считать iostream
Аноним 22/01/19 Втр 18:19:56 #288 №1332702 
>>1332682
Ржублядь.
Обожаю читать мудаков, с умным видом рассуждающих о вещах в которых не смыслит совершенно.
10 килокравецких из 10
Аноним 22/01/19 Втр 18:23:55 #289 №1332704 
>>1332700
Не, вот flex/bison парсер готов и работает. Теперь бы его в программу интегрировать, чтобы структуры заполнял.
Аноним 22/01/19 Втр 18:46:54 #290 №1332713 
Пытаюсь в динамическую память, но что-то не особо получается.

#include <stdio.h>
#include <stdlib.h>
int main()
{
\tchar pstr = NULL;
\tint razmer = 10;
\t
\tpstr = (char
)calloc(razmer + 1, sizeof(char));
\tfor (int i = 0; i < razmer; i++)
\t{
\t\tscanf("&с", &pstr);
\t}
\tfor (int i = 0; i < razmer; i++)
\t{
\t\tprintf("%c", pstr);
\t}
\treturn 0;
}

Этот код должен был запрашивать количество символов <=razmer и заполнить ими переменную pstr как массив, но что-то не особо получается. Что именно я делаю не так? Прошу нормально объяснить без подъёбов и желчи.
Аноним 22/01/19 Втр 18:52:33 #291 №1332716 
>>1332713
>("&с", &pstr)
->
>("%с", &pstr);
Аноним 22/01/19 Втр 18:53:10 #292 №1332717 
>>1332716
А, ясно, борда сожрала. Залей на пастебин какой.
Аноним 22/01/19 Втр 18:57:39 #293 №1332724 
>>1332717
https://ideone.com/comC3P
Аноним 22/01/19 Втр 19:08:03 #294 №1332729 
изображение.png
>>1332724
>&c
Две ошибки. c - не латинская (переключись на английский и введи еще раз). scanf использует %, а не &.
Аноним 22/01/19 Втр 19:23:46 #295 №1332738 
>>1332729
Спасибо за помощь. Можешь теперь объяснить почему если размер будущего массива объявить сразу при объявлении переменной, то всё в порядке, но если присвоить значение через scanf, то выводит на одну ячейку меньше?
https://ideone.com/comC3P
Аноним 22/01/19 Втр 19:29:44 #296 №1332744 
>>1332695
По сравнению с неэффективностью приложений на electron, заливка шахты пеной это сущие пустяки.
Аноним 22/01/19 Втр 19:45:18 #297 №1332753 
изображение.png
изображение.png
>>1332738
После ввода цифры у тебя во входном потоке остается символ перевода строки, вот и выводится так. Можно заметить, что строка лишний раз перевелась.
Можно пофиксить, добавив после ввода размера fflush(stdin), но это Undefined Behavior и нехорошо. Хотя лично у меня всегда работало как ожидалось, и для обучения в принципе сойдет.
Аноним 22/01/19 Втр 19:48:55 #298 №1332756 
>>1332744
Причем тут жабаскрипт вообще?
Аноним 22/01/19 Втр 19:51:27 #299 №1332757 
>>1332753
Но ведь если убрать scanf для razmer, а razmer сразу присвоить значение, то циклы будут отрабатывать правильно без всяких костылей. Почему так?
Аноним 22/01/19 Втр 19:58:30 #300 №1332763 
изображение.png
>>1332757
scanf жрет из входного потока все, что у него попросят. Ты просишь число, его он и дает. Но нажав Enter для завершения ввода ты посылаешь во входной поток символ конца строки ака '\n'. Вот его scanf из потока уже не берет. Далее ты с помощью scanf считываешь символы, но в потоке-то уже есть наш '\n'! Вот он его в нулевую ячейку массива и помещает, после чего уже все остальное разбирает. Альтернативный вариант решения проблемы - пикрелейтед. Тупо запроси у scanf ждать еще и символ конца строки.
Аноним 22/01/19 Втр 20:03:14 #301 №1332764 
Сергей Серпухин 002.jpg
Кармак здесь?
Отзовись пожалуйста, у меня важный вопрос.
Аноним 22/01/19 Втр 20:09:49 #302 №1332771 
>>1332763
Я попробовал вместо \n поставить просто пробел без ' и результат такой же, как и у тебя.
Аноним 22/01/19 Втр 20:11:01 #303 №1332772 
>>1332771
Ну можно и так. В любом случае scanf взяла еще символ из потока, что и требовалось.
Аноним 22/01/19 Втр 20:13:30 #304 №1332774 
>>1332772
А можно заставить один и тот же scanf сместить курсор более, чем на один символ?
Аноним 22/01/19 Втр 20:50:45 #305 №1332801 
>>1332774
Какой курсор? Это поток, который к тому же не умеет в fseek, там нет никаких курсоров. Ты имеешь в виду "пропустить n символов"? Можно так: scanf("%*123c"), где 123 - количество пропускаемых символов.
Аноним 22/01/19 Втр 21:03:15 #306 №1332819 
>>1332774
Это зависит от ловкости твоих рук и возможностей клавиатуры/usb/ps/2. Если сможешь молниеносно отправить 2 символа за то время, пока не сработает команда новой строки, то молодец. В джаве так сборщик мусора работает. Никогда не знаешь, удалится ли ссылка на объект после удаления объекта или нет.
Аноним 22/01/19 Втр 22:32:39 #307 №1332889 
Если я хочу организовать динамическую память для структуры, я должен делать указателем переменную типа структуры или члены структуры?
Аноним 22/01/19 Втр 23:13:57 #308 №1332917 
>>1332889
Можно и так, и так:
struct something {
size_t length;
char ∗dynamic_data;
};
struct something {
size_t length;
char dynamic_data[];
}
В первом случае у тебя два malloc(), но зато при realloc() dynamic_data не меняется адрес самой структуры. Во втором случае malloc() один, но изменение адреса структуры при realloc() может доставлять неудобства.
Аноним 23/01/19 Срд 00:21:10 #309 №1332963 
Начал параллельно читать SICP.
Ебанутся какая нудятина. Со слезами радости с удвоенным удовольствием читаю дальше Прату.
Неужели кто-то еще способен это пережевывать?
Да мне все было понятно. Да, делал задания.
Аноним 23/01/19 Срд 00:21:48 #310 №1332964 
>>1332963
>t. дурачок
Аноним 23/01/19 Срд 00:22:54 #311 №1332965 
>>1332963
Тупорылый форс сикпа для обучения погромированию.
Аноним 23/01/19 Срд 00:24:21 #312 №1332966 
СНГ дебилы не могут справится с СИКПом вот и ноют, думают, что это троллинг новичков такой.
Аноним 23/01/19 Срд 00:55:37 #313 №1332975 
>>1332966
Нет, просто начиная читать SICP человек ожидает прочитать что-нибудь о структуре и интерпретации компьютерных программ. А внутри ЛИШП.
Аноним 23/01/19 Срд 01:31:22 #314 №1332986 
>>1332963
Ты вероятно школьник еще. Меня в школе учили по советским учебникам. Да, они были нудные, но изложение было строгим, математически строгим. СИКП очень похож по манере изложения.

А теперь делайте выводы. Современное поколение не способно с серьезному глубокому обучению. Всему виной клиповое мышление, которое выработалось из-за гаджетов и интернета.
Аноним 23/01/19 Срд 01:43:12 #315 №1332989 
>>1332986
K&R уступает только по причине вменяемых примеров в главах. В остальном нахуй лисп не нужон вместе с сикпом шеме прочими питушиными диалекатми.
sage[mailto:sage] Аноним 23/01/19 Срд 01:44:59 #316 №1332992 
>>1332989
Еблан, конченный еблан. Пошёл на хуй.
Аноним 23/01/19 Срд 01:52:30 #317 №1332993 
>>1332989
K&R про то как хеллоу-ворлды писать, а СИКП про построение абстракций и архитектуры. Си отстой.
Аноним 23/01/19 Срд 02:03:13 #318 №1332995 
>>1332993
Убедительно. Надо будет посмотреть, что там лиспопитухи понаписали.
Аноним 23/01/19 Срд 04:47:20 #319 №1333016 
>>1332963
В SICP'е любому программисту нужна 2 и 3 глава.
1-я с основами ФП - ну такое, скучновато, но там есть прикольные вещи типа чисел Черча. Я помню я сидел в очереди в больнице и на бумажке и хуячил их, почти кончил на виду у бабок.
4 и 5 - про то, как пилить интерпретаторы, нахуй не нужная ебатория, особенно делать там упражнения. В жизни тебе это не пригодится, если ты не ебанат типа авторов язык julia, который всерьез решил часть реализации написать на scheme.

А вот 2 и 3 глава, где описаываются потоковый и объектный подход, делаются философские замечания по этому поводу, описывается как символьно дифференцировать (про tensorflow корочъ) и прочее, это одно из самых охуенных чтив для программиста. Но, если ты с удовольствием читаешь Прату, очевидно, что ты не дорос до подобного - Прата ведь хуевый клон Кернигана и Ричи.

Алсо если в переводе читаешь, то он так себе.
Аноним 23/01/19 Срд 07:43:32 #320 №1333070 
Не знаю C нихуя вообще.
https://pastebin.com/raw/njBqNEzJ
Это неопределенное поведение?
gcc -o test test.c
./test
3
5

Мимо пхп макака
Аноним 23/01/19 Срд 07:50:34 #321 №1333073 
>>1333070
Конечно, v-то уничтожается по выходу из функции.
То, что на стеке физически число 5 остается - это везение, очень мерзкое при том, потому что такой баг может годами жить и проявляться изредка.
Аноним 23/01/19 Срд 08:13:25 #322 №1333079 
>>1333073
Интересный у вас язык. Вот у нас в пхп всегда все определенно, если знать некоторые нюансы.
Аноним 23/01/19 Срд 08:21:36 #323 №1333080 
>>1333079
Не пизди у нас пхп все как расмус лердорф
бог на душу положит
Мимо пхп макака
Аноним 23/01/19 Срд 08:46:57 #324 №1333088 
>>1333080
Что такого неопределенного есть в пхп?
Аноним 23/01/19 Срд 09:06:03 #325 №1333096 
>>1333088
Например, количество хромосом у разработчиков
Аноним 23/01/19 Срд 09:14:30 #326 №1333098 
>>1333096
А если серьезно, то что? Пхп сейчас хороший язык для серверов, не побоюсь этого слова - лучший язык для веба. Слоупоки сейчас конечно будут рассказывать истории своего опыта на версии эдак 5.6 и меньше, которые уже даже не поддерживаются, но те к в курсе дел знают, что пыха развивается семимильными шагами.
Аноним 23/01/19 Срд 09:20:58 #327 №1333099 
>>1333098
Результат развития — бойлерплейт жавы и всё наследство пхп. А ведь был хорошим и простым языком.
Аноним 23/01/19 Срд 09:34:15 #328 №1333105 
>>1333079
> если знать некоторые нюансы
Ага, например весь конфиг php.ini на котором будет крутится твой код и какие опции из него будут удалены в следующей версии интерпретатора
Аноним 23/01/19 Срд 09:40:06 #329 №1333109 
>>1332917
А calloc тут нельзя использовать?
Аноним 23/01/19 Срд 11:28:02 #330 №1333159 
Все бля, в тредх набижали дети и обляпали его говном и своим очень важным мнением.
Аноним 23/01/19 Срд 11:38:09 #331 №1333170 
>>1333159
Бида! Бида!
Аноним 23/01/19 Срд 11:38:57 #332 №1333171 
>>1333098
>А если серьезно
Он и правда тупой.
Впрочем, термин пхпдебил родился из жизни и полностью заслужен.
Какой язык - такое и комьюнити.
Какое комьюнити - такой и язык.
Почти как govno, хаха.
Аноним 23/01/19 Срд 12:16:11 #333 №1333210 
>>1333171
Cмешно, да. Но я правда серьезно спрашиваю: за что ненавидеть пыху последней версии? И самое главное, почему ее ненавидят по большей части те, кто на ней пишет?
Аноним 23/01/19 Срд 12:26:12 #334 №1333220 
>>1333210
>ненавидеть
К чему такие громкие слова - почти никто не ненавидит говно. Презирать, брезговать, блевать - скорее так.
>почему
Из-за комьюнити по больше части - быдло и дебилы же, почти как одножопые.
Вот и ты, например.
Аноним 23/01/19 Срд 12:27:05 #335 №1333222 
>>1333210
Потому что только если ты пишешь на чем-то ты можешь полностью осознать какое это дерьмо.
я вот никогда на пхп не писал и в душе не ебу, что там не так
Аноним 23/01/19 Срд 12:28:13 #336 №1333225 
>>1333220
Уже несколько месяцев ищу ответ на этот вопрос, и никто не ответил без сарказма и насмешки.
Аноним 23/01/19 Срд 12:29:37 #337 №1333226 
>>1333222
Понял. Но это ведь можно отнести к совершенно любому языку. Вон даже в этом треде проскакивают посты с описанием, какое же говно си.
Аноним 23/01/19 Срд 12:33:40 #338 №1333232 
>>1333225
> >дан прямой и буквальный ответ
>Уже несколько месяцев ищу ответ на этот вопрос, и никто
А вот и иллюстрация: пыхыпыдебил as is.
Аноним 23/01/19 Срд 12:38:32 #339 №1333238 
>>1333232
Этот ответ полон эмоций и субъективности. Дело тут не в быдле и не в гопниках, которым полюбился пых. Я говорю про людей, которые не в начале 21 века в кодирование вкатились, а в конце 20-ого. За что его не любить? Альтернативы пыху просто нет.
Аноним 23/01/19 Срд 12:41:43 #340 №1333242 
>>1333238
>Дело тут не в быдле и не в гопниках, которым полюбился пых.
Нет, дело именно в этом.
Дело всегда в людях, омежка.
>Альтернативы пыху просто нет.
Очередная иллюстрация пыхыпыдебила, хаха.
Аноним 23/01/19 Срд 12:48:11 #341 №1333247 
>>1333238
ПХП чудовищно эстетически некрасив, для языка, которому нет 20 лет, он жутко неортогонален и полон какого-то легаси-говна.
Его пилили люди, которые понятия не имели об устройстве языков и ничего сложнее си в своей жизни не видели. И это в нулевые годы. Любить его точно не за что.
Что касается каких-то подводных камней внутри языка, то до такого как правило не доходит, потому что нахуя нормальному человеку погружаться в это говно? Есть красивые языки, руби или питон, например. Даже жс, сделанный за две недели, на бесконечно красивее, чем пхп.
Аноним 23/01/19 Срд 12:51:33 #342 №1333252 
>>1333242
Да не в этом. Можно даже аналогию привести с политикой и народностями. Все знают, что хохлов никто не любят, но украинский язык занял первое место по красивости и приятности звучания в каком-то году, не помню уже. Так же вот и с пыхой. На нем пишет много людей. Много перекатывальщиков из тех же самых низкоуровневых. Бывшие инженеры пишут на пхп. Но вот даже работнички корпорации гугл говорили, что стали бы писать на php только разве что сервис для доставки пиццы им в офис.
Я не пытаюсь тебе проиллюстрировать тут какой-то образ, но мне вот интересно, почему в мире кодирования пхп стоит особняком, на который каждый считает своим долгом поссать.
Аноним 23/01/19 Срд 12:51:36 #343 №1333253 
>>1333247
Что про Перл скажешь? Чем-то привлекает дико.
Мимо
Аноним 23/01/19 Срд 12:53:37 #344 №1333258 
>>1333252
>На нем пишет много дебилов и быдла.
Поправил эту мечтательную туповатую омежку.
>Все знают, что хохлов никто не любят
А, так ты лахтинский.
Это ВСЕ объясняет.
Аноним 23/01/19 Срд 12:56:00 #345 №1333264 
>>1333253
Перл создан лингвистом и при неортогональности у него есть свой шарм - он лаконичен, например.
Я бы его не использовал, но ничего плохого в нем не вижу, раз привлекает, хули нет-то.
Аноним 23/01/19 Срд 12:57:55 #346 №1333267 
>>1333247
>ПХП чудовищно эстетически некрасив, для языка, которому нет 20 лет
Я думаю, что это все-таки дело привычки, да и в последних версиях ввели синтаксический сахарок некоторый.

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

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

> руби или питон, например. Даже жс,
На руби не писал, не люблю узкоглазых, а вот питон мне не полюбился синтаксисом. И еще тем, что я не могу форматировать код, как мне вздумается. А жс сейчас уже не тот, что был раньше. Но насчет красивости не спорю. Хотя опять же повторюсь, что это дело привычки.
Аноним 23/01/19 Срд 12:59:34 #347 №1333269 
>>1333267
> >жрать говно плохо
>Я думаю, что это все-таки дело привычки
Ясно.
>Не знаю ничего
Понятно.
Аноним 23/01/19 Срд 12:59:53 #348 №1333271 
>>1333258
Ты вот не знаешь даже, о чем говоришь. Не все пользователи пхп быдло и дебилы.

>А, так ты лахтинский.
Это что?
Аноним 23/01/19 Срд 13:02:41 #349 №1333276 
>>1333267
>Я думаю, что это все-таки дело привычки, да и в последних версиях ввели синтаксический сахарок некоторый.
Нет. Дело привычки - это синтаксис хаскеля, например, J или, не знаю, лиспа. Я вот не умею глазами парсить лисп, но у меня нет вопросов, что это дело привычки.
А здесь именно что антиэстетичность. А то, что ты этого не видишь - за это собственно пхпшников и не любят.
>На руби не писал, не люблю узкоглазых
Еще и расист. При этом "не все пользователи пхп быдло и дебилы". Ну да, не все, но где они?
>питон мне не полюбился синтаксисом
А пхп полюбился.
Аноним 23/01/19 Срд 13:03:09 #350 №1333277 
>>1333271
>Не все
Стадия торга, хаха.
>Это что?
Лахта маняврирует, как это мило.
Аноним 23/01/19 Срд 13:03:24 #351 №1333279 
>Все знают, что хохлов никто не любят, но украинский язык занял первое место по красивости и приятности звучания в каком-то году
Ну да, "не все пользователи пхп быдло и дебилы"
Аноним 23/01/19 Срд 13:05:51 #352 №1333283 
ЗАЕБАЛИ КОРМИТЬ ЕГО
Аноним 23/01/19 Срд 13:07:48 #353 №1333286 
>>1333283
Так надо же помочь голодающему 15 рублей заработать, милосердие же.
Или ты не православный и Путина не любишь?
Аноним 23/01/19 Срд 13:30:57 #354 №1333303 
>>1333286
>>1333286
Ща в ебло получишь, мразь.
Аноним 23/01/19 Срд 13:32:49 #355 №1333308 
>>1333303
Зарепортил этого русофобствующего аметиста-нацпредателя.
Аноним 23/01/19 Срд 13:37:48 #356 №1333314 
>>1333276
>А здесь именно что антиэстетичность. А то, что ты этого не видишь - за это собственно пхпшников и не любят.

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

>Еще и расист. При этом "не все пользователи пхп быдло и дебилы".

Ну это мои личные убеждения, к языку, на котором я пишу это никак не относится.

>А пхп полюбился.
Ну да, как хочу, так и пишу.
Аноним 23/01/19 Срд 13:39:00 #357 №1333315 
>>1333314
>почему не любят именно пхп, а не сам язык
>именно пхп, а не сам язык
Ты шизофреник?
Аноним 23/01/19 Срд 13:41:57 #358 №1333318 
>>1333315
Ой, описался. Почему не любят пользователей пхп, а не сам язык.
Аноним 23/01/19 Срд 13:45:44 #359 №1333321 
>>1333318
>Ой, описался.
>этот шизофреник с энурезом
Очаровательно :3
>Почему не любят пользователей пхп
Потому что тупые и/или быдло и энурезники, хаха
Аноним 23/01/19 Срд 13:53:56 #360 №1333329 
>>1333321
Дурачок ты.
Аноним 23/01/19 Срд 13:57:08 #361 №1333334 
>>1333329
>эта ОБИДА
Не плачь, глупышка, все равно я тебя люблю :3
Аноним 23/01/19 Срд 14:04:50 #362 №1333341 
>>1333314
>не любят именно пхп, а не сам язык
Чтоу
>Антиэстетичность это тоже субъективизм чистой воды.
Ну да, субъективизм, например, хирург может вообще не понять, что я имею в виду.
Но если я вижу программиста, который этого не понимает, то для меня он не совсем программист уже. Потому что его субъективный мир допускает такую каку.
Аноним 23/01/19 Срд 14:07:06 #363 №1333342 
>>1333341
>Чтоу
А ты не из быстрых на хаскеле лениво пишешь, да?
Аноним 23/01/19 Срд 14:08:16 #364 №1333343 
>>1333334
>>1333334
А я тебя нет.

>>1333341
То есть ты даже не допускаешь хотя бы мысли о том, что твой субъективный мир может отличаться от субъективного мира другого программиста?
Аноним 23/01/19 Срд 14:15:25 #365 №1333348 
>>1333343
>субъективный мир
>эта гуманитарная маня
Ясно.
>А я тебя нет.
>эта кокетничающая маня
Понятно.
Аноним 23/01/19 Срд 14:18:23 #366 №1333350 
>>1333348
Вали нахуй из моего треда, пиздоглазое мудило.
Аноним 23/01/19 Срд 14:21:11 #367 №1333351 
>>1333342
Для тебя это может быть шоком, но я на дваче не живу
>>1333343
>То есть ты даже не допускаешь хотя бы мысли о том, что твой субъективный мир может отличаться от субъективного мира другого программиста?
При чем тут субъективный мир. У любой профессии есть стандарты. Например, я допускаю, что людям может нравиться здание театра et cetera в Москве, но если такой человек скажет, что он архитектор, для мне он не будет архитектором, он будет долбоебом. Потому что с точки зрения архитектуры этот театр пиздец. И архитектор тебе даже формально распишет, почему это пиздец, но для этого достаточно взгляда.
То же касается и пхп. Этот язык один из самых страшных из существующих. И если кто-то этого не видет, это не программист. Как вот тут >>1332753
смотришь на код, и видишь, что человек не программист, а учится. Субъективно? Возможно. Неверно? Нет.
Аноним 23/01/19 Срд 14:26:00 #368 №1333355 
>>1333351
Судить о вещах по их форме, а не содержанию это удел формалистов. Ты же не из этих, верно?
Аноним 23/01/19 Срд 14:38:47 #369 №1333363 
>>1333350
>КУДАХ БАБАХ КУКАРЕКУ
Ясно.
Понятно.
>>1333351
>но я на дваче живу
Это заметно.
>>1333355
>пхпдрисня
>содержанию
Утонченный копрофил пропагандирует, хаха.
Аноним 23/01/19 Срд 14:41:07 #370 №1333367 
>>1333363
Хаха, кукареку, хаха.
Аноним 23/01/19 Срд 14:41:40 #371 №1333368 
>>1333367
>кукареку
As expected.
Аноним 23/01/19 Срд 14:42:29 #372 №1333370 
>>1333368
Тебя твоим же оружием.
Аноним 23/01/19 Срд 14:45:24 #373 №1333372 
>>1333370
>эта воинственная маня
Прелесть какая :3
Аноним 23/01/19 Срд 14:48:19 #374 №1333375 
>>1333355
Я программист, чувак. Конечно я формалист. А если ты не формалист, то хули ты забыл в программировании. Иди стихи пиши
Аноним 23/01/19 Срд 15:02:21 #375 №1333382 
>>1333375
А если ты формалист, значит, у тебя нет фантазии, только промышленное мышление, решение проблемы в лоб. Это плохой программист.
Аноним 23/01/19 Срд 15:18:18 #376 №1333387 
Лол, первый раз такое вижу в сисяче. Что вы тут устроили?
Аноним 23/01/19 Срд 15:18:24 #377 №1333389 
>>1333382
>решение проблемы
Гуманитарный пхпдаун рассуждает о решении проблем (с) картина маслом, Иероним Босх
Аноним 23/01/19 Срд 15:19:08 #378 №1333390 
>>1333387
>Что вы тут устроили?
К нам приехал цирк!
Или зоопарк, тут пока непонятно.
Аноним 23/01/19 Срд 16:11:06 #379 №1333423 
eiwjgxotbhxtvbc7qijy0nt6rky.jpeg
>>1333390
>>1333389
>>1333387
Набег школьников по всем тредам, словно каникулы начались
Аноним 23/01/19 Срд 20:39:20 #380 №1333539 
>>1333109
Можно и calloc. calloc() - это malloc() + memset() в наивной реализации.
Аноним 23/01/19 Срд 20:59:21 #381 №1333549 
>>1333016
Мне 35, я инженер, большей частью имею дело с ТРИЗ.
Давай, рассказывай мне про математически строгие абстракции.
> советским учебникам
Лютейшее дерьмо, есть буквально один-два учебника в каждой области, но и они говно по сравнению с западными.
Последний раз годные учебники были еще при Сталине, потом все говно.
Аноним 23/01/19 Срд 21:06:58 #382 №1333551 
>>1333549
Ты видел сталинские учебники?
Аноним 23/01/19 Срд 21:11:32 #383 №1333555 
Проблема с динамической памятью в двумерном массиве.
https://ideone.com/flp1E0
Одномерный массив компилятор пропускает, но двумерный почему-то не хочет. Как заставить пропускать?
Аноним 23/01/19 Срд 21:17:02 #384 №1333556 
>>1333555
>scanf("%i ", &razmer);
Вот здесь ошибка, думай.
Аноним 23/01/19 Срд 21:27:06 #385 №1333571 
>>1333555
1) Инициализаторов в структурах (5 строка) в Си нет.
2) razmer + 5 это неправильный размер динамического массива, судя по циклам ниже. Возможно, ты хотел умножить?
3) Многомерных массивов в Си нет, но ты можешь делать массив массивов. Например, массив из razmer массивов по 5 char. Если на стадии компиляции известно хотя бы последнее измерение (5), ты можешь заставить компилятор индексировать динамический массив, например, так: https://ideone.com/WAGTWz Если нет, то Си тебе ничем помочь не может, и для массива n ∗ m (n строк по m элементов), ты получаешь из строки i элемент j вручную с помощью выражения типа array[i ∗ m + j].

>>1333556
Нет там ошибки.
Аноним 23/01/19 Срд 21:32:15 #386 №1333576 
>>1333571
>массив массивов
Говно тупого говна в большинстве случаев.
Аноним 23/01/19 Срд 21:40:40 #387 №1333582 
>>1333571
Многомерных массивов в Си нет? Што? А massiv[x][y][z] это какой, одномерный?
Аноним 23/01/19 Срд 21:47:53 #388 №1333586 
>>1333582
Многомерный массив - это такой тип, который хранит все размерности сразу. Т.е., условный многомерный massiv[x,y,z] - это массив с тремя размерностями x, y и z.

> А massiv[x][y][z] это какой, одномерный?
Да. Это (одномерный) массив из x элементов, каждым из которых является (одномерный) массив из y элементов, которые являются (одномерными) массивами из z элементов. Эту конструкцию можно использовать, как многомерный массив, но "настоящим" многомерным массивом она от этого не становится.
Аноним 23/01/19 Срд 21:53:35 #389 №1333593 
>>1333582
Учитывая, как надо изъебнуться, чтобы передать в функцию указатель так, чтобы пользоваться arr[j][k], а не arr[isi+jsj+k] - их нет.
Аноним 23/01/19 Срд 21:57:58 #390 №1333596 
>>1333593
Текст пожрал долгоносик, но суть ясна.
Аноним 23/01/19 Срд 22:04:29 #391 №1333600 
>>1333593
Просто передаешь не указатель, и не массив, а указатель на массив. Я бы не назвал это таким уж сильным изъебом.
Аноним 23/01/19 Срд 22:43:51 #392 №1333620 
Весьма познавательное дерьмо:
https://www.chiark.greenend.org.uk/~sgtatham/mp/
Аноним 23/01/19 Срд 23:51:24 #393 №1333647 
>>1333571
>https://ideone.com/WAGTWz
невозможно преобразовать "void " в "char ()[][5]"
Аноним 24/01/19 Чтв 00:22:22 #394 №1333655 
>>1333647
Потому что не надо компилировать C в компиляторе, предназначенном для C++.
Аноним 24/01/19 Чтв 00:27:16 #395 №1333659 
>>1333655
Что может компилятор для C, то может и для C++, а твой код просто не работает.
Аноним 24/01/19 Чтв 00:30:39 #396 №1333660 
>>1333659
То, что ты написал, доказывает, что не может.
sage[mailto:sage] Аноним 24/01/19 Чтв 00:32:53 #397 №1333664 
>>1333551
Майнкампф называется.
Аноним 24/01/19 Чтв 00:47:33 #398 №1333677 
>>1333659
В Си указатели на void сами отлично кастятся в указатели на другие типы, в крестах нужен явный каст. Добавь каст у calloc(), и все заработает.
Аноним 24/01/19 Чтв 01:01:52 #399 №1333685 
>>1333677
Это ненужная условность, которую в крестах сделали обязательной?
Аноним 24/01/19 Чтв 01:02:26 #400 №1333686 
Анон, в универе на уровне оси(убунты вроде) заблокирован запуск компилятора(ссылается на права) во время экзамена. Есть теоретическая возможность запуска/компиляции проги на си без gcc и ко?
Аноним 24/01/19 Чтв 01:05:48 #401 №1333688 
>>1333686
Не знаю, в моём универе на всех компах стоит десятка. Лицензионная.
Аноним 24/01/19 Чтв 01:09:01 #402 №1333689 
>>1333685
В то время, когда это дизайнили, никто не писал сложных крупных программ. Поэтому необходимость каста в крестах - это шаг в правильную сторону. Еще бы неявный каст между целочисленными типами убрали, и было бы совсем заебись.

>>1333686
Зависит от того, какие именно там права. Если для тебя r нету, то ничего не сделать. Если такая проблема только у gcc/cc, можешь научиться самостоятельно, без драйвера дергать все эти cpp, сс1, as и ld. Или, может быть, у тебя есть возможность заранее притащить и спрятать по-тихому какой-нибудь tcc?
Аноним 24/01/19 Чтв 09:13:11 #403 №1333741 
>>1333686
>заблокирован запуск компилятора

Кросс-компилируй на телефоне!
Аноним 24/01/19 Чтв 10:40:55 #404 №1333774 
>>1332602
> C с диезом

это что? с шарпом чтоли?
Аноним 24/01/19 Чтв 10:48:05 #405 №1333779 
Анон, а как потоковый шифр расшифровать? Откуда ту же самую гамму взять, если она псевдослучайна, она сохраняется где-то?
Аноним 24/01/19 Чтв 17:52:30 #406 №1334139 
>>1333689
Анончик, шаришь в с++?
Какая у тебя сфера работы?
Аноним 24/01/19 Чтв 18:10:48 #407 №1334153 
>>1333551
По лиспу?
Аноним 24/01/19 Чтв 18:17:42 #408 №1334159 
>>1333549
>Мне 35, я инженер, большей частью имею дело с ТРИЗ.
ТРИЗ - шарлатанство, если ты в 35 это не понял, то ты не инженер, а так, символ деградации российской промышленности.
Аноним 24/01/19 Чтв 19:08:56 #409 №1334213 
>>1334159
Чини детектор, я в СШУ живу и работаю уже 15 лет, в сфере высокоточной обработки сплавов. Российской промышленности блядь. У нас курсы и семинары по TRIZ хз имеет ли отношенин этот ТРИЗ к оригинальному.
Аноним 24/01/19 Чтв 19:37:58 #410 №1334233 
>>1334159
>ТРИЗ
Че за ТРИЗ? В вике прочитал по диагонале так говно какое то, магия уровня нейродолбоебов, лол
Аноним 24/01/19 Чтв 20:44:59 #411 №1334267 
40243.jpg
>>1334233
О, а вот и малолетние долбоебы подъехали.
Поссал тебе по диагонале в ротеш, лоллируй.
Аноним 24/01/19 Чтв 20:47:45 #412 №1334270 
>>1334267
Дебилы*
Аноним 24/01/19 Чтв 21:43:00 #413 №1334307 
>>1333779
Ээээ. Именно потому что она псевдослучайна, ее можно воспроизвести, зная секрет (значение, которым инициализирован генератор, зерно). Вот если бы она случайна была, то ее пришлось бы хранить и заранее передавать, и у тебя бы получился классический OTP.
Аноним 24/01/19 Чтв 21:52:37 #414 №1334309 
>>1334267
>Поссал тебе по диагонале в ротеш
Словно что то плохое, а вот ТРИЗ это говно, да.
Аноним 25/01/19 Птн 07:06:24 #415 №1334433 
>>1334309
Говно - это быть школодебилом (вроде тебя)
Все остальное на твоем фоне не так уж и плохо.
Кретин с сигарой !03BA8gvmdc 25/01/19 Птн 07:36:35 #416 №1334441 
>>1334309
ТРИЗ всего лишь современный метод разработки систематизированый по опыту предыдущих изобретателей. Ещё в совке были всякие технологические прогнозирования без задач при РАН. Морфологический анализ комбинаторика выбора из существующих вариантов, а ТРИЗ на новые решения больше нацелен.
Аноним 25/01/19 Птн 10:18:21 #417 №1334496 
>>1334441
ТРИЗ - это шарлатанство для зарабатывания бабок на тренингах
Аноним 25/01/19 Птн 13:05:12 #418 №1334550 
>>1334441
>ТРИЗ всего лишь современный метод разработки систематизированый по опыту предыдущих изобретателей.
Ну и чего там за последние 50 лет наизобретали? Как жгли динозавров в цилиндрах так и жгут, как петарды хуярили в недокосмос так и хуярят.
Аноним 25/01/19 Птн 13:17:59 #419 №1334553 
>>1334550
двачую. Никаких изобретений с этим потреблядством. Только транзисторы уменьшаются, вот и вся революция.
Аноним 25/01/19 Птн 14:24:25 #420 №1334571 
>>1334550
Квантовые пекарни перевалили за 10 когерентных кубит. Неслыханная дерзать для последних 50 лет.
Аноним 25/01/19 Птн 14:28:12 #421 №1334572 
>>1334571
>Квантовые пекарни
Какое то маркетинговое оверхайповое говно, я бы этим квантовым маняматикам платил бы зарплату в квантовых состояних, типа одновременно деньги уже потрачены на все ништяки и в итоге 0, распишитесь.
Аноним 25/01/19 Птн 14:43:36 #422 №1334579 
>>1334572
Ну, говорят, что поиск по БД сокращает на треть без хешей даже. Для огромных БД это неслыханная экономия. Им это и выгодно.
Когда-нибудь на Сях будут писать даже для квантовых архитектур. Да и для меня тоже интересно, ведь заставляет мыслить иными категориями. Логические вентили там не классические NOR, AND, OR, XOR, NXOR, NAND, NOR а вентили смены поляризации по фазам в цикле 3600. Так если поляризацию поставить 50/50по фазе либо на 900 либо на 2700, то получится аппаратный генератор случайных чисел и кубит будет схлапываться в 1 или 0 с шансом 50 на 50. Полезно, если ржаветь начну, но само собой классическую бинарную логику они никогда не вытеснят. Зато в хуйлоаде пригодится.
>типа одновременно деньги уже потрачены на все ништяки
Нихуя, они только по бумагам будут в неопределённом состоянии в зависимости от фазы квантовых регистров, а на деле они всегда будут либо однозначно приваливать, либо однозначно утекать хуй пойми куда в квантовые подпространства, лол
Аноним 25/01/19 Птн 14:49:00 #423 №1334580 
>>1334579
>Ну, говорят, что поиск по БД сокращает на треть
Пусть зделоют, будем посмотреть,
>от фазы квантовых регистров, а на деле они всегда будут либо однозначно приваливать, либо однозначно утекать хуй пойми куда
Еще им столовку зделоть с квантовыми состоянимя, типа приходят, а им говорят вы уже пожрали, идите на хуй, вмиг начнут рационально думать, а не нести хуйню.
Аноним 25/01/19 Птн 14:57:35 #424 №1334581 
>>1334580
Не надо про еду. Я кушать хочу. Это больная тема.
...
Давай я лучше про квантовую механику расскажу...
Аноним 25/01/19 Птн 15:05:34 #425 №1334582 
>>1334581
>квантовую механику расскажу
нинадо, там настоль все нафантазировали, что сами уже в это не верят.
Аноним 26/01/19 Суб 07:46:02 #426 №1334980 
>>1330292
Стивенс
Аноним 26/01/19 Суб 07:47:45 #427 №1334981 
>>1330485
isspace(arr[j]) возвращает булево значение, как и этот твой ==, именно такое значение и запихивается в if
Аноним 26/01/19 Суб 12:09:46 #428 №1335067 
Почему
c=getchar() != '\n'
Выдает ошибку lvalue required as left operand of assignment?
Хотя если заклюючить c=getchar() в скобки то все нормально?
Аноним 26/01/19 Суб 13:11:34 #429 №1335131 
>>1335067
В общем разобрался
Аноним 26/01/19 Суб 18:16:29 #430 №1335428 
>>1335131
че было?

Аноним 26/01/19 Суб 18:47:11 #431 №1335453 
>>1335428
Школа
Аноним 27/01/19 Вск 10:25:59 #432 №1335720 
Как сохранить массив флоатов в файл, что бы потом прочитать из оного в такой же массив?
Аноним 27/01/19 Вск 10:45:05 #433 №1335728 
>>1335720
нормализуй, сохраняй мантиссу и экспоненту как целые числа
это легко, на самом то деле..
погугли, епт
Аноним 27/01/19 Вск 10:56:43 #434 №1335732 
>>1335728
А зачем че-то делать, не разумнее просто так записать?
Аноним 27/01/19 Вск 11:21:53 #435 №1335753 
>>1335732
А как? Можно пример?
Аноним 27/01/19 Вск 11:26:43 #436 №1335756 
...Пробую так, но возвращается 33.0

FILE* f= fopen("AlphStep.txt", "wb");
float ff= 12.7;
fwrite(&ff, fsize, 1, f);
fclose (f);

f= fopen("AlphStep.txt", "rb");
float ff2;
fscanf(f, "%f", &ff2);
fclose (f);
Аноним 27/01/19 Вск 13:26:50 #437 №1335819 
>>1335756

Ты записал в бинарном виде, а считываешь обратно как текст. Там fscanf вообще должен был ошибку вернуть, а 33.0 случайно в стеке лежало на месте ff2. Или fprintf вместо fwrite, или fread вместо fscanf используй, тогда норм будет.

Бинарный вид - такое представление в нулях и единицах, с которым уже напрямую работает процессор, когда что-то вычисляет, а текстовый - это когда человеческими цифрами/буквами записано.
Аноним 27/01/19 Вск 13:57:00 #438 №1335830 
>>1335819
Спасибо заменил fprintf`ом. А как теперь лучше записать и считать массив? Тупо в цикле прокручивать каждую цифру? И ещё если мне после запятой достаточно двух знаков, во fprintf`е я могу указать
"%.2f", но во fscanf`е такое не работает?
Аноним 27/01/19 Вск 14:06:53 #439 №1335844 
>>1335753
ну, бля, используешь union чтобы удобно работать с представлением вещественного числа, извлекаешь мантиссу и экпоненту, дальше сохраняешь их как целые числа
изи
Аноним 27/01/19 Вск 14:07:20 #440 №1335847 
>>1335756
так ты потеряешь точность, так не делают
Аноним 27/01/19 Вск 14:10:40 #441 №1335855 
>>1335847
вернее, точность ты все равно потеряешь
но сериализацию ты делаешь уже с требуемой endianess
все легко!
Аноним 27/01/19 Вск 14:32:27 #442 №1335881 
>>1335830
Зачем scanf сообщать число знаков после запятой? Сколько по факту есть, столько и пропарсит.
Аноним 27/01/19 Вск 14:44:28 #443 №1335890 
>>1335756
В wb добавь плюс к, и читай зеркальной функцией fread
Аноним 27/01/19 Вск 15:00:27 #444 №1335902 
>>1335890
И имеешь ввиду fopen("AlphStep.txt", "wb+k" ); ? Так вообще не работает.
Аноним 27/01/19 Вск 15:05:21 #445 №1335908 
>>1335902
...Во работает вроде:
FILE* fl= fopen("AlphStep.txt", "wb");
float x1[]= {12.3, 7.5, 9,0, 0, 6, 1.1};
fwrite(x1, fsize, _countof(x1), fl);
fclose (fl);

fl= fopen("AlphStep.txt", "rb");
float x2[64];
fread(&x2, fsize, _countof(x1), fl);
fclose (fl);
Аноним 27/01/19 Вск 15:14:18 #446 №1335920 
>>1335902
К -очепятка
Аноним 27/01/19 Вск 15:17:34 #447 №1335923 
>>1335908
Ой, там в fread амперсанд лишний, хотя и так и сяк работает, хм.
Аноним 27/01/19 Вск 15:29:07 #448 №1335934 
вы в норке то шебуршили хоть раз
Аноним 27/01/19 Вск 15:30:58 #449 №1335940 
>>1335934
да
Аноним 27/01/19 Вск 19:14:13 #450 №1336225 
изображение.png
Существует ли Русская локализация для крестов, как типа разные версии 1С Предприятие, который помимо оригинальной версии с командами на Русском есть с командами и на других языках?
Аноним 27/01/19 Вск 20:17:21 #451 №1336297 
>>1335940
пизда!
Аноним 27/01/19 Вск 21:05:43 #452 №1336342 
>>1335720
> Как сохранить массив флоатов в файл
Можно записать просто так, вот банальным fwrite. Гарантируется, что в пределах одной машины все прочитается без проблем. На самом деле прочитается на любой машине, которую ты сможешь найти, если совпадает endianess, потому что IEEE754 умеют все. Если хочется максимум переносимости (C99 и выше), то fprintf(fp, "%a", number).

>>1335844
Очень костыльный и сложный метод, не стоит так делать.
Аноним 27/01/19 Вск 23:50:31 #453 №1336459 
photoeditorsdk-export.png
Что я делаю не так?
Аноним 28/01/19 Пнд 00:03:36 #454 №1336465 
Я извиняюсь, шарпы тут?
Аноним 28/01/19 Пнд 00:05:45 #455 №1336466 
>>1336459
Массив нужно заполнять и выводить циклами.
sage[mailto:sage] Аноним 28/01/19 Пнд 00:05:55 #456 №1336467 
>>1336465
У них свой тред .NET. Ищи.
Аноним 28/01/19 Пнд 00:13:35 #457 №1336469 
>>1336342
> и в
поверь мне как правильно сериализовать вещ числа, знают всего лишь несколько человек в мире и ты явно в их число не входишь ))
Аноним 28/01/19 Пнд 00:30:30 #458 №1336475 
>>1336467
Значит шарп далек от крестов? И шарп дабе не сиподобный, как заявлено в шапке?
Аноним 28/01/19 Пнд 00:51:48 #459 №1336479 
>>1336469
> поверь мне
Не поверю. Для тебя сделали %a, которая сериализует и восстанавливает без проблем. Это если про плавающую точку говорить. С фикседпоинтом все сложно.
Аноним 28/01/19 Пнд 01:37:38 #460 №1336492 
>>1336469
Бинарное представление вещественых чисел стандартизовано. Ничего знать не нужно.
Аноним 28/01/19 Пнд 10:44:43 #461 №1336558 
>>1336459
>>1336466
Что-то вы, уважаемый, хуйню какую-то сказали про циклы. Просто анон считал один символ, а остальное - мусор ('i' на второй позиции попалось, '\0' на седьмой). %s строки считывать надо, как и выводить
Аноним 28/01/19 Пнд 13:19:45 #462 №1336613 
>>1334307
Спасибо, анон, я вроде как и сам вкурил!
Раз ты в теме, дай совет. Я хочу написать сам что-нибудь связанное с безопасностью и/или сетями. Есть книги, ресурсы или идеи по теме? Может какой-то простенький протокол, который можно реализовать? Если честно даже простеший A5/1 по RFC нихуя не понятен. Пару лет назад читал том Олиферов по Сетям-нихуя не понятно было, на практике как-то лучше идёт.
Аноним 28/01/19 Пнд 13:25:08 #463 №1336617 
>>1336492

Давай я запишуна шиндовс-х86 float32 в файл , а ты его на PowerPC Mac из файла прочитаешь.
Аноним 28/01/19 Пнд 13:27:47 #464 №1336620 
>>1336617

Или еще лучше, давай я на PlayStation 2 запишу валидный float32 в файл, а ты из него прочитаешь +-Inf или NaN.
Аноним 28/01/19 Пнд 13:27:52 #465 №1336621 
>>1336558
Всё верно, проглядел %c, спасибо <3
sage[mailto:sage] Аноним 28/01/19 Пнд 13:31:39 #466 №1336622 
>>1336475
>Значит шарп далек от крестов? И шарп дабе не сиподобный, как заявлено в шапке?

Значит тред посвящен только чистому С.

И все крестолюбы шарполюбы и жаболюбы идут в соответствующие их тематике другие треды.

Список тредов в шапке раздела.
Аноним 28/01/19 Пнд 13:35:56 #467 №1336626 
>>1335908
>>1335902
>>1335830
>>1335756

Пацаны че вы как ламеры файловый ввод-вывод дрочите?

Хуяк-хуяк:

> fd = fopen("foo", O_RDONLY);
> pagesize = getpagesize();
> data = mmap((caddr_t)0, pagesize, PROT_READ, MAP_SHARED, fd, pagesize);

И файл уже в оперативе так-то. Берем указатель data и дальше кастуем как хотим, дрочим байты как хотим. Никаких циклов-хуиклов.
Аноним 28/01/19 Пнд 16:27:08 #468 №1336708 
>>1336626
Действительно. Тут люди про переносимость на уровне архитектуры думают (endianness). Не понятно, с чего бы у кого-то #include <sys/mman.h> вызвало вопросы. Кому линуксовые фичи не завезли, тот не программист... А вообще:
- чувак, как интеграл вычислить?
- чего ты как ламер? Загугли "scientific calculator online" и будет тебе счастье..
Тут люди целенаправленно основы изучают, а ты им юзерские ништяки предлагаешь.
Аноним 28/01/19 Пнд 16:36:50 #469 №1336713 
>>1336708
Читай: препод на лабах запрещает mmap использовать
Аноним 28/01/19 Пнд 16:37:33 #470 №1336714 
>>1336626
> И файл уже в оперативе так-то
Нет. Файл будет читаться понемногу, разве что делать это будет ядро, а не ты. Причем медленнее, чем если бы ты выделил память и прочитал туда файл за раз.
> дрочим байты как хотим
Тут-то я и достаю флешку, с которой ты этот файл открыл.

>>1336617
В PowerPC кроме как с endianess проблем нет. Свопаешь байты и живешь спокойно.

>>1336620
> а ты из него прочитаешь +-Inf или NaN.
Если ты пишешь NaN в файл, у тебя проблемы с головой, а не с представлением чисел.
Аноним 28/01/19 Пнд 16:39:09 #471 №1336715 
>>1336626
fopen? Ты ничего не перепутал?
Аноним 28/01/19 Пнд 16:46:49 #472 №1336717 
>>1336713
Стало быть, я недостаточно очевидно обозначился, как третье лицо. Чувак, это не у меня препод и лаба. И у того анона тоже не факт. Может для собственного развития пробует в ручную запись и чтение числовых данных с использованием буферов. И, кстати, чтоб просто несчастный массив вычитать, только быдлокодер станет дергать mmap(). Есть подозрения, что веду диалог с наполовину троллем, наполовину любителем похвастать, что читал Advanced Linux Programming. Это все мимо кассы.
Аноним 28/01/19 Пнд 18:20:53 #473 №1336761 
1545655093127940488.jpg
>>1329854 (OP)
Сисюеы, нужно заебенить по шариату кросплатформенное логирование мнгопроцессной йобы, как там по канонам делоть?
Аноним 28/01/19 Пнд 18:24:32 #474 №1336762 
>>1336225
Нет. Очень странно, но нет.
Аноним 29/01/19 Втр 07:55:42 #475 №1337199 
>>1336714
>Если ты пишешь NaN в файл, у тебя проблемы с головой, а не с представлением чисел.

https://wiki.pcsx2.net/PCSX2_Documentation/Nightmare_on_Floating-Point_Street
Аноним 29/01/19 Втр 16:07:13 #476 №1337428 
Что за t_
который везде пихают?
часто вижу,
t_list
t_point
t_bool
Аноним 29/01/19 Втр 16:26:54 #477 №1337435 
>>1337428
Type
Аноним 29/01/19 Втр 16:28:08 #478 №1337437 
>>1337435
да, но как это понимать
Аноним 29/01/19 Втр 19:44:03 #479 №1337507 
>>1337437
Чтоб не путаться в пространстве нормальных имен. Позволяет избежать конфликта имен. Вряд ли ты назовешь переменную t_varname, но вполне может захотеться написать point, и будь тип назван так же без префикса - +1 лишний стресс. Есть вариант с суффиксом zalupa_t, но это в POSIX зарезервировано (pthread_t, ...), так что нежелательно.
Аноним 29/01/19 Втр 19:48:23 #480 №1337512 
>>1337199
И что это доказывает? NaN - это такая штука, которая говорит, что твоим вычислениям пришла пизда. Нет никакой необходимости писать заведомо бесполезные результаты в файл или читать их оттуда. Тем более на PS2.
Аноним 29/01/19 Втр 21:54:20 #481 №1337600 
>>1337507
>>1337428
Нет, это для того что бы когда код переносишь на другую ОС\Язык , менять под их типы данных.
Аноним 30/01/19 Срд 06:50:37 #482 №1337717 
>>1333774
С хэштегом бля.
Аноним 30/01/19 Срд 13:02:40 #483 №1337824 
Анон, где можно прочитать про видимость функций в Си?
Где переменная создается, где им можно пользоваться, структура, массив.
А то иногда передаю указатель из функции в функцию, а компилятор жалуется , что данные локальные
Аноним 30/01/19 Срд 13:26:24 #484 №1337834 
>>1337824
Под локальный массив место в стеке выделяется. Как только функция возвращается, никто этот отрезок RSP-RBP не защитит от перезаписи другими вызовами. Warning как раз намекает, что ты стреляешь на удачу. На высоком уровне абстракции не может быть внятной инфы, как это все работает. Чисто high-level категориями описываются другие языки, которые без указателей. Или покорно следуешь правилам, к чему можно обращаться, а к чему нельзя, мирясь со своим положением и не пытаясь вникать, что за магия больших дядь под этим лежит, или читаешь, как работает сегмент стека, heap, malloc и free (new и delete) и т.д. Любая нормальная книжка по Assembly начинается с этой теории. За вечерок(-другой, если туго) перевариваешь, и потом никаких вопросов, подводных камней, исключений, частных случаев и прочей поеботы, одно счастье и Сишечка one love.
Аноним 30/01/19 Срд 13:55:23 #485 №1337840 
>>1337824
Ты не поверишь, но в книжке с оппика
Аноним 30/01/19 Срд 14:56:37 #486 №1337867 
image.png
>>1337840
Вот это поворот
Аноним 30/01/19 Срд 19:40:18 #487 №1338088 
Capture.JPG
Эксперты, я запутался.
Почему корректно возвращает целую часть? Почему не странный мусор от прочтения double как int?
Возврат функции автоматически кастует?
Аноним 30/01/19 Срд 19:54:19 #488 №1338093 
>>1338088
А ты распечатай z прямо в функции и посмотри.
Аноним 30/01/19 Срд 19:59:02 #489 №1338096 
>>1338088
да, там ведь return z; явно по контексту анализируется: return type - int, z type - double. Вот возвращался бы указатель - уже бы хрен что внятное распечаталось.
Аноним 30/01/19 Срд 20:02:09 #490 №1338098 
>>1338088
Потому что функция возвращает int, и Си автоматически преобразовывает тип, как если бы было:
int return_value = z;
return(return_value);
Аноним 30/01/19 Срд 20:02:40 #491 №1338099 
>>1338088
>Почему не странный мусор от прочтения double как int?
>int myfunc(...)
Хм...
Аноним 30/01/19 Срд 20:06:45 #492 №1338105 
>>1338088
Добавлю:
> Почему не странный мусор от прочтения double как int?
Это когда printf("%d\n", 1.0);? Дело в том, что printf(fmt, ...) - функция с переменным числом аргументов, и ни Си, ни сама функция не знают, что ей передали в ..., поэтому компилятор не может ни контролировать тип на самом деле может, сейчас в компиляторах есть костыль, который парсит форматную строку, если она доступна, ни преобразовать его в описанный форматной строкой. Поэтому все передается как есть, и printf, когда читает %d, читает int, несмотря на то, что был передан double. А вот в твоем примере вся информация о типах доступна, поэтому все само конвертируется.
Аноним 30/01/19 Срд 20:07:59 #493 №1338107 
Capture.JPG
>>1338096
Спасибо!

>>1338098
> Си автоматически преобразовывает тип
Я проебал этот момент. Сижу на измене, а что еще несущественного я проебал?

>>1338093
На пике приложил, мусор есть.
Аноним 30/01/19 Срд 20:09:59 #494 №1338110 
awesome.jpg
>>1338105
Спс
Аноним 30/01/19 Срд 20:16:30 #495 №1338115 
>>1338107
Все правильно, молодец.
Аноним 30/01/19 Срд 20:37:12 #496 №1338146 
>>1338115
>>1338105
Еще чуток вашего внимания:
Я так понимаю, это конвертируется компилятором. Вопрос - это в соответсвии со стандартом? Где это искать вообще?
Уточню: возвращает int и конвертирует в int я понимаю что разные вещи.
Аноним 30/01/19 Срд 20:45:05 #497 №1338165 
return.png
>>1338146
> Вопрос - это в соответсвии со стандартом? Где это искать вообще?
C11 6.3 Type conversions, 6.8.6.4 Return statement (пикрил).

> возвращает int и конвертирует в int я понимаю что разные вещи.
Сначала конвертирует (если нужно), потом возвращает.
Аноним 30/01/19 Срд 20:52:32 #498 №1338176 
>>1338165
Добра счастья любви и денег тебе и всем в этом треде
Аноним 31/01/19 Чтв 12:31:26 #499 №1338534 
>>1338107
а как ты в файл выводишь?
Аноним 31/01/19 Чтв 16:13:42 #500 №1338633 
>>1338534
В винде - редирект:
cmd
mytest.exe > output.txt
У Праты это разжевано предельно.
Аноним 01/02/19 Птн 08:27:47 #501 №1339066 
richi.PNG
Не могу разобраться с пиком. Почему мы сдвигаем x на p+1-n? Разве над сдвигать не просто на p?
Аноним 01/02/19 Птн 09:23:12 #502 №1339085 
>>1339066
Зависит от того считаешь ты биты слева направо или справа налево от точки сдвига.
Аноним 01/02/19 Птн 11:13:11 #503 №1339163 
ф.PNG
>>1339085
Биты считаются справа налево
Аноним 01/02/19 Птн 15:41:19 #504 №1339332 
12eaa83a186435af3b0d14f244343d8e.jpg
>>1339163
>справа налево
Аноним 01/02/19 Птн 19:16:44 #505 №1339424 
Screenshot 2019-02-01 at 19.14.55.png
Поч сегментейшн фолл, не пойму. Варов и ошибок нет
Аноним 01/02/19 Птн 20:21:30 #506 №1339501 
>>1339163
> Биты считаются справа налево
Потому что тут тебя намеренно запутывают. Тут биты в байте считаются справа налево, но p указывает самый старший (самый левый) бит в битовом поле. Поэтому и такое выражение. Если бы считали справа как люди (getbits(x, 3, 4) = взять 4 бита, начиная с третьего, т.е., 3, 4, 5, 6), тогда бы ты сдвигал просто на p.

>>1339424
> Поч сегментейшн фолл, не пойму
И мы по огрызку кода тоже не поймем. Может быть, у тебя один из файлов не открылся, а ты не проверил?

Аноним 01/02/19 Птн 20:29:11 #507 №1339515 
Screenshot 2019-02-01 at 20.28.18.png
>>1339501
да вроде ничо такого
Аноним 01/02/19 Птн 20:31:07 #508 №1339521 
>>1339515
> fp = fopen(name1)
> fp = fopen(name2)
> да вроде ничо такого
Аноним 01/02/19 Птн 21:23:21 #509 №1339595 
>>1339521
Упс
Аноним 02/02/19 Суб 02:19:24 #510 №1339778 
>>1335067
Приоритет операции != выше, чем операции =. Поэтому надо писать:

(c = getchar()) != '\n'
ПЕРЕКАТ Аноним OP 02/02/19 Суб 02:47:45 #511 №1339789 
>>1339788 (OP)
>>1339788 (OP)
>>1339788 (OP)
>>1339788 (OP)
>>1339788 (OP)
comments powered by Disqus

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