Двач.hk не отвечает.
Вы видите копию треда, сохраненную 11 марта 2019 года.

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

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

Пожалуйста, пользуйтесь 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. Koch@n "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

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

Еще более длинный список: http://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/
2 1329857
Первыйнах
3 1329866
>>29857
Номер поста у тебя второй, маня.
4 1329869
>>29866
Странно. Как ни зайду, тут все время какие-то срачи на пустом месте.
5 1329873
Есть какие нибудь мануалы о том как написать эмулятор процессора, ну там двоичный сумматор и все такое? Хочу лучше разобраться в работе железа, и при том по практиковать Си.
6 1329874
>>29873
Сперва в железе разберись, Петцольда там почитай, для начала очень годно. Потом накидай сам проц в каком-нибудь логисиме, чтобы не париться. Потом переходи на Verilog, наркоман
7 1329875
>>29873

> ну там двоичный сумматор


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

С другой стороны, про работу железа есть Харрисы. Или лекции индусов.
8 1329878
>>29874
Читать без практики мало полезно. Не влезает в голову, и не запоминается. Как я накидаю проц, если не знаю полное его устройство? У Петцольда по моему мнению слишком размыто, обрывками как то. Читал, но цельной картины не получил.

>>29875
Ну это я для примера написал. Вообще хотелось бы понять, насколько отличаются от процессора регистровые виртуальные машины. Что лучше книга Харрисов или Таненбаума? Пробовал читать и то и другое, занудно очень, без практики не заходит. Вот бы была книга, где бы реализовывали регистровую ВМ, аналогичную современному процессору.
9 1329879
>>29873
Алсо, кидал уже сюда статью: http://www.gtoal.com/sbt/ Это на случай, если надоест играться с медленным switch/case и захочется зделать, как у взрослых дядь.
10 1329880
>>29875

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


Для обучения. Чтобы понять как устроен процессор.
11 1329882
>>29878

> Что лучше книга Харрисов или Таненбаума?


Харрисы гораздо, гораздо глубже. Если тебе для общего развития - лучше Таненбаум.

> Как я накидаю проц, если не знаю полное его устройство?


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

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

>>29880

> Для обучения.


Так это... https://www.nand2tetris.org/
12 1329883
>>29878
Запускаешь Logisim @ делоешь.
Сперва АЛУ, потом память (с ней можно не запариваться и взять готовую), связываешь, прикручиваешь управляющие сигналы, после чего долго ебешься с устройством управления и его табличками истинности но я слабак и сделал все на микрокоде.
13 1329884
>>29875
Где сейчас можно скачать свежее русскоязычное издание Цифровая схемотехника и архитектура компьютера? Вроде на оф. сайте уже не скачаешь.
14 1329886
>>29884
Не знаю. Не читаю переводы, если есть возможность найти оригинал. Кому нужна русифицированная терминология, если все статьи - на английском?
15 1330109
>>29886
А зря. Русскоязычное комьюнити намного богаче, чем англоязычное.
16 1330114
17 1330137
>>30114
хрююююю
18 1330140
>>29884
http://gen.lib.rus.ec/ и разные зеркала http://booksdescr.org/ https://b-ok.cc/ https://ambry.pw/ http://bookfi.net/
Но действительно, читай лучше оригиналы. Угрюмова можешь почитать, ничуть не хуже. Методички для студентов тоже неплохие попадаются.
19 1330151
>>29886
Попробуй задуматься, где можно применить знания по цифровой схемотехнике? Или ты принципиальный тракторист?
20 1330184
Есть ли зло хуже, чем errno?
21 1330188
>>30184
goto.
22 1330203
>>30184
Python
23 1330208
error_reporting(0)
24 1330281
>>29879
Ууххх блядь ничего не понял.
Можешь вкратце, чем заменяют CASE/SWITCH взрослые дяди?
чотко.jpg63 Кб, 534x438
25 1330284
>>30137
>>30114
Прекратили оба резко
26 1330292
Господа, подскажите если есть годную книгу по проганью в линухе
27 1330299
>>29882

>Так это... https://www.nand2tetris.org/


Этот израильский акцент, лолблядь ностальжи
28 1330300
>>30292
Так а труды Торвальдства тебе чем не угодили? Финский не знаешь?
29 1330302
>>29879
То есть мы опускаем свитч-кейс и опускаемся сами на уровень ниже, заменяя свитч на кучу побитовых операций. Ну да, так быстрее, но несведущий в железе хуй поймет, как эти побитовые выполняются на процах с разной разрядностью.
30 1330305
>>30300

>труды Торвальдства


Вообще не попадались, только высеры где он в очередной раз что-то поливает говном.
31 1330322
>>30302

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



Там же заменили switch/case на goto по массиву меток. Тогда у нас не будет множества сравнений и нужный адрес перехода будет получен сразу по опкоду.
Но эта штука ломает предиктор переходов, на малом числе инструкций должна проигрывать по скорости.
32 1330357
>>30322
Я не знаю Си, просто предположил, что там делается исходя из своих знаний в джаве. Циклы кстати увидел, флаги увидел, но так и не допер, зачем все это надо. Сишку только начал учить.
33 1330361
>>30305
Я имею ввиду само ядро. Открывай исходники да изучай. Или на чем ты программировать собрался?
34 1330381
>>30357
Потом почитай что-нибудь по ассемблеру и Таненбаума по архитектуре.
35 1330388
>>30322

>Там же заменили switch/case на goto по массиву меток.


Это как-то похоже на специализированный хеш?
Cразу отмечу, я нуб но ты уже сам догадался
36 1330393
>>30388
Ага, ага, сам хотел привести аналогию с хешом. Switch раскроется в if-конструкции, а в методе выше будет jmp на адрес arr[index].
37 1330396
>>30184
Есть ли альтернатива? inb4 исключения

>>30208
Да!

>>30281

> чем заменяют CASE/SWITCH взрослые дяди?


Ну, во-первых, бывает удобнее табличками, а во-вторых, я слегка неправильно выразился. Можно транслировать эмулируемый код в нативный, и выполнять уже его. switch, конечно, останется, но уже в трансляторе, зато однажды оттранслированный код уже можно выполнять быстро, безо всяких switch. Можно делать это статически и итеративно, как в статье, а можно динамически, как делает QEMU.
38 1330400
>>30396

>эмулируемый код в нативный



Так это же JIT-компилятор, а там функциональный симулятор.
39 1330403
>>30400
Там статический транслятор, а JIT - динамический.
40 1330406
>>30396

>Есть ли альтернатива


Нормальные коды ошибки.
41 1330421
>>30403
Окей, при беглом чтении увидел в нем обычный функциональный симулятор.
42 1330458
Мне нужно сделать сравнение if (massiv[x][y] == пробел || massiv[x][y] == отступ)
Как в C выглядит пробел и отступ? Ни \n, ни "\n" не проходят.
43 1330468
>>30458
' ' для пробела и '\t' для табуляции.
44 1330470
>>30458
" "

>отступ


чем отступ отличается от пробела?
45 1330485
>>30458
Есть isspace, он проверяет на все виды отступов. То есть просто
if (isspace(arr[j]))
{
// ...
}
46 1330515
>>30470
Отступ это на строку ниже. Нет?
47 1330516
>>30485
Форма записи именно такая? Никаких == ?
48 1330520
>>30516
Ты блять ебанутый штоле? Иди сука хотя бы одну книжку прочитай, урод блять. А то еще даже синтаксиса не знают, уже пидоры компиляторы качают. ХУЙ СОСИ БЛЯДИНА ЕБАНАЯ
49 1330521
>>30520
Лол. Скрыл тебя.
50 1330522
>>30521
Скрыл его?А я тебе напомню ХУЙ СОСИ БЛЯДИНА ЕБАНАЯ
51 1330524
>>30522
А тебя вообще за шитпостинг зарепортил.
52 1330546
>>30292
https://richard.esplins.org/static/downloads/linux_book.pdf
Все основные возможности упомянуты, но при этом не подавишься избытком инфы. Дальше четкое знание, куда копать по тому или иному вопросу, да и с одной этой книгой уже можно много что сделать.
53 1330548
>>30546
А на Русском языке что-нибудь годное знаешь?
54 1330549
>>30393
С какого перепугу 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 должна выполняться дальше, ведь так было задумано.
55 1330550
>>30548
Не знаю...
Русской литаратуры практически не существует, стало быть, речь идет о переводах. Я перевод этой книжки никогда не искал, а перед гуглом все равны, так что пусть помогает без посредников)
56 1330552
>>30550

>Русской литаратуры практически не существует

57 1330554
>>30552

>сиддхартха

изображение.png42 Кб, 725x467
58 1330556
Откуда при файловом вводе вылезает символ ? Если я пытаюсь завершить вывод массива когда его элемент равен NULL, то он не выводится, но с NULL в условии записи символа в ячеййку массива всё равно попадает в нулевую ячейку.
59 1330562
>>30556
У тебя файл выглядит так: 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 и прочее в фигурные скобки, даже если там одна строка.

Про вменяемые имена переменных и константы вместо магических цифр молчу, это не так принципиально в таком коротком коде. А вот это принципиально. Пока поймешь, что делает твой код, охуеешь, потому что постоянно нужно бегать глазами вверх-вниз между объявлениями переменных и непосредственно тем,что делается.
59 1330562
>>30556
У тебя файл выглядит так: 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 и прочее в фигурные скобки, даже если там одна строка.

Про вменяемые имена переменных и константы вместо магических цифр молчу, это не так принципиально в таком коротком коде. А вот это принципиально. Пока поймешь, что делает твой код, охуеешь, потому что постоянно нужно бегать глазами вверх-вниз между объявлениями переменных и непосредственно тем,что делается.
60 1330563
>>30562
Я всегда обрамлял if в фигурные скобки, если там больше одного двоеточия, но в этот раз что-то забыл. Я хз как это давало мне ту закорючку, но именно фигурные скобки решили проблему. Спасибо, что напомнил.
61 1330565
А можно ли как-то при файловом вводе при выполнении определённого условия переместить курсор программы в начало следующей строки, если на текущей ещё что-то написано?
62 1330585
>>30563
простые expression можно в один statement поместить
if (b != '\n') name = b, ++i, ++a;
и никакие { } не понадобятся
63 1330586
>>30565
ну, до '\n' и выбираешь
while (fgetc (file) != '\n');
64 1330587
>>30585
Ой мудак, ой мудак.
65 1330589
>>30587
почему мудак сразу?) между прочим, это удобно в макросах, когда надо сделать несколько последовательных действий, и в конце еще что-то "вернуть"
66 1330593
>>30589

>это удобно в макросах


Ведь сам же это придумал
67 1330680
>>30562
2 чая анончику!
68 1330694
>>30680
Что, тоже ебёшься с файловым вводом?
69 1330782
>>30589
Это прекрасно делается с помощью do {} while (0), и не надо придумывать своих костылей.
70 1330788
>>30549

>С какого перепугу switch/case раскроется в if/else?


>значит так надо, и должна использоваться jump table для выбора нужного адреса по индексу, а не N ненужных проверок на равенство с небольшим int


Это уже компилятор решает, в данном случае тот же gcc таблицу делать не будет из-за явной потери скорости на inderect-переходах.

>Следующая метка не задает логический конец куска кода под предыдущей, а просто показывает, откуда начать, и в случае, если break опущен, программа по вполне defined behaviour должна выполняться дальше, ведь так было задумано.


И без таблицы переходов абсолютно такое же поведение, он сначала ищет нужную метку по значению, дальше никаких проверок нет.
71 1330864
>>30788
мои пардоны. Опять меня студента занесло. Не подумал про адекватную реализацию цепочки else-if, когда все тесты вначале.
72 1330882
>>29854 (OP)
Нахуй он нужон в 2019? Микроконтроллер на бетономешалке погромировать или нахуя?
73 1330942
>>30882
Нужен для ядра твоей Windows/Linux/MacOS, системного софта, драйверов, интерпретаторов и VM, СУБД, встроенных систем и различных задач, требующих от кода максимальной производительности.
74 1330956
>>30942
Агась. Понятно. Этим занимается ничтожный процент умеющих срать не снимая свой прокуренный свитер, с бородой до хуя и очками толщиной с увеличительное стекло. Остальным 99% бетономешалка?
75 1330961
>>30956

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


Да

>Остальным 99%


На них похуй
76 1330967
>>30956

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


Не всё так плохо, но в целом - близко.
77 1330971
>>30961
Значитца или элитка или полное дно. Нормально. Борода и свитер у меня уже есть, дело осталось за малым. Программировать программирование не имеет смысла, какую литературу читать для специфики, чтобы избежать бетономешалки обосцатой.
78 1330974
>>30971

>Программировать программирование не имеет смысла


Ну ты еще не придумал ебописечку которую нужно оптимизировать и переписывать ни си
79 1330978
>>30974
Это не так работает. Учишься годами никому ненужной хуйне, потом торгуешь попкой на Толоке. Если не сложно покажи вакансии для тех кто смог, чтобы по требованиям было понято хуле им надо кроме свитера и бороды.
80 1330984
>>30978

>Это не так работает


Так

>Учишься годами никому ненужной хуйне, потом торгуешь попкой на Толоке.


Нет

>вакансии


Пиздуй на ХХ
81 1330985
>>30984
Чот долго отвечал, я уж думал путь вам открыл и вы все на толоку сбежали. Ну ладно. Сейчас смотрю вакансии в Миллионной мухосране. 70% 1С погроммист, остальные 30% кресты в сочетании с С#, питончиком. По СИ ни одной. Судя по рынку труда рисковые вы ребята..
82 1330987
>>30882
Си вне времени. Ты сдохнешь через несколько десятков лет, а си будет жить. Он жил в 20 веке, будет жить в 21 веке. Си вечен.
83 1330989
>>30967
>>30961
>>30956
Мне кстати очень приятен внешне этот образ. Я даже иногда видеотрансляции смотрю, как такие вот прогмики пишут что-то сложное на сиплюсплюс или чистом си.
Может даже сделаю этот образ своим личным стилем.
84 1330992
>>30985
А нахера тебе вакансии? На си пишут для себя.
85 1330993
>>30985

>Судя по рынку


Лол, у меня джва стартапа которые нужно оптимизировать, хочешь работать на дядю, тогда да, вкатывайся в 1С
86 1330994
>>30989

>видеотрансляции смотрю, как такие вот прогмики


Давай ссылу, жутко интересно
87 1330995
>>30994
https://www.youtube.com/channel/UCUhQNuTAQ933YBTy6awC0Pw/featured

Вот тут частенько бывает. Владелец канала типикал битард.
88 1330997
>>30993
Стой. Тебя-то я и искал. Извиняюсь за много постов ребята, но в таком деле не помешает определиться стоит ли ввязываться, не на пять минут развлечение. А что ты продаёшь? Подучу там инкремент, указатель, хуё-моё, что знать надо, подетальнее бы.
>>30992

>А нахера тебе вакансии?


Представляю собой анахронизм в виде устаревшего гетеросексуального меньшинства. Не хотелось бы торговать попкой оставшись без денег с навыком 999lvl по погромированию калькулятора.
89 1331000
>>30997

>Представляю собой анахронизм в виде устаревшего гетеросексуального меньшинства.


Надеюсь, это шутка. То, что тебе борда мозги промыла по поводу того, что все геи и битарды, это не отменяет того, что в реальной жизни ничего не меняется.
90 1331001
>>30997

>А что ты продаёшь


Поиск и NLP, там нужны скоростя, так что без вариантов как и в OCR, попробуй в риалтайме 1920x1080 фрейм обработать.
91 1331002
>>30995
И че, там скрины пидерской студии, где ебла в свитерах?
92 1331008
>>31002
Нет, просто чувак сидит и с другими по скайпу код пишет.
93 1331010
>>31008

>и с другими по скайпу код пишет.


Пиздос, ну и на хуй он нужен, я же типаж хотел посмотреть, а не говнокод
95 1331015
>>31012
Типаж смузихлеба с выбритой бородкой, у меня грязная и дырявая майка, волосы с хвостиком завязанные резинкой для денег, самостоятельная борода и пивной живот.
96 1331016
>>31001
Спасибо. Кек. Вы мне нравитесь, вакансий нет, какие-то слова по запросам на которые гугл находит поехавших психологов. Заманчиво, но надо подумать.
97 1331018
>>31016

>Заманчиво, но надо подумать.


А что тут думать, иди на хуй, ты нам не нужен.
98 1331021
>>31015

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



Покажешь примерный типаж на фотке , или скинь свою?
141865695206.jpg182 Кб, 605x907
99 1331040
>>31021

>Покажешь примерный типаж

100 1331047
>>31040
Так это тоже сейчас модно, так что ты не далеко ушел.
101 1331052
>>31047
Мне нравится такая мода, раньше все спрашивали почему оброс как макака, а сейчас вот модно.
102 1331059
>>31052
А я в 2008-2012 вообще ходил с неким подобием каре, как сейчас ходят какие-то школьники. Но я специально так делал, потому что забивал на внешку, чтобы быть не как все, что собственно делаю по сей день.
103 1331063
>>31059

>неким подобием каре


Тоже тема, ну это все равно нужно стричься, а я это дело не люблю
104 1331259
Тупой вопрос, конечно, но никак не могу найти пример интеграции flex и bison в программу. Все примеры как-то сами по себе. Хочу, например, считать конфиг файл, что-то с данными сделать и записать обратно.
105 1331294
>>31259
Нахрена? Есть же стандартные средства.
106 1331312
Где взять таблицу прерываний для i686?
107 1331320
>>31312
Каких именно? Как настроишь APIC, так и будет. А программные так и подавно под твоим контролем.
108 1331328
А вы знали, что в асме можно метки на русском писать?
109 1331336
>>31328
Зависит от ассемблера. В Си тоже можно имена переменных на русском писать, и это тоже зависит от компилятора (в шланге все ок, а в гцц можно только кодировать через \u): https://wandbox.org/permlink/70CQj8G6CNhTpJio
изображение.png8 Кб, 415x495
110 1331386
>>31294

>Нахрена?


Для общего развития и упрощения

>Есть же стандартные средства


В студию?

Писать ручками разбор пикрелейтеда желания нет Не осилю, вернее
111 1331388
>>31259
Я как-то делал такое, но в C# проекте. Все упирается в систему сборки, которой ты пользуешься. Если простым make, то вообще элементарно.
112 1331582
>>31388
Но вообще это неправильно. Надо разобраться зачем вообще эта интеграция.

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

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

Ты должен умело изменять поведение программы, а не лепить зависимости, из-за которых потом нельзя перенести проект.
113 1331628
Что означает строчка

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

>mess.imess.i


Типо умножить обьект структуры (i) на саму себя ?
114 1331631
>>31628
там звездочка после первой i
115 1331652
>>31631
Это не звездочка, а указатель, ХУЕ-МОЕ!
116 1331783
>>31652
в таком случае, что это значит?
Между двумя mess.i и mess.i
117 1331790
>>31652
Где ты там указатель нашел, наркоман?
>>31783
Значение в квадрат возводит.
118 1331801
>>30882
Я, например, учусь программировать, хочу вкатиться.
А ты зачем здесь?
119 1331802
>>30956

> Этим занимается ничтожный процент умеющих срать не снимая свой прокуренный свитер


Умею срать не снимая пуховика, суров.
120 1331834
>>31790
Благодарствую
121 1331836
>>30956
Все верно, лучше иди вебом займись))ведь это щас модно
122 1331848
>>30942

>требующих от кода максимальной производительности.


А почему в геймдеве с++ это стандарт?
На нем легче проектировать? Или в каких-то задачах с++ производительнее?
Я понимаю что это уже сто раз схавано и высрано, но реально не найти нормального объяснения.
123 1331914
>>31582
wut
flex/bison - это программы которые генерят код парсинга, не библиотеки. Тебе нужно скомпилировать этот сгенерированный код как часть твоей программы. Соответсвенно нужно настроить сборку чтобы она запускала flex/bison, а потом компилировала сгенерированный код
124 1331917
>>31848

> легче

125 1332007
Как сделать так, чтобы, например, память выделялась для количества строк или ячеек массива, которое задаётся заранее и может быть меньше, чем объявлено константой в самом коде? Например, я не могу сначала сделать так:
int n;
scanf ("%i", &n);
int massiv[n];
126 1332017
Аноны, посоветуйте, что можно написать такого на Сишке?
Желательно как-то связанное с сетями и безопасностью. Может, малварь какую? Есть какое чтиво по этой теме?
127 1332022
>>32007
malloc
128 1332025
>>32007
А в GCC/MinGW можешь.
129 1332026
>>31914
Да я уже вроде разобрался. Теперь осталось придумать как, например, оттуда заполнять какую-нибудь структуру из моей части программы.
Автор оригинального вопроса
130 1332069
>>31917
Это ирония или что?
131 1332088
Насколько я поехавший, если собираюсь пилить оконное приложение на WinAPI? Какие подводные?
132 1332091
>>32069
Движки очень хорошо пишутся с ООП
133 1332094
>>32091
Без ООП еще лучше.
134 1332109
>>32088
Непереносимо. В остальном ок. Присмотрись к dialog manager, ему можно скормить шаблон окна из ресурсов, заставив делать всю эту кучу CreateWindowEx с проверкой ошибок вместо тебя. Даже если у тебя не диалог на самом деле.

>>32094
Написав в тысячный раз "конструктор" для структуры, ты передумаешь. И много ли ты знаешь сколько-нибудь современных движков на Си? Незаконченный и кривой Corange, да движки стратежек, где все гвоздями прибито к конкретной игре.
135 1332126
>>32109
Зачем мне конструктор. При чем тут Си? Если у тебя движок ассоциируется с ООП, то мне тебя жаль. Культ-карго ООП.
136 1332159
>>32126
А ты что-то подобное хоть раз писал? Обычно такое никто не говорит.
137 1332181
>>32159
Что писал? Что обычно не говорят? Хочешь сказать нельзя написать движок на Си или на Хаскелле, потому что в них якобы нет ООП?
138 1332189
>>32181
Можно хоть на Брейнфаке написать, он Тьюринг-полный.
Вопрос в том, что если сама задача распологает к использованию парадигмы ООП, почему надо избегать подходящего инструмента?
Только потому, что на Си тоже можно?
У меня создается впечатление, что ты залетный петушок, который учебник еще не закончил читать.
139 1332190
Блядь, промахнулся
>>32126 -> >>32189
140 1332196
>>32189
Что там конкретно располагает? И что ты понимаешь под парадигмой ООП? Сдается мне, что ты очередной онально-ориентированный-питух.
141 1332199
>>32196

>ты понимаешь под парадигмой ООП?


Больной? То же самое, что и другие, тебе что, определение сюда скопипастить? Гугл в помощь.

>ты очередной онально-ориентированный-питух


Как что-то плохое
142 1332206
>>32199
Знаешь только на уровне определений. Все понятно. Значит я был прав. Интуиция не подвела.
143 1332225
>>32181

>Что писал?


Какие-нибудь игровые движки или что-то схожее (на C/C++).

>Что обычно не говорят?


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

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


Это только ты такую чушь можешь выдать.

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

>>32189

>У меня создается впечатление, что ты залетный петушок, который учебник еще не закончил читать.

144 1332228
>>32225
Цитирую анона:
>>32189
145 1332230
>>32225

> модифицируешь несколько методов


А в си у тебя инкапсуляция, ты делаешь пару оберток над методами, и норм, никакого копипаста. Вот с виртуальными функциями (или каким-то иным способом взаимодействия объектов) слегка сложнее, но тоже решаемо. И еще писать игровые движки сильно мешает необходимость изобретать даже сраный динамический массив или тащить какую-то левую либу для этого, тогда как в крестах все из коробки, да еще и с дженериками.
146 1332231
>>32225
Ты не понял, о чем он говорит, он говорит не о том, что писать на плюсах используя ООП менее удобно, чем на Си.
Он пишет про то, что можно написать движок не используя ООП, и все твои аргументы про объекты вообще смысла не имеют, смекаешь?
147 1332232
>>32091
На самом деле нет. В движках очень много попарных взаимодействий, а классическое ООП очень хуево диспетчеризует их.
А конструктор структуры это не признак ООП, такое и в хаскелле есть.
148 1332235
>>32231

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


https://github.com/angelXwind/OpenSyobonAction/blob/master/main.cpp получится как-то так.
149 1332237
>>32206
А моя интуиция рисует мне -максималиста, который о других анонах строит необоснованные выводы и что-то сам себе наговаривает, ни разу не выйдя в объеме своего кода на Си за 500 строк.
150 1332241
>>32235
Ты точно писал что-то действительно сложное?
Просто ты ты в противоположность ООП скинул какой-то странный нечитаемый код.
Или по-твоему если не использовать ООП, то тогда писать код можно только так?
151 1332242
>>32230
Да, почти все можно. Но кроме как эксперимента ради в больших проектах так делать не будут.
152 1332244
>>32241
Приведи какой-то другой пример. Если в твоем примере будет не говнокод, там будут структуры и функции для работы с ними. Это ничем не отличается от объектов и методов, кроме названия, особенно если говорить об изначальном понятии ООП.
153 1332246
>>32225

>Представь себе простую ситуацию, тебе нужно создать некоторый новый "тип" объектов в игре. В плюсах ты просто создаешь нужный класс-наследник, модифицируешь несколько методов и 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), ну и куча подобного. Никакого наследования не нужно, только композиция таких хуевин. И современные движки так и работают.
154 1332247
>>32231

>Ты не понял, о чем он говорит


>Он пишет про то, что можно написать движок не используя ООП...


Даже если так, то я на это прямо ответил. А это не так, смотри:

>>32094

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



>>32126

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



Да, у меня игровые движки ассоциируются с ООП. Как и у тех, кто их пишет. По крайней мере даже самый плохой код движка, который пишут на Си, будет к этой концепции стремиться.
155 1332252
>>32247

>Да, у меня игровые движки ассоциируются с ООП. Как и у тех, кто их пишет.


Это не так. Движки нужно писать компонентно-ориентированными. То, что с точки зрения ООП является лютым зашкваром.
Выше я описал концепцию кратко: игровые сущности не являются инстансами класса с наследованием, они являются одним универсальным классом, в который как кубики вставляются различного рода модификаторы.
А далее случается такая хуйня, что ООП-ньюфаги видят слово класс и говорят, мол "ну это же тоже ООП", но нет, ООП, несмотря на свое желеобразное определение, компонентый подход не является.
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/
156 1332254
>>32252
Это просто новый баззворд, который почему-то противопоставляют ООП. А на самом деле: объекты есть? - есть, сообщениями обмениваются (методы вызывают)? - да. Все, ООП. А дальше ты уже можешь различать способы, как наиболее удобно этого добиться.
157 1332256
>>32254

>Это просто новый баззворд


Я тебя inb4 разъебал: 'А далее случается такая хуйня, что ООП-ньюфаги видят слово класс и говорят, мол "ну это же тоже ООП", но нет, ООП, несмотря на свое желеобразное определение, компонентый подход не является.'
Этот новый баззворд старше тебя.

>А на самом деле: объекты есть? - есть, сообщениями обмениваются (методы вызывают)? - да


Оу, ну тогда хаскель - ооп язык. И машинные коды, хули.
158 1332257
>>32252
Компоненты это скорее архитектурный паттерн.
Если ты не маньяк, то в любом случае даже в компонетном движке у тебя будет множество классов для самих компонентов, векторов, матриц, строк, коллекций, геймплейныйх объектов и т.п.
даже если ты напишешь все на С, то все равно придешь к ООП просто сделаному через жопу
159 1332258
>>32256

> хаскель - ооп язык. И машинные коды, хули


Насчет хаскелей не скажу, но "ООП-язык" - это, видимо, что-то, содержащее сахарок для реализации какого-то сорта ООП. В Си сахарка нет, в машинных кодах тем более. Но писать объектно-ориентированный код на этих языках можно.
160 1332259
>>32257

>у тебя будет множество классов


Аналогично: 'ООП-ньюфаги видят слово класс и говорят, мол "ну это же тоже ООП"'.
А если я
#define class struct
напишу у меня ООП перестанет быть ООП?
161 1332262
>>32258

>В Си сахарка нет, в машинных кодах тем более. Но писать объектно-ориентированный код на этих языках можно.


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

Но объектно ориентированный код - это не все, что содержит структуры с конструкторами и деструкторами, как думают ньюфаги. Основной признак ООП - это иерархия наследования реализации. Если у тебя нет наследования, у тебя нет ООП. Например, STL в С++ - не ООП, и автор STL ООП не любит. std::vector не наследник std::abstractcontainer. И в игровых движках ОО-подход не используется. Какие-то фичи ОО-языков могут использоваться для каких-то своих целей или эмуляции других парадигм, но с мыслью об ООП никто не программирует.
162 1332265
>>32262

> Если у тебя нет наследования, у тебя нет ООП


Ты скозал? Это всего лишь еще одна деталь реализации.
163 1332266
>>32252

>когда не понимаешь разницу между ООП и наследованием классов

164 1332268
>>32265
Нет, это та вещь, которая отличает ООП от любой другой парадигмы. Определения они вообще про это - как отличить одну парадигму от другой.
То, что ты вокруг себя нихуя, кроме ООП не видишь, это проблемы твоей малообразованности, а не моих попыток тебя образовать.
165 1332269
>>32266
А вот и Даннинг-Крюгер подоспел
166 1332277
Ребят, но я всего лишь спросил почему в геймдеве доминирует анальное с++..
Ответа я так и не понял. На нем легче? Не легче? Тогда почему все практически на нем?
167 1332281
>>32277
C++ практически единственный язык, который предлагает тебе т. н. zero cost abstractions - то есть ты используешь высокоуровневые абстракции, а компилируется это в эффективный машинный код, как если бы ты писал на С.
Сишка таким языком не является, в ней высокоуровневых абстракций просто нет.
И, что важнее, он в такой роли уже практически 30 лет. То есть если сейчас появится язык, который лучше С++ в этой области, 30 лет доминирования хуй обойдешь.
168 1332284
>>32259
Нет, но теперь я знаю, что ты идиот.
169 1332286
>>32262

>Основной признак ООП - это иерархия наследования реализации.


Это всего лишь твоя охуительная теория.
170 1332287
>>32277
Изначально геймдев на крестах из-за байтоёбства, потом сам язык стал стандартом отрасли, это как у физиков фортран, и ссать они на всех хотели, особенно зарубежные, там написано уже почти всё и заебёшься заново пердолить.
171 1332290
>>32287
Геймдев вообще был на С где-то до конца 90х.
172 1332293

> А на самом деле: объекты есть? - есть, сообщениями обмениваются (методы вызывают)? - да. Все, ООП.


o.m(p) = m(o, p)
173 1332295
>>32293
Все так.
174 1332301
>>32017
Сервер напиши.
175 1332305
>>32225
Если ты не умеешь писать без классов, то не надо утверждать, что никто не умеет.
176 1332306
Ребята, хватит спамить. Этот шизик вчера в php треде срал, теперь сюда пришел срать. Не отвечайте тому, кто пишет что-то провокационное про ООП.
177 1332308
>>32247

>Да, у меня игровые движки ассоциируются с ООП.


Секта свидетелей ООП. Еще до плюсов писали сложные проекты. И тут ты такой выполз, и кричишь что без ООП код не читаемый. Не обобщай, просто ты не умеешь писать.
178 1332310
>>32262
Слышь, хватит пургу нести. В Си функции значит не сообщения, а твои такие же функции в классе уже значит сообщения? Придумали ерундуу, те же самые функции пишут, а кричат типа это сообщения.
179 1332311
>>32262
Если наследования нет, значит не ООП? Тяжелый случай. Очередной адепт секты свидетелей ООП.
180 1332313
>>32268
Вот ты и попался. Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП? Хорошо, а ты в курсе, что в Хаскелле тоже есть наследование?
181 1332314
>>32281

>Сишка таким языком не является, в ней высокоуровневых абстракций просто нет.


ШТА? Это каких нет? Ты вообще знаешь что такое абстракция? Иди СИКП читай, неуч.
182 1332315
>>32281

>И, что важнее, он в такой роли уже практически 30 лет. То есть если сейчас появится язык, который лучше С++ в этой области, 30 лет доминирования хуй обойдешь.


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

Все, тебя уже не исправить. Такое бывает когда начал с C++ и дальше не изучил ни одного языка. Мозг искривляется в сторону крестов, и больше не способен адекватно мыслить.
183 1332316
>>32306
Испугался да, крыть то нечем. Сами своей терминологии даже не знаете. Дошколята.
184 1332322
Согласен, ооп говно.
bloomfilter.png45 Кб, 1361x510
185 1332325
Спасибо тому кто в прошлом треде тыкнул меня в Bloom Filter >>1326938 , благодаря этому решил свою задачу гораздо проще чем собирался.
Также обнаружил для себя существование таких алгоритмов как HyperLogLog и MinHash, но пока моих математических знаний не достаточно для того чтоб нормально понять как этим пользоватся
186 1332337
>>32325
Пожалуйста.
>>32310

>В Си функции значит не сообщения, а твои такие же функции в классе уже значит сообщения?


Я такого не писал.
>>32311

>Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП?


В секте свидетелей ООП немного другое - они считают, что если что-то написано с использованием ключевого слово class - это уже ООП. Например, STL - это ООП. Потому что вектор, епта, это класс, епта, и мы ему, епта, посылаем сообщение resize, епта. Что, конечно же, не так.
Даже с учетом того, что vector в современной реализации STL может наследоваться от _GLIBCXX_STD_C::vector, все равно ООП это не станет.
>>32313

>Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП? Хорошо, а ты в курсе, что в Хаскелле тоже есть наследование?


Цитирую себя >>32262 основной признак ООП - это иерархия наследования реализации
Проблема в том, что ты не читаешь, что пишут, а ищешь, как бы так сделать, чтобы я попался. Во-первых, пососи хуй. Во-вторых, даже если я где-то опечатался, это не значит, что я не прав. Впрочем, см. во-первых, потому что для таких долбоебов я заранее написал уточнение.
>>32314
Что ты блядь с этим сицпом носишься. Я эту книгу прочитал 8 лет назад. Еще про Даннинга-Крюгера мне что-то втирает, лол, прочитал одну книжку и уверен, что стал богом программирования, лол.
В SICP термин object oriented встречается один раз, в сноске, в которой говорится, что наследование - это пиздец и источник сложности, поэтому мы сфокусировались на состоянии и сознательно эту тему обходим, пока не придумают что-то получше. Видишь ли какое совпадение, даже в SICP термины object oriented и inheritance стоят рядом.
>>32315
Бля, обожаю этих бордошизиков, которые выдумали себе картину мира и дальше их манямирок трескается: оказывается в мире есть С++ программисты, которые знают больше языков, чем шизики, прочитали больше книжек и каким-то чудом ПРОЧИТАННЫЙ СИЦП не превращает их в каких-то гениев аргументации по существу, а они так и остаются маньками с гонором и с тупыми, не относящимися ко мне вангованиями.
186 1332337
>>32325
Пожалуйста.
>>32310

>В Си функции значит не сообщения, а твои такие же функции в классе уже значит сообщения?


Я такого не писал.
>>32311

>Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП?


В секте свидетелей ООП немного другое - они считают, что если что-то написано с использованием ключевого слово class - это уже ООП. Например, STL - это ООП. Потому что вектор, епта, это класс, епта, и мы ему, епта, посылаем сообщение resize, епта. Что, конечно же, не так.
Даже с учетом того, что vector в современной реализации STL может наследоваться от _GLIBCXX_STD_C::vector, все равно ООП это не станет.
>>32313

>Говоришь значит, что если есть наследование, то уже ООП? И говоришь, что в Хаскелле нет ООП? Хорошо, а ты в курсе, что в Хаскелле тоже есть наследование?


Цитирую себя >>32262 основной признак ООП - это иерархия наследования реализации
Проблема в том, что ты не читаешь, что пишут, а ищешь, как бы так сделать, чтобы я попался. Во-первых, пососи хуй. Во-вторых, даже если я где-то опечатался, это не значит, что я не прав. Впрочем, см. во-первых, потому что для таких долбоебов я заранее написал уточнение.
>>32314
Что ты блядь с этим сицпом носишься. Я эту книгу прочитал 8 лет назад. Еще про Даннинга-Крюгера мне что-то втирает, лол, прочитал одну книжку и уверен, что стал богом программирования, лол.
В SICP термин object oriented встречается один раз, в сноске, в которой говорится, что наследование - это пиздец и источник сложности, поэтому мы сфокусировались на состоянии и сознательно эту тему обходим, пока не придумают что-то получше. Видишь ли какое совпадение, даже в SICP термины object oriented и inheritance стоят рядом.
>>32315
Бля, обожаю этих бордошизиков, которые выдумали себе картину мира и дальше их манямирок трескается: оказывается в мире есть С++ программисты, которые знают больше языков, чем шизики, прочитали больше книжек и каким-то чудом ПРОЧИТАННЫЙ СИЦП не превращает их в каких-то гениев аргументации по существу, а они так и остаются маньками с гонором и с тупыми, не относящимися ко мне вангованиями.
187 1332338
>>32277

>почему в геймдеве доминирует анальное с++


потомучто школьников набирают кодить

Реальные разрабы, которые сами пишут игры и сами зарабатывают, на своих играх бабло, пишут их на чистом Си!
https://habr.com/ru/post/275135/
188 1332340
>>32338
Для таких игр gamemaker самое то
189 1332341
>>32338
Кармак, очнись, девяностые прошли!
190 1332342
>>32341
Кармак перешел на С++ после Q2
191 1332346
>>32342

>Кармак перешел на С++ после Q2



После Q3. В думе 3.
192 1332348
>>32346

И то, там код - си с классами во все поля.
193 1332351
>>32337

>наследования реализации


>реюз поведения или реюз абстракций


пофиксил тебя, не благодари
194 1332352
>>32337
Слив засчитан. Кстати, STL написан в функциональном стиле. Шах и мат ООПэшник.
195 1332354
>>32337
Абстракция не равно ООП. Еще один шах и мат тебе.
196 1332355
>>32352
Опять стандартная ситуация - пишешь пост, разъебывающий кого-то, в ответ жалкое блеянье в стиле "обосрался - притворись троллем".
>>32352>>32354
Ты с кем вообще разговариваешь, шизик? Найди у меня фразу "Абстракция не равно ООП". У тебя дислексия похоже.
197 1332356
>>32337
Ты даун походу. ООП это объекты и сообщения. Все, только эти две концепции определяют ООП. Такое можно писать и на Лисп, и на Хаскелле. Об этом в СИКПе говорится тоже. Ты конечно же не читал.
198 1332357
Бля, я понял. Когда шизик читает:
"В секте свидетелей ООП немного другое - они считают, что если что-то написано с использованием ключевого слово class - это уже ООП. Например, STL - это ООП."
он видит фразу "STL - это ООП" и из-за клипового сознания уверен, что это я утверждаю, что STL - ООП. Лол. Насколько тупым нужно быть, чтобы не видеть, что написано.
199 1332358
>>32356

>ООП это объекты и сообщения. Все, только эти две концепции определяют ООП


Приведи пример не ООП.

> Об этом в СИКПе говорится тоже


И тут ты такой с цитатой.
200 1332359
>>32355
Тебя уже раскусили, дошколенок. Ты написал, что в Си нет высокоуровневых абстракций. Если бы ты читал СИКП, то знал бы, что можно кодировать данные на функциях, создавать свои абстрактные структуры данных. Про абстракцию данных ты ничего не знаешь. Это ты так СИКП читал, ну-ну. Это и есть абстракции высокого уровня.
201 1332363
>>32357
Мать твою ебал.
202 1332364
>>32358
Историю ООП почитай. Алан Кей четко обозначил, что есть ООП, а что нет.
203 1332368
>>32358

>пример не ООП


Brainfuck.
204 1332369
>>32364
Так и запишем: на вопрос о том, что такое НЕ ооп слился, потому что боится обосраться.
205 1332370
>>32368
Объекты - ячейки, сообщения - +, -, . и так далее.
Еще примеры?
image.png13 Кб, 338x204
206 1332371
Посоны! Я погромирую на скрутках. Это достаточно низкоуровнево? Какие абстракции тут можно прикрутить?
207 1332372
>>32368
Форт? Из коробки нет, но можно сделать
208 1332373
>>32369
Ты тупой что ли. Я тебе написал - объекты и сообщения. На этом было основано ООП, это главная идея. Это легко в основу Smalltalk и Simula, а потом было стянуто Страуструпом.
209 1332375
>>32371
Очевидно, что скрутка - это объект, а скручивая ты посылаешь ему сообщение
210 1332376
>>32373
Нет, это ты тупой. Я не спрашиваю тебя, что такое ООП в твоем уебанском определении, я спрашиваю тебя, что ООП в твоем уебанском определении не является.
211 1332377
>>32376
Возьми и отними от всей чепухи объекты и сообщения. Идеальным ООП языком можно назвать Erlang. Там настоящие сообщения, как в Smalltalk. Даже сам Кей об этом говорил.
212 1332378
>>32370
А ведь ты и правда шизофреник.
Нет, это не толстота - ты просто болен и тупой
213 1332381
>>32378
Это называется доказательство от противного.
Шизофреник тот, кто определяет ООП через объекты и сообщения. Я показываю, что это определение не работает, потому что оно слишком обобщенно, это все равно, что сказать, что человек - животное без волос. Что для местных школьников является недостижимым уровнем дискуссии.
214 1332382
короче, посоны. ооп это костыль для людейкак и фп, для людлей поумнее, шоб им понятнее и проще было. вы можете оборачивать это во сколько хотите слоёв филосовствовоний и прочей поебени для юзеров, но на самом дне это всё еще опкод
215 1332383
>>32377
Идея ООП изначально была глупой. Алан Кей же был биологом, и еще очень любил громкие высказывания, якобы он все понимает лучше других. В математике насколько мне известно он ничего не открыл. Из этого следует, что у него была прочная профессиональная деформация в сторону биологии. Биология имеет мало общего с техническими науками, и инженерией. Но Кей все равно решил скрестить бульдога с носорогом. И насколько мне известно не реализовал свои громкие заявления. Его модель ООП так и осталась никому не известной, но из-за него появились другие модели, которые еще более провальны.

Поэтому книги по OОП, старые или новые, априори содержат в себе чепуху. Так как сама идея чепуха, а реализация еще хуже. И не стоит забывать, что ООП на классах не единственная модель. Есть еще прототипное ООП из языка Self, и якобы тру-модель из языка Smalltalk, которая потом (в Smalltalk-80 и далее, а может чуть раньше) тоже была сильно извращена.
216 1332384
>>32382
Робот Бендер закукерекал
217 1332385
>>32383
Это я и писал если что. Но это никак не мешает тому факту, что ООП определяют объекты и сообщения. Вся остальная шелуха была введена уже после.
218 1332387
>>32381

>Шизофреник тот, кто определяет ООП через объекты и сообщения.


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

>Идеальным ООП языком можно назвать Erlang


За такое тебе в лучшем случае перезвонят, если ты где-то назовешь Erlang ООП-языком.
220 1332389
>>32387

>Создатель ООП Алан Кей.


Создатель ООП Оле-Йохан Даль. Алан Кей придумал этому название. И дал неверное определение.
221 1332390
>>32388

>Он даже не первый ООП-язык придумал.


Чяво? Щас будем тебя носом тыкать.

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

>>32388

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


Эта вся чепуха не относится к эталонной модели ООП. Тем более паттерны от банды четырех наркоманов. Снова шах и мат тебе. Иди матчасть учи.

>>32388

>За такое тебе в лучшем случае перезвонят, если ты где-то назовешь Erlang ООП-языком.


Эрлангистов разбирают как горячие пирожки в голодный год. Он наиболее близок к эталонной модели ООП.
image.png3 Мб, 1920x1080
222 1332391
>>32390

>Один из создателей проекта One Laptop Per Child

223 1332393
>>32389

>Создатель ООП Оле-Йохан Даль. Алан Кей придумал этому название. И дал неверное определение.


Чепуху несешь. То что он там наваял, не называлось ООП, это обычная наркомания как в C++.

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

>Чяво? Щас будем тебя носом тыкать.


Тово, школьник с даннингом-крюгером. Тово.
Впрочем, ключевые слова для судорожного гугления я уже назвал в прошлом посте, можешь пиздовать гуглить.

>Эта вся чепуха не относится к эталонной модели ООП.


Относится. И в смоллтоке были ебанутые иерархии. Это уже задним числом Кей начал от них открещиваться.
225 1332395
>>32391
Да да, Кей еще и создатель первого планшета, и первого графического интерфейса.
226 1332397
>>32394

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


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

>>32394

>И в смоллтоке были ебанутые иерархии. Это уже задним числом Кей начал от них открещиваться.


Не ври. Их ввели в Smalltalk-80, когда он уже не участвовал в разработке.
227 1332398
Короче, даже Джон Бэкус, создатель первого высокоуровневого языка (предка Си), говорил что ФП превосходит императивное программирование во всем. Есть уйма инфы по этой теме, его доклады и статьи.
228 1332399
>>32398
Да заебал ты уже со своим декраративным подходом. Императивное программирование ближе человеку. Императивная программа выполняется так, как было задумано, без ебучих отложенных вычислений, которые всю память сжирают.
229 1332401
>>32397

>Основателем ООП считается Кей, а никакой не Даль. Далевская наркомания это процедурка на классах.


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

>Далевская наркомания это процедурка на классах.


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

>Не ври. Их ввели в Smalltalk-80, когда он уже не участвовал в разработке.


А почему ввели, лол? Потому что это ключевая концепция для ООП. То, что Кей в первой редакции забыл реализовать наследование из-за желания максимально упростить симулу, не делает смолток каким-то священным идеалом.
Термины со временем уточняются и усложняются, а твоя позиция типа "св. Кей сказал вот так вот" мало отличается от религиозных догматиков. Что имел в виду Кей - похуй, потому что с тех пор прошло 40 лет, ООП успело появиться, оказаться в зените в 90-е и после этого постепенно сгнило и сдохло.
Поэтому твой подход "ща я в википедии прочитаю определение" и не работает - приходится делать охуительные выводы о том, что Erlang - ООП-язык. В манямирке, может, оно и так, но в сообществе за такое посмотрят как на шизика.
230 1332402
>>32399
Все наоборот, школьник. Декларативному подходу учат с детства, в школе. В вычислениях нет понятия времени, они декларативны по своей природе. Императивная природа только у процессора.

Какие еще отложенные вычисления? Все понятно, ты ноль в программировании.
231 1332403
>>32398

>ФП


нинужно
232 1332404
>>32398
У тебя свое мнение есть без ссылок на чужие авторитеты?
233 1332405
>>32398

>ФП превосходит императивное программирование


орнул с этого куска мяса. на дне это всё императивее некуда. если мясным мешкам нужны абстракции над скрутками, баг им судья
мимо бендер
234 1332407
>>32401
Короче, я уже понял что у тебя ноль знаний CS. Кей ученый. Кей создатель ООП, везде можно об этом прочитать. Кей получил премию Тьюринга за ООП.

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

Erlang ООП язык, да. На этом все. Иди матчасть учи. Не собираюсь тратить на тебя свое время.
235 1332408
>>32402

>Императивная природа только у процессора.


Состояние придумали жиды, ирл ни у чего состояния нет, только платонические идеи, плавающие в океане монады.
236 1332409
>>32407

>премию Тьюринга


Бля, даже премии в честь этого пидара есть, лол

>ООП


Нинужно
237 1332411
>>32407

>Кей создатель ООП, везде можно об этом прочитать.


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

>Кей получил премию Тьюринга за ООП.


На два года позже Даля. При чем Далю дали за что? За ООП, ЛАЛ. Ты определись, авторы премии Тьюринга, они как, хуесосы (как Тьюринг), или ты хуесос?

>Erlang ООП язык, да. На этом все. Иди матчасть учи. Не собираюсь тратить на тебя свое время.


Erlang не ООП язык. Это функциональный язык с динамическими типами.
238 1332412
Так, чувак, поясните мне одну хуйню. Вот у меня есть множество битов в озу. Теоритически, я могу провернуть над ними вот эту всю чисто математическую поебень и это будет считаться фп? А что я должен провернуть, чтобы это стало ооп?
239 1332414
>>32412
В ФП ты не можешь изменять свое множество, только скопировать и при копировании что-то поменять, создав новое множество.
А чтобы это стало ООП, не знаю, подрочи. Все равно никто не знает, что такое ООП, потому что никто не знает, что такое объект.
240 1332416
>>32414
Тоесть, ооп это ёбаный симулякр?

>что такое объект


Некая совокупность инструкций и даты?
241 1332420
>>32416

>Тоесть, ооп это ёбаный симулякр?


Так же, как и процедурное, функциональное и всякое другое программирование.
Правильно парадигмы применять к дизайну программ, а не к языку. Просто некоторые языки заточены под определенный дизайн.

Процедурная программа - это программа, архитектура которой основывается на модели данных и изменяющих эти данные процедур. Объектный дизайн основывается на модели объектов и общений, таких изолированных компьютеров, которые что-то сами собой считают и взаимодействуют с другими объектами посредством передачи сообщений, такая абстракция компьютерной сети внутри твоей программы.
Датафлоу дизайн основывается на том, что у тебя есть данные, которые как по конвееру передаются и обрабатываются определенными блоками
и т.д.
Любой такой дизайн можно реализовать хоть на си, хоть на java.
242 1332421
>>32416

>Некая совокупность инструкций и даты?


Ну окей, стек процессора в языке ассемблера - это объект в терминах ООП?
Нет.

>Тоесть, ооп это ёбаный симулякр?


ООП - это кот. Ты даешь определение кота, типа, животное такое-то, класс, род, вид, я не биолог, ты понел, короче, а тебе показывают картинку nyan-cat или тома из тома и джерри и ты говоришь, это нихуя не кот, это нарисованный персонаж и будешь прав. Но те, кто скажет, что том - это кот, будут правы, потому что а кто это, СИМУЛЯКР что ли.
Я вижу выход только в том, чтобы дать людям характерные признаки кота, а они уже пусть решают, кот перед ними, или нет. И характерный признак ООП это объекты (некая совокупность инструкций и даты), которые состоят между собой в иерархии наследования.
Вот теперь думай, как прилепить сюда множество бит в озу. Да никак. Но если твое множество состоит в иерархии множеств, то тут уже можно думать об ООП.
243 1332422
>>32420

>модели данных и изменяющих эти данные процедур


>модели объектов и общений


А тут есть какая-то разница, кроме чисто философской?
244 1332429
есть целая книжка "ооп в си" на английском
желающие всегда могут выяснить все вопросы
245 1332431
>>32422
Можно определить так: посылка сообщения это late binding, то есть если при выполнении кода можно подменить один объект другим из-за того, что диспетчеризация происходит в рантайме, а вызов процедуры это early binding, то есть сообщение жестко привязано к типу адресата.
Проблема в том, что в таком определении отвалится большинство ООП-языков.
246 1332432
Ребята, сегодня я многое понял. День прошел не зря.
247 1332434
>>32432
ИДИ НАХУЙ ОТСЮДА
248 1332435
>>32422
Конечно есть. Разница уровня шаблонов проектирования.
Архитектура твоей программы это ЧЕРТЕЖ, а то, на каком станке были выточены ДЕТАЛИ этого чертежа - это уже вторично.
249 1332436
>>32435
Нечего сказать - ебашь тупую аналогию.
250 1332437
>>32431
Да это не важно. Это все особенности реализации конкретного станка. Например, в java есть перегрузка методов, а в js нет. Ну и что. Это конкретные особенности языка. В одном может быть много абстракций, упрощающих написание программы, а в другом может их не быть.
251 1332438
>>32436
Это потому что ты не понял, что я имел ввиду.
Дизайн программы и реализация этого дизайна на языке программирования - это две раздельные сущности. А ты этого не видишь и мыслишь все как одну сущность, отсюда ошибки.
252 1332460
>>32438
К сожалению из-за того, что люди этого не понимают, у нас программирование по прежнему является кустарной областью, где все решения по ходу дела принимает дядя Ваня на основе личного опыта.
253 1332462
>>32460
Ох уж эти сладкие мечты аутистов - исключить людей из работы.
254 1332463
>>32460
Почаще конпелируй, чтобы таких пробем не было.
255 1332468
Антош, как разобраться в архитектуре/устройстве Си++?

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

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

Хотелось бы найти ответы на эти вопросы, в идеале бы какую-нибудь литературу, а не просто набор статей из интернета. Спасибо
256 1332473
>>32468

>Хотелось бы найти ответы на эти вопросы, в идеале бы какую-нибудь литературу, а не просто набор статей из интернета. Спасибо


Книжка называется Дизайн и эволюция С++
Затем несколько книжек Мейерса и Саттера на выбор
Чтобы понимать бусты-хуюсты и метапрограммирования на шаблонах - Александреску, хотя может есть что поновее.
257 1332497
>>32473
Благодарю за ответ, буду в метро читать, а дома писать код.
258 1332503
Сильно ли ебнет наполовину полный баллон с дезодорантом, если кинуть его в костер?
259 1332507
>>32503
Недостаточно условий - размер баллона, что за дезодорант, что такое по твоему сильно ебнет.
Думаю, сильно, улетит метров на 30 нахуй
260 1332516
>>32507
Да обычный аэрозоль 150 мл от адидас. Запах не понравился, хочу выкинуть, сосед на заднем дворе покрышки жгет от камаза, хочу приколоться и подкинуть сюрприз.
261 1332517
>>32516
У меня так дед на два года сел, прикололся, а у человека электроожог и больничка
262 1332531
>>32462
Ты бы доверил строить свой дом команде строителей агильщиков, или тем кто построят твой дом по TDD?
263 1332532
>>32531

>Мы поставили унитаз в зале. Сначала он проходил все тесты, но потом внезапно сломался тест на запахи. Придется все переделать, с вас еще $1000

264 1332533
>>32531

>Ты бы доверил свой ангуляр команде рубистов


Поправил тебя, сладкий :3
265 1332537
>>32531

>Ты бы доверил строить свой дом команде строителей агильщиков, или тем кто построят твой дом по TDD?


Строительство хорошего индивидуального жилья это всегда эджайл, потому что предусмотреть все заранее как тебе нужно невозможно, сколько бы бабок ты архитектору не отвалил.
То же касается и типовых коробок - тебе предоставлен отлаженный фреймворк, но ремонт один хер индивидуально надо делать.
266 1332568
>>32533
Я горький.
267 1332571
>>32342
Си мертв, даже Кармак перешел...
Пичаль..
268 1332602
>>32571
Какого хуя игры делают не на C с диезом?
269 1332615
>>32602
Нет сборщика мусорщика оптимизированного под минимальные паузы.
Там пилят что-то вроде модульного сборщика мусорщика, но такими темпами они еще лет 10 будут пилить
270 1332634
>>32615

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



Про какие паузы тут имеется ввиду?
271 1332638
>>32531

>или тем кто построят твой дом по TDD?


Проиграл со строителей, которые в процессе строительства ломают тестами дом и каждый раз заново его пересобирают.
272 1332645
Почему Кармак перешёл на C++?
273 1332650
>>32645
Очевидно, заебался пилить огромные проекты на си.
При этом сам он называет этот переход "эволюцией моего С-стиля", лол.
274 1332655
>>32638
Не ломают, а проводят испытания компонентов.
Ты удивишься наверное, но вся область техники и строительства именно этим и руководствуется.
Так что ты пукнул в лужу, смешной дурачок.
275 1332658
>>32650
У него жена узкопленочная, я таким людям вообще не доверяю.
276 1332660
>>32655

>проводят испытания компонентов


Типа автомобильные краш-тесты?
И где ты видел, чтобы на стройке делали испытания ЖБИ под нагрузкой или проверяли канализацию под давлением? Все делают про проверенным веками технологиям, и тесты тут нахуй никому не нужны.
LAUGHTER.jpg73 Кб, 670x402
277 1332665
>>32658

>жена узкопленочная


Проиграл.
Это что?
278 1332670
>>32665
Ну пиздоглазая.
279 1332671
>>32665
Пизда поперек. А так вообще нет разницы.
280 1332672
>>32670
лолблядь
281 1332682
>>32655

>Не ломают, а проводят испытания компонентов.


В TDD сначала придумывают тест на фундамент, потом строят фундамент, потом проверяют че построили, потом доделывают/ломают/переделывают. Тесты позеленели? Жить можно!

От кастомера пришел баг-репорт. Пишем, тест. Чтобы его позеленить, надо лифтовую шахту залить монтажной пеной, и временно повесить люльку снаружи вместо него.
282 1332695
>>32682
Это ж сколько пены надо, чтобы залить шахту, лол.
283 1332698
Прошу пример интеграции парсинга с flex/bison в программу. Ну вот разобрал я файл на части. А в основную прогу-то как передать?
284 1332700
>>32698
Считать iostream
285 1332702
>>32682
Ржублядь.
Обожаю читать мудаков, с умным видом рассуждающих о вещах в которых не смыслит совершенно.
10 килокравецких из 10
286 1332704
>>32700
Не, вот flex/bison парсер готов и работает. Теперь бы его в программу интегрировать, чтобы структуры заполнял.
287 1332713
Пытаюсь в динамическую память, но что-то не особо получается.

#include <stdio.h>
#include <stdlib.h>
int main()
{
char pstr = NULL;
int razmer = 10;

pstr = (char
)calloc(razmer + 1, sizeof(char));
for (int i = 0; i < razmer; i++)
{
scanf("&с", &pstr);
}
for (int i = 0; i < razmer; i++)
{
printf("%c", pstr);
}
return 0;
}

Этот код должен был запрашивать количество символов <=razmer и заполнить ими переменную pstr как массив, но что-то не особо получается. Что именно я делаю не так? Прошу нормально объяснить без подъёбов и желчи.
288 1332716
>>32713

>("&с", &pstr)


->

>("%с", &pstr);

289 1332717
>>32716
А, ясно, борда сожрала. Залей на пастебин какой.
изображение.png14 Кб, 1144x318
291 1332729
>>32724

>&c


Две ошибки. c - не латинская (переключись на английский и введи еще раз). scanf использует %, а не &.
292 1332738
>>32729
Спасибо за помощь. Можешь теперь объяснить почему если размер будущего массива объявить сразу при объявлении переменной, то всё в порядке, но если присвоить значение через scanf, то выводит на одну ячейку меньше?
https://ideone.com/comC3P
293 1332744
>>32695
По сравнению с неэффективностью приложений на electron, заливка шахты пеной это сущие пустяки.
294 1332753
>>32738
После ввода цифры у тебя во входном потоке остается символ перевода строки, вот и выводится так. Можно заметить, что строка лишний раз перевелась.
Можно пофиксить, добавив после ввода размера fflush(stdin), но это Undefined Behavior и нехорошо. Хотя лично у меня всегда работало как ожидалось, и для обучения в принципе сойдет.
295 1332756
>>32744
Причем тут жабаскрипт вообще?
296 1332757
>>32753
Но ведь если убрать scanf для razmer, а razmer сразу присвоить значение, то циклы будут отрабатывать правильно без всяких костылей. Почему так?
изображение.png19 Кб, 1176x347
297 1332763
>>32757
scanf жрет из входного потока все, что у него попросят. Ты просишь число, его он и дает. Но нажав Enter для завершения ввода ты посылаешь во входной поток символ конца строки ака '\n'. Вот его scanf из потока уже не берет. Далее ты с помощью scanf считываешь символы, но в потоке-то уже есть наш '\n'! Вот он его в нулевую ячейку массива и помещает, после чего уже все остальное разбирает. Альтернативный вариант решения проблемы - пикрелейтед. Тупо запроси у scanf ждать еще и символ конца строки.
Сергей Серпухин 002.jpg11 Кб, 274x184
298 1332764
Кармак здесь?
Отзовись пожалуйста, у меня важный вопрос.
299 1332771
>>32763
Я попробовал вместо \n поставить просто пробел без ' и результат такой же, как и у тебя.
300 1332772
>>32771
Ну можно и так. В любом случае scanf взяла еще символ из потока, что и требовалось.
301 1332774
>>32772
А можно заставить один и тот же scanf сместить курсор более, чем на один символ?
302 1332801
>>32774
Какой курсор? Это поток, который к тому же не умеет в fseek, там нет никаких курсоров. Ты имеешь в виду "пропустить n символов"? Можно так: scanf("%*123c"), где 123 - количество пропускаемых символов.
303 1332819
>>32774
Это зависит от ловкости твоих рук и возможностей клавиатуры/usb/ps/2. Если сможешь молниеносно отправить 2 символа за то время, пока не сработает команда новой строки, то молодец. В джаве так сборщик мусора работает. Никогда не знаешь, удалится ли ссылка на объект после удаления объекта или нет.
304 1332889
Если я хочу организовать динамическую память для структуры, я должен делать указателем переменную типа структуры или члены структуры?
305 1332917
>>32889
Можно и так, и так:
struct something {
size_t length;
char ∗dynamic_data;
};
struct something {
size_t length;
char dynamic_data[];
}
В первом случае у тебя два malloc(), но зато при realloc() dynamic_data не меняется адрес самой структуры. Во втором случае malloc() один, но изменение адреса структуры при realloc() может доставлять неудобства.
306 1332963
Начал параллельно читать SICP.
Ебанутся какая нудятина. Со слезами радости с удвоенным удовольствием читаю дальше Прату.
Неужели кто-то еще способен это пережевывать?
Да мне все было понятно. Да, делал задания.
307 1332964
>>32963

>t. дурачок

308 1332965
>>32963
Тупорылый форс сикпа для обучения погромированию.
309 1332966
СНГ дебилы не могут справится с СИКПом вот и ноют, думают, что это троллинг новичков такой.
310 1332975
>>32966
Нет, просто начиная читать SICP человек ожидает прочитать что-нибудь о структуре и интерпретации компьютерных программ. А внутри ЛИШП.
311 1332986
>>32963
Ты вероятно школьник еще. Меня в школе учили по советским учебникам. Да, они были нудные, но изложение было строгим, математически строгим. СИКП очень похож по манере изложения.

А теперь делайте выводы. Современное поколение не способно с серьезному глубокому обучению. Всему виной клиповое мышление, которое выработалось из-за гаджетов и интернета.
312 1332989
>>32986
K&R уступает только по причине вменяемых примеров в главах. В остальном нахуй лисп не нужон вместе с сикпом шеме прочими питушиными диалекатми.
sage 313 1332992
>>32989
Еблан, конченный еблан. Пошёл на хуй.
314 1332993
>>32989
K&R про то как хеллоу-ворлды писать, а СИКП про построение абстракций и архитектуры. Си отстой.
315 1332995
>>32993
Убедительно. Надо будет посмотреть, что там лиспопитухи понаписали.
316 1333016
>>32963
В SICP'е любому программисту нужна 2 и 3 глава.
1-я с основами ФП - ну такое, скучновато, но там есть прикольные вещи типа чисел Черча. Я помню я сидел в очереди в больнице и на бумажке и хуячил их, почти кончил на виду у бабок.
4 и 5 - про то, как пилить интерпретаторы, нахуй не нужная ебатория, особенно делать там упражнения. В жизни тебе это не пригодится, если ты не ебанат типа авторов язык julia, который всерьез решил часть реализации написать на scheme.

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

Алсо если в переводе читаешь, то он так себе.
317 1333070
Не знаю C нихуя вообще.
https://pastebin.com/raw/njBqNEzJ
Это неопределенное поведение?
gcc -o test test.c
./test
3
5

Мимо пхп макака
318 1333073
>>33070
Конечно, v-то уничтожается по выходу из функции.
То, что на стеке физически число 5 остается - это везение, очень мерзкое при том, потому что такой баг может годами жить и проявляться изредка.
319 1333079
>>33073
Интересный у вас язык. Вот у нас в пхп всегда все определенно, если знать некоторые нюансы.
320 1333080
>>33079
Не пизди у нас пхп все как расмус лердорф
бог на душу положит
Мимо пхп макака
321 1333088
>>33080
Что такого неопределенного есть в пхп?
322 1333096
>>33088
Например, количество хромосом у разработчиков
323 1333098
>>33096
А если серьезно, то что? Пхп сейчас хороший язык для серверов, не побоюсь этого слова - лучший язык для веба. Слоупоки сейчас конечно будут рассказывать истории своего опыта на версии эдак 5.6 и меньше, которые уже даже не поддерживаются, но те к в курсе дел знают, что пыха развивается семимильными шагами.
324 1333099
>>33098
Результат развития — бойлерплейт жавы и всё наследство пхп. А ведь был хорошим и простым языком.
325 1333105
>>33079

> если знать некоторые нюансы


Ага, например весь конфиг php.ini на котором будет крутится твой код и какие опции из него будут удалены в следующей версии интерпретатора
326 1333109
>>32917
А calloc тут нельзя использовать?
327 1333159
Все бля, в тредх набижали дети и обляпали его говном и своим очень важным мнением.
328 1333170
>>33159
Бида! Бида!
329 1333171
>>33098

>А если серьезно


Он и правда тупой.
Впрочем, термин пхпдебил родился из жизни и полностью заслужен.
Какой язык - такое и комьюнити.
Какое комьюнити - такой и язык.
Почти как govno, хаха.
330 1333210
>>33171
Cмешно, да. Но я правда серьезно спрашиваю: за что ненавидеть пыху последней версии? И самое главное, почему ее ненавидят по большей части те, кто на ней пишет?
331 1333220
>>33210

>ненавидеть


К чему такие громкие слова - почти никто не ненавидит говно. Презирать, брезговать, блевать - скорее так.

>почему


Из-за комьюнити по больше части - быдло и дебилы же, почти как одножопые.
Вот и ты, например.
332 1333222
>>33210
Потому что только если ты пишешь на чем-то ты можешь полностью осознать какое это дерьмо.
я вот никогда на пхп не писал и в душе не ебу, что там не так
333 1333225
>>33220
Уже несколько месяцев ищу ответ на этот вопрос, и никто не ответил без сарказма и насмешки.
334 1333226
>>33222
Понял. Но это ведь можно отнести к совершенно любому языку. Вон даже в этом треде проскакивают посты с описанием, какое же говно си.
335 1333232
>>33225

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


>Уже несколько месяцев ищу ответ на этот вопрос, и никто


А вот и иллюстрация: пыхыпыдебил as is.
336 1333238
>>33232
Этот ответ полон эмоций и субъективности. Дело тут не в быдле и не в гопниках, которым полюбился пых. Я говорю про людей, которые не в начале 21 века в кодирование вкатились, а в конце 20-ого. За что его не любить? Альтернативы пыху просто нет.
337 1333242
>>33238

>Дело тут не в быдле и не в гопниках, которым полюбился пых.


Нет, дело именно в этом.
Дело всегда в людях, омежка.

>Альтернативы пыху просто нет.


Очередная иллюстрация пыхыпыдебила, хаха.
338 1333247
>>33238
ПХП чудовищно эстетически некрасив, для языка, которому нет 20 лет, он жутко неортогонален и полон какого-то легаси-говна.
Его пилили люди, которые понятия не имели об устройстве языков и ничего сложнее си в своей жизни не видели. И это в нулевые годы. Любить его точно не за что.
Что касается каких-то подводных камней внутри языка, то до такого как правило не доходит, потому что нахуя нормальному человеку погружаться в это говно? Есть красивые языки, руби или питон, например. Даже жс, сделанный за две недели, на бесконечно красивее, чем пхп.
339 1333252
>>33242
Да не в этом. Можно даже аналогию привести с политикой и народностями. Все знают, что хохлов никто не любят, но украинский язык занял первое место по красивости и приятности звучания в каком-то году, не помню уже. Так же вот и с пыхой. На нем пишет много людей. Много перекатывальщиков из тех же самых низкоуровневых. Бывшие инженеры пишут на пхп. Но вот даже работнички корпорации гугл говорили, что стали бы писать на php только разве что сервис для доставки пиццы им в офис.
Я не пытаюсь тебе проиллюстрировать тут какой-то образ, но мне вот интересно, почему в мире кодирования пхп стоит особняком, на который каждый считает своим долгом поссать.
340 1333253
>>33247
Что про Перл скажешь? Чем-то привлекает дико.
Мимо
341 1333258
>>33252

>На нем пишет много дебилов и быдла.


Поправил эту мечтательную туповатую омежку.

>Все знают, что хохлов никто не любят


А, так ты лахтинский.
Это ВСЕ объясняет.
342 1333264
>>33253
Перл создан лингвистом и при неортогональности у него есть свой шарм - он лаконичен, например.
Я бы его не использовал, но ничего плохого в нем не вижу, раз привлекает, хули нет-то.
343 1333267
>>33247

>ПХП чудовищно эстетически некрасив, для языка, которому нет 20 лет


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

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



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

> руби или питон, например. Даже жс,


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

> >жрать говно плохо


>Я думаю, что это все-таки дело привычки


Ясно.

>Не знаю ничего


Понятно.
345 1333271
>>33258
Ты вот не знаешь даже, о чем говоришь. Не все пользователи пхп быдло и дебилы.

>А, так ты лахтинский.


Это что?
346 1333276
>>33267

>Я думаю, что это все-таки дело привычки, да и в последних версиях ввели синтаксический сахарок некоторый.


Нет. Дело привычки - это синтаксис хаскеля, например, J или, не знаю, лиспа. Я вот не умею глазами парсить лисп, но у меня нет вопросов, что это дело привычки.
А здесь именно что антиэстетичность. А то, что ты этого не видишь - за это собственно пхпшников и не любят.

>На руби не писал, не люблю узкоглазых


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

>питон мне не полюбился синтаксисом


А пхп полюбился.
347 1333277
>>33271

>Не все


Стадия торга, хаха.

>Это что?


Лахта маняврирует, как это мило.
348 1333279

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


Ну да, "не все пользователи пхп быдло и дебилы"
349 1333283
ЗАЕБАЛИ КОРМИТЬ ЕГО
350 1333286
>>33283
Так надо же помочь голодающему 15 рублей заработать, милосердие же.
Или ты не православный и Путина не любишь?
351 1333303
>>33286
>>33286
Ща в ебло получишь, мразь.
352 1333308
>>33303
Зарепортил этого русофобствующего аметиста-нацпредателя.
353 1333314
>>33276

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



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

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



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

>А пхп полюбился.


Ну да, как хочу, так и пишу.
354 1333315
>>33314

>почему не любят именно пхп, а не сам язык


>именно пхп, а не сам язык


Ты шизофреник?
355 1333318
>>33315
Ой, описался. Почему не любят пользователей пхп, а не сам язык.
356 1333321
>>33318

>Ой, описался.


>этот шизофреник с энурезом


Очаровательно :3

>Почему не любят пользователей пхп


Потому что тупые и/или быдло и энурезники, хаха
357 1333329
>>33321
Дурачок ты.
358 1333334
>>33329

>эта ОБИДА


Не плачь, глупышка, все равно я тебя люблю :3
359 1333341
>>33314

>не любят именно пхп, а не сам язык


Чтоу

>Антиэстетичность это тоже субъективизм чистой воды.


Ну да, субъективизм, например, хирург может вообще не понять, что я имею в виду.
Но если я вижу программиста, который этого не понимает, то для меня он не совсем программист уже. Потому что его субъективный мир допускает такую каку.
360 1333342
>>33341

>Чтоу


А ты не из быстрых на хаскеле лениво пишешь, да?
361 1333343
>>33334
>>33334
А я тебя нет.

>>33341
То есть ты даже не допускаешь хотя бы мысли о том, что твой субъективный мир может отличаться от субъективного мира другого программиста?
362 1333348
>>33343

>субъективный мир


>эта гуманитарная маня


Ясно.

>А я тебя нет.


>эта кокетничающая маня


Понятно.
363 1333350
>>33348
Вали нахуй из моего треда, пиздоглазое мудило.
364 1333351
>>33342
Для тебя это может быть шоком, но я на дваче не живу
>>33343

>То есть ты даже не допускаешь хотя бы мысли о том, что твой субъективный мир может отличаться от субъективного мира другого программиста?


При чем тут субъективный мир. У любой профессии есть стандарты. Например, я допускаю, что людям может нравиться здание театра et cetera в Москве, но если такой человек скажет, что он архитектор, для мне он не будет архитектором, он будет долбоебом. Потому что с точки зрения архитектуры этот театр пиздец. И архитектор тебе даже формально распишет, почему это пиздец, но для этого достаточно взгляда.
То же касается и пхп. Этот язык один из самых страшных из существующих. И если кто-то этого не видет, это не программист. Как вот тут >>32753
смотришь на код, и видишь, что человек не программист, а учится. Субъективно? Возможно. Неверно? Нет.
365 1333355
>>33351
Судить о вещах по их форме, а не содержанию это удел формалистов. Ты же не из этих, верно?
366 1333363
>>33350

>КУДАХ БАБАХ КУКАРЕКУ


Ясно.
Понятно.
>>33351

>но я на дваче живу


Это заметно.
>>33355

>пхпдрисня


>содержанию


Утонченный копрофил пропагандирует, хаха.
367 1333367
>>33363
Хаха, кукареку, хаха.
368 1333368
>>33367

>кукареку


As expected.
369 1333370
>>33368
Тебя твоим же оружием.
370 1333372
>>33370

>эта воинственная маня


Прелесть какая :3
371 1333375
>>33355
Я программист, чувак. Конечно я формалист. А если ты не формалист, то хули ты забыл в программировании. Иди стихи пиши
372 1333382
>>33375
А если ты формалист, значит, у тебя нет фантазии, только промышленное мышление, решение проблемы в лоб. Это плохой программист.
373 1333387
Лол, первый раз такое вижу в сисяче. Что вы тут устроили?
374 1333389
>>33382

>решение проблемы


Гуманитарный пхпдаун рассуждает о решении проблем (с) картина маслом, Иероним Босх
375 1333390
>>33387

>Что вы тут устроили?


К нам приехал цирк!
Или зоопарк, тут пока непонятно.
eiwjgxotbhxtvbc7qijy0nt6rky.jpeg111 Кб, 1024x685
376 1333423
>>33390
>>33389
>>33387
Набег школьников по всем тредам, словно каникулы начались
377 1333539
>>33109
Можно и calloc. calloc() - это malloc() + memset() в наивной реализации.
378 1333549
>>33016
Мне 35, я инженер, большей частью имею дело с ТРИЗ.
Давай, рассказывай мне про математически строгие абстракции.

> советским учебникам


Лютейшее дерьмо, есть буквально один-два учебника в каждой области, но и они говно по сравнению с западными.
Последний раз годные учебники были еще при Сталине, потом все говно.
379 1333551
>>33549
Ты видел сталинские учебники?
380 1333555
Проблема с динамической памятью в двумерном массиве.
https://ideone.com/flp1E0
Одномерный массив компилятор пропускает, но двумерный почему-то не хочет. Как заставить пропускать?
381 1333556
>>33555

>scanf("%i ", &razmer);


Вот здесь ошибка, думай.
382 1333571
>>33555
1) Инициализаторов в структурах (5 строка) в Си нет.
2) razmer + 5 это неправильный размер динамического массива, судя по циклам ниже. Возможно, ты хотел умножить?
3) Многомерных массивов в Си нет, но ты можешь делать массив массивов. Например, массив из razmer массивов по 5 char. Если на стадии компиляции известно хотя бы последнее измерение (5), ты можешь заставить компилятор индексировать динамический массив, например, так: https://ideone.com/WAGTWz Если нет, то Си тебе ничем помочь не может, и для массива n ∗ m (n строк по m элементов), ты получаешь из строки i элемент j вручную с помощью выражения типа array[i ∗ m + j].

>>33556
Нет там ошибки.
383 1333576
>>33571

>массив массивов


Говно тупого говна в большинстве случаев.
384 1333582
>>33571
Многомерных массивов в Си нет? Што? А massiv[x][y][z] это какой, одномерный?
385 1333586
>>33582
Многомерный массив - это такой тип, который хранит все размерности сразу. Т.е., условный многомерный massiv[x,y,z] - это массив с тремя размерностями x, y и z.

> А massiv[x][y][z] это какой, одномерный?


Да. Это (одномерный) массив из x элементов, каждым из которых является (одномерный) массив из y элементов, которые являются (одномерными) массивами из z элементов. Эту конструкцию можно использовать, как многомерный массив, но "настоящим" многомерным массивом она от этого не становится.
386 1333593
>>33582
Учитывая, как надо изъебнуться, чтобы передать в функцию указатель так, чтобы пользоваться arr[j][k], а не arr[isi+jsj+k] - их нет.
387 1333596
>>33593
Текст пожрал долгоносик, но суть ясна.
388 1333600
>>33593
Просто передаешь не указатель, и не массив, а указатель на массив. Я бы не назвал это таким уж сильным изъебом.
389 1333620
Весьма познавательное дерьмо:
https://www.chiark.greenend.org.uk/~sgtatham/mp/
390 1333647
>>33571

>https://ideone.com/WAGTWz


невозможно преобразовать "void " в "char ()[][5]"
391 1333655
>>33647
Потому что не надо компилировать C в компиляторе, предназначенном для C++.
392 1333659
>>33655
Что может компилятор для C, то может и для C++, а твой код просто не работает.
393 1333660
>>33659
То, что ты написал, доказывает, что не может.
sage 394 1333664
>>33551
Майнкампф называется.
395 1333677
>>33659
В Си указатели на void сами отлично кастятся в указатели на другие типы, в крестах нужен явный каст. Добавь каст у calloc(), и все заработает.
396 1333685
>>33677
Это ненужная условность, которую в крестах сделали обязательной?
397 1333686
Анон, в универе на уровне оси(убунты вроде) заблокирован запуск компилятора(ссылается на права) во время экзамена. Есть теоретическая возможность запуска/компиляции проги на си без gcc и ко?
398 1333688
>>33686
Не знаю, в моём универе на всех компах стоит десятка. Лицензионная.
399 1333689
>>33685
В то время, когда это дизайнили, никто не писал сложных крупных программ. Поэтому необходимость каста в крестах - это шаг в правильную сторону. Еще бы неявный каст между целочисленными типами убрали, и было бы совсем заебись.

>>33686
Зависит от того, какие именно там права. Если для тебя r нету, то ничего не сделать. Если такая проблема только у gcc/cc, можешь научиться самостоятельно, без драйвера дергать все эти cpp, сс1, as и ld. Или, может быть, у тебя есть возможность заранее притащить и спрятать по-тихому какой-нибудь tcc?
400 1333741
>>33686

>заблокирован запуск компилятора



Кросс-компилируй на телефоне!
401 1333774
>>32602

> C с диезом



это что? с шарпом чтоли?
402 1333779
Анон, а как потоковый шифр расшифровать? Откуда ту же самую гамму взять, если она псевдослучайна, она сохраняется где-то?
403 1334139
>>33689
Анончик, шаришь в с++?
Какая у тебя сфера работы?
404 1334153
>>33551
По лиспу?
405 1334159
>>33549

>Мне 35, я инженер, большей частью имею дело с ТРИЗ.


ТРИЗ - шарлатанство, если ты в 35 это не понял, то ты не инженер, а так, символ деградации российской промышленности.
406 1334213
>>34159
Чини детектор, я в СШУ живу и работаю уже 15 лет, в сфере высокоточной обработки сплавов. Российской промышленности блядь. У нас курсы и семинары по TRIZ хз имеет ли отношенин этот ТРИЗ к оригинальному.
407 1334233
>>34159

>ТРИЗ


Че за ТРИЗ? В вике прочитал по диагонале так говно какое то, магия уровня нейродолбоебов, лол
40243.jpg64 Кб, 529x647
408 1334267
>>34233
О, а вот и малолетние долбоебы подъехали.
Поссал тебе по диагонале в ротеш, лоллируй.
409 1334270
>>34267
Дебилы*
410 1334307
>>33779
Ээээ. Именно потому что она псевдослучайна, ее можно воспроизвести, зная секрет (значение, которым инициализирован генератор, зерно). Вот если бы она случайна была, то ее пришлось бы хранить и заранее передавать, и у тебя бы получился классический OTP.
411 1334309
>>34267

>Поссал тебе по диагонале в ротеш


Словно что то плохое, а вот ТРИЗ это говно, да.
412 1334433
>>34309
Говно - это быть школодебилом (вроде тебя)
Все остальное на твоем фоне не так уж и плохо.
Кретин с сигарой !03BA8gvmdc 413 1334441
>>34309
ТРИЗ всего лишь современный метод разработки систематизированый по опыту предыдущих изобретателей. Ещё в совке были всякие технологические прогнозирования без задач при РАН. Морфологический анализ комбинаторика выбора из существующих вариантов, а ТРИЗ на новые решения больше нацелен.
414 1334496
>>34441
ТРИЗ - это шарлатанство для зарабатывания бабок на тренингах
415 1334550
>>34441

>ТРИЗ всего лишь современный метод разработки систематизированый по опыту предыдущих изобретателей.


Ну и чего там за последние 50 лет наизобретали? Как жгли динозавров в цилиндрах так и жгут, как петарды хуярили в недокосмос так и хуярят.
416 1334553
>>34550
двачую. Никаких изобретений с этим потреблядством. Только транзисторы уменьшаются, вот и вся революция.
417 1334571
>>34550
Квантовые пекарни перевалили за 10 когерентных кубит. Неслыханная дерзать для последних 50 лет.
418 1334572
>>34571

>Квантовые пекарни


Какое то маркетинговое оверхайповое говно, я бы этим квантовым маняматикам платил бы зарплату в квантовых состояних, типа одновременно деньги уже потрачены на все ништяки и в итоге 0, распишитесь.
419 1334579
>>34572
Ну, говорят, что поиск по БД сокращает на треть без хешей даже. Для огромных БД это неслыханная экономия. Им это и выгодно.
Когда-нибудь на Сях будут писать даже для квантовых архитектур. Да и для меня тоже интересно, ведь заставляет мыслить иными категориями. Логические вентили там не классические NOR, AND, OR, XOR, NXOR, NAND, NOR а вентили смены поляризации по фазам в цикле 3600. Так если поляризацию поставить 50/50по фазе либо на 900 либо на 2700, то получится аппаратный генератор случайных чисел и кубит будет схлапываться в 1 или 0 с шансом 50 на 50. Полезно, если ржаветь начну, но само собой классическую бинарную логику они никогда не вытеснят. Зато в хуйлоаде пригодится.

>типа одновременно деньги уже потрачены на все ништяки


Нихуя, они только по бумагам будут в неопределённом состоянии в зависимости от фазы квантовых регистров, а на деле они всегда будут либо однозначно приваливать, либо однозначно утекать хуй пойми куда в квантовые подпространства, лол
420 1334580
>>34579

>Ну, говорят, что поиск по БД сокращает на треть


Пусть зделоют, будем посмотреть,

>от фазы квантовых регистров, а на деле они всегда будут либо однозначно приваливать, либо однозначно утекать хуй пойми куда


Еще им столовку зделоть с квантовыми состоянимя, типа приходят, а им говорят вы уже пожрали, идите на хуй, вмиг начнут рационально думать, а не нести хуйню.
421 1334581
>>34580
Не надо про еду. Я кушать хочу. Это больная тема.
...
Давай я лучше про квантовую механику расскажу...
422 1334582
>>34581

>квантовую механику расскажу


нинадо, там настоль все нафантазировали, что сами уже в это не верят.
423 1334980
>>30292
Стивенс
424 1334981
>>30485
isspace(arr[j]) возвращает булево значение, как и этот твой ==, именно такое значение и запихивается в if
425 1335067
Почему
c=getchar() != '\n'
Выдает ошибку lvalue required as left operand of assignment?
Хотя если заклюючить c=getchar() в скобки то все нормально?
426 1335131
>>35067
В общем разобрался
427 1335428
>>35131
че было?
428 1335453
>>35428
Школа
429 1335720
Как сохранить массив флоатов в файл, что бы потом прочитать из оного в такой же массив?
430 1335728
>>35720
нормализуй, сохраняй мантиссу и экспоненту как целые числа
это легко, на самом то деле..
погугли, епт
431 1335732
>>35728
А зачем че-то делать, не разумнее просто так записать?
432 1335753
>>35732
А как? Можно пример?
433 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);
434 1335819
>>35756

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

Бинарный вид - такое представление в нулях и единицах, с которым уже напрямую работает процессор, когда что-то вычисляет, а текстовый - это когда человеческими цифрами/буквами записано.
435 1335830
>>35819
Спасибо заменил fprintf`ом. А как теперь лучше записать и считать массив? Тупо в цикле прокручивать каждую цифру? И ещё если мне после запятой достаточно двух знаков, во fprintf`е я могу указать
"%.2f", но во fscanf`е такое не работает?
436 1335844
>>35753
ну, бля, используешь union чтобы удобно работать с представлением вещественного числа, извлекаешь мантиссу и экпоненту, дальше сохраняешь их как целые числа
изи
437 1335847
>>35756
так ты потеряешь точность, так не делают
438 1335855
>>35847
вернее, точность ты все равно потеряешь
но сериализацию ты делаешь уже с требуемой endianess
все легко!
439 1335881
>>35830
Зачем scanf сообщать число знаков после запятой? Сколько по факту есть, столько и пропарсит.
440 1335890
>>35756
В wb добавь плюс к, и читай зеркальной функцией fread
441 1335902
>>35890
И имеешь ввиду fopen("AlphStep.txt", "wb+k" ); ? Так вообще не работает.
442 1335908
>>35902
...Во работает вроде:
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);
443 1335920
>>35902
К -очепятка
444 1335923
>>35908
Ой, там в fread амперсанд лишний, хотя и так и сяк работает, хм.
445 1335934
вы в норке то шебуршили хоть раз
446 1335940
изображение.png28 Кб, 550x620
447 1336225
Существует ли Русская локализация для крестов, как типа разные версии 1С Предприятие, который помимо оригинальной версии с командами на Русском есть с командами и на других языках?
448 1336297
>>35940
пизда!
449 1336342
>>35720

> Как сохранить массив флоатов в файл


Можно записать просто так, вот банальным fwrite. Гарантируется, что в пределах одной машины все прочитается без проблем. На самом деле прочитается на любой машине, которую ты сможешь найти, если совпадает endianess, потому что IEEE754 умеют все. Если хочется максимум переносимости (C99 и выше), то fprintf(fp, "%a", number).

>>35844
Очень костыльный и сложный метод, не стоит так делать.
photoeditorsdk-export.png141 Кб, 1536x864
450 1336459
Что я делаю не так?
451 1336465
Я извиняюсь, шарпы тут?
452 1336466
>>36459
Массив нужно заполнять и выводить циклами.
sage 453 1336467
>>36465
У них свой тред .NET. Ищи.
454 1336469
>>36342

> и в


поверь мне как правильно сериализовать вещ числа, знают всего лишь несколько человек в мире и ты явно в их число не входишь ))
455 1336475
>>36467
Значит шарп далек от крестов? И шарп дабе не сиподобный, как заявлено в шапке?
456 1336479
>>36469

> поверь мне


Не поверю. Для тебя сделали %a, которая сериализует и восстанавливает без проблем. Это если про плавающую точку говорить. С фикседпоинтом все сложно.
457 1336492
>>36469
Бинарное представление вещественых чисел стандартизовано. Ничего знать не нужно.
458 1336558
>>36459
>>36466
Что-то вы, уважаемый, хуйню какую-то сказали про циклы. Просто анон считал один символ, а остальное - мусор ('i' на второй позиции попалось, '\0' на седьмой). %s строки считывать надо, как и выводить
459 1336613
>>34307
Спасибо, анон, я вроде как и сам вкурил!
Раз ты в теме, дай совет. Я хочу написать сам что-нибудь связанное с безопасностью и/или сетями. Есть книги, ресурсы или идеи по теме? Может какой-то простенький протокол, который можно реализовать? Если честно даже простеший A5/1 по RFC нихуя не понятен. Пару лет назад читал том Олиферов по Сетям-нихуя не понятно было, на практике как-то лучше идёт.
460 1336617
>>36492

Давай я запишуна шиндовс-х86 float32 в файл , а ты его на PowerPC Mac из файла прочитаешь.
461 1336620
>>36617

Или еще лучше, давай я на PlayStation 2 запишу валидный float32 в файл, а ты из него прочитаешь +-Inf или NaN.
462 1336621
>>36558
Всё верно, проглядел %c, спасибо <3
sage 463 1336622
>>36475

>Значит шарп далек от крестов? И шарп дабе не сиподобный, как заявлено в шапке?



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

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

Список тредов в шапке раздела.
464 1336626
>>35908
>>35902
>>35830
>>35756

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

Хуяк-хуяк:

> fd = fopen("foo", O_RDONLY);


> pagesize = getpagesize();


> data = mmap((caddr_t)0, pagesize, PROT_READ, MAP_SHARED, fd, pagesize);



И файл уже в оперативе так-то. Берем указатель data и дальше кастуем как хотим, дрочим байты как хотим. Никаких циклов-хуиклов.
465 1336708
>>36626
Действительно. Тут люди про переносимость на уровне архитектуры думают (endianness). Не понятно, с чего бы у кого-то #include <sys/mman.h> вызвало вопросы. Кому линуксовые фичи не завезли, тот не программист... А вообще:
- чувак, как интеграл вычислить?
- чего ты как ламер? Загугли "scientific calculator online" и будет тебе счастье..
Тут люди целенаправленно основы изучают, а ты им юзерские ништяки предлагаешь.
466 1336713
>>36708
Читай: препод на лабах запрещает mmap использовать
467 1336714
>>36626

> И файл уже в оперативе так-то


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

> дрочим байты как хотим


Тут-то я и достаю флешку, с которой ты этот файл открыл.

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

>>36620

> а ты из него прочитаешь +-Inf или NaN.


Если ты пишешь NaN в файл, у тебя проблемы с головой, а не с представлением чисел.
468 1336715
>>36626
fopen? Ты ничего не перепутал?
469 1336717
>>36713
Стало быть, я недостаточно очевидно обозначился, как третье лицо. Чувак, это не у меня препод и лаба. И у того анона тоже не факт. Может для собственного развития пробует в ручную запись и чтение числовых данных с использованием буферов. И, кстати, чтоб просто несчастный массив вычитать, только быдлокодер станет дергать mmap(). Есть подозрения, что веду диалог с наполовину троллем, наполовину любителем похвастать, что читал Advanced Linux Programming. Это все мимо кассы.
1545655093127940488.jpg81 Кб, 650x439
470 1336761
>>29854 (OP)
Сисюеы, нужно заебенить по шариату кросплатформенное логирование мнгопроцессной йобы, как там по канонам делоть?
471 1336762
>>36225
Нет. Очень странно, но нет.
472 1337199
>>36714

>Если ты пишешь NaN в файл, у тебя проблемы с головой, а не с представлением чисел.



https://wiki.pcsx2.net/PCSX2_Documentation/Nightmare_on_Floating-Point_Street
473 1337428
Что за t_
который везде пихают?
часто вижу,
t_list
t_point
t_bool
474 1337435
475 1337437
>>37435
да, но как это понимать
476 1337507
>>37437
Чтоб не путаться в пространстве нормальных имен. Позволяет избежать конфликта имен. Вряд ли ты назовешь переменную t_varname, но вполне может захотеться написать point, и будь тип назван так же без префикса - +1 лишний стресс. Есть вариант с суффиксом zalupa_t, но это в POSIX зарезервировано (pthread_t, ...), так что нежелательно.
477 1337512
>>37199
И что это доказывает? NaN - это такая штука, которая говорит, что твоим вычислениям пришла пизда. Нет никакой необходимости писать заведомо бесполезные результаты в файл или читать их оттуда. Тем более на PS2.
478 1337600
>>37507
>>37428
Нет, это для того что бы когда код переносишь на другую ОС\Язык , менять под их типы данных.
479 1337717
>>33774
С хэштегом бля.
480 1337824
Анон, где можно прочитать про видимость функций в Си?
Где переменная создается, где им можно пользоваться, структура, массив.
А то иногда передаю указатель из функции в функцию, а компилятор жалуется , что данные локальные
481 1337834
>>37824
Под локальный массив место в стеке выделяется. Как только функция возвращается, никто этот отрезок RSP-RBP не защитит от перезаписи другими вызовами. Warning как раз намекает, что ты стреляешь на удачу. На высоком уровне абстракции не может быть внятной инфы, как это все работает. Чисто high-level категориями описываются другие языки, которые без указателей. Или покорно следуешь правилам, к чему можно обращаться, а к чему нельзя, мирясь со своим положением и не пытаясь вникать, что за магия больших дядь под этим лежит, или читаешь, как работает сегмент стека, heap, malloc и free (new и delete) и т.д. Любая нормальная книжка по Assembly начинается с этой теории. За вечерок(-другой, если туго) перевариваешь, и потом никаких вопросов, подводных камней, исключений, частных случаев и прочей поеботы, одно счастье и Сишечка one love.
482 1337840
>>37824
Ты не поверишь, но в книжке с оппика
image.png52 Кб, 272x186
483 1337867
>>37840
Вот это поворот
Capture.JPG27 Кб, 585x319
484 1338088
Эксперты, я запутался.
Почему корректно возвращает целую часть? Почему не странный мусор от прочтения double как int?
Возврат функции автоматически кастует?
485 1338093
>>38088
А ты распечатай z прямо в функции и посмотри.
486 1338096
>>38088
да, там ведь return z; явно по контексту анализируется: return type - int, z type - double. Вот возвращался бы указатель - уже бы хрен что внятное распечаталось.
487 1338098
>>38088
Потому что функция возвращает int, и Си автоматически преобразовывает тип, как если бы было:
int return_value = z;
return(return_value);
488 1338099
>>38088

>Почему не странный мусор от прочтения double как int?


>int myfunc(...)


Хм...
489 1338105
>>38088
Добавлю:

> Почему не странный мусор от прочтения double как int?


Это когда printf("%d\n", 1.0);? Дело в том, что printf(fmt, ...) - функция с переменным числом аргументов, и ни Си, ни сама функция не знают, что ей передали в ..., поэтому компилятор не может ни контролировать тип на самом деле может, сейчас в компиляторах есть костыль, который парсит форматную строку, если она доступна, ни преобразовать его в описанный форматной строкой. Поэтому все передается как есть, и printf, когда читает %d, читает int, несмотря на то, что был передан double. А вот в твоем примере вся информация о типах доступна, поэтому все само конвертируется.
Capture.JPG46 Кб, 850x380
490 1338107
>>38096
Спасибо!

>>38098

> Си автоматически преобразовывает тип


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

>>38093
На пике приложил, мусор есть.
awesome.jpg11 Кб, 214x229
491 1338110
>>38105
Спс
492 1338115
>>38107
Все правильно, молодец.
493 1338146
>>38115
>>38105
Еще чуток вашего внимания:
Я так понимаю, это конвертируется компилятором. Вопрос - это в соответсвии со стандартом? Где это искать вообще?
Уточню: возвращает int и конвертирует в int я понимаю что разные вещи.
return.png40 Кб, 744x191
494 1338165
>>38146

> Вопрос - это в соответсвии со стандартом? Где это искать вообще?


C11 6.3 Type conversions, 6.8.6.4 Return statement (пикрил).

> возвращает int и конвертирует в int я понимаю что разные вещи.


Сначала конвертирует (если нужно), потом возвращает.
495 1338176
>>38165
Добра счастья любви и денег тебе и всем в этом треде
496 1338534
>>38107
а как ты в файл выводишь?
497 1338633
>>38534
В винде - редирект:
cmd
mytest.exe > output.txt
У Праты это разжевано предельно.
richi.PNG90 Кб, 822x278
498 1339066
Не могу разобраться с пиком. Почему мы сдвигаем x на p+1-n? Разве над сдвигать не просто на p?
499 1339085
>>39066
Зависит от того считаешь ты биты слева направо или справа налево от точки сдвига.
ф.PNG68 Кб, 824x160
500 1339163
>>39085
Биты считаются справа налево
12eaa83a186435af3b0d14f244343d8e.jpg38 Кб, 409x278
501 1339332
>>39163

>справа налево

Screenshot 2019-02-01 at 19.14.55.png37 Кб, 399x239
502 1339424
Поч сегментейшн фолл, не пойму. Варов и ошибок нет
503 1339501
>>39163

> Биты считаются справа налево


Потому что тут тебя намеренно запутывают. Тут биты в байте считаются справа налево, но p указывает самый старший (самый левый) бит в битовом поле. Поэтому и такое выражение. Если бы считали справа как люди (getbits(x, 3, 4) = взять 4 бита, начиная с третьего, т.е., 3, 4, 5, 6), тогда бы ты сдвигал просто на p.

>>39424

> Поч сегментейшн фолл, не пойму


И мы по огрызку кода тоже не поймем. Может быть, у тебя один из файлов не открылся, а ты не проверил?
Screenshot 2019-02-01 at 20.28.18.png76 Кб, 593x595
504 1339515
>>39501
да вроде ничо такого
505 1339521
>>39515

> fp = fopen(name1)


> fp = fopen(name2)


> да вроде ничо такого

506 1339595
>>39521
Упс
507 1339778
>>35067
Приоритет операции != выше, чем операции =. Поэтому надо писать:

(c = getchar()) != '\n'
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 11 марта 2019 года.

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

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