Этого треда уже нет.
Это копия, сохраненная 2 марта 2023 года.

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

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

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

Что читать:

- 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://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

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

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

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.
Этот тред копия 01/08/19 Чтв 23:34:41 №1446278 с вебархива №47
Прошлые треды:
предыдущий тонет тут: https://2ch.hk/pr/res/2493863.html (М)
https://arhivach.ng/
2 2495439
пукнул
3 2495461
если мы посмотрим адрес указателя, то мы получим указатель на указатель? накуй такое может понадобиться?
4 2495472
>>495461

Двумерный массив.
изображение.png84 Кб, 275x183
5 2495959
>>495472
да, ето Я, слушаю
изображение.png132 Кб, 640x325
кот_волшебник 6 2495960
бамп в легитимном
photo2022-10-23 11.03.33.jpeg30 Кб, 1080x586
7 2496050
8 2497012
Тред умер, смысл перекатывать?
И вакух нихуя нет, чуть-чуть ебли с линуксом в госпарашах, чуть-чуть микроконтроллеров. Нахуй так жить.
9 2497048
10 2498261
>>495049 (OP)
Ну наконец-то тред в перечне появился!
11 2499223
сап, впервые пишу чет параллельное, считаю тройной интеграл в области
https://pastebin.com/nX3vEx2X

считает то норм, но время работы рассчитывается пиздец странно - по смыслу это время работы самого длительного процесса, но почему то на 1 процессе оно быстрее чем на 4, а на 4 быстрее чем на 16 потому что говнокод

сможешь помочь подправить?
12 2499275
>>499223
это типа ты на разные ядра суешь треды?
мож прост куду заюзать?
13 2499319
>>499275
По идее нужно было прост написать параллельную MPI-программу для интегрирования методом Монте-Карло,
которая принимает аргументом точность и генерирует точки до тех
пор, пока численный ответ не приблизится к аналитическому.

Если бы не задание, тут и параллелить не было бы смысла. Кажется что накладных расходов на организацию параллелизма больше чем выгоды но скорее всего это потому что говнокод
14 2499941
Пора перематываться на голанг
15 2500069
>>499941
Как язык с ГЦ пересекается с областью применения Си?
16 2500107
>>499319

В общем это говнокод, поэтому все так медленно работает. Да? Ты сам ответил на свой вопрос?
скрепка.jpg62 Кб, 571x357
17 2500849
Анон, напомни почему параметризируемый стэк это пиздарики?
запрещенное-видео.mp43,9 Мб, mp4,
450x360, 1:24
18 2500909

>лыхитимный


>нелыхитымный



ебонашки что творите то блять вас сдесь полинвалида вы чё делите то блять конченые я хуею с вас прост
19 2501156
Битовый сдвиг вправо для знаковых целых implementation defined. Как написать кроссплатформанный код для получения 4 старших бит из char, с учётом того что он может быть как знаковым, так и беззнаковым, не нарушая штандарт? допустим char всегда 8 бит
20 2501329
>>501156
uint8_t
I
N
T
8
_
T
21 2501332
Я пишу в файл, делая несколько fwrite, потом закрываю. Укажите самый простой и корректный способ проверки, что все данные записались без ошибок.
22 2501348
>>501156

>Битовый сдвиг вправо для знаковых целых implementation defined.


Странно, в крестах в стандарте закреплено что для знаковых арифметический, для без - логический.
23 2501367
Там дебил или жирнич. 4 старших бита со знаком всегда будут ID, потому что битовое представление знака ID.
24 2501377
>>501348
Начиная с C++20
25 2501384
>>501367

> потому что битовое представление знака ID.


C99 6.2.6.2
the sign bit is one, the value shall be modified in one of the following ways:
— the corresponding value with sign bit 0 is negated (sign and magnitude);
— the sign bit has the value −(2N) (two’s complement);
— the sign bit has the value −(2N − 1) (one’s complement).
Which of these applies is implementation-defined, as is whether the value with sign bit 1 and all value bits zero (for the first two), or with sign bit and all value bits 1 (for one’s complement), is a trap representation or a normal value. In the case of sign and magnitude and one’s complement, if this representation is a normal value it is called a negative zero.
26 2501742
>>501332
Ну сделать fflush(file), напрммер
27 2501743
>>501742
Перед закрытием файла, конечно
28 2501762
>>501743
На диске нет места - как и где на это проверить?
29 2501775
>>501762
fflush(), если всё ок вернёт 0. Если нет, то он вернёт константу EOF и запишет в специальную глобальную переменную errno код ошибки. Коды ошибок у fflush() в общем те же, что и у системного вызова write(). Ну там уж гугли, какие они бывают. Короче далее проверяешь, что errno равен такому-то коду и делаешь уже то, что нужно в случае ошибки
30 2501830
>>501775
fflush вернет мне ошибку, если какой-то из предыдущих fprintf не смог записать все байты?
31 2502136
Чтот я раздуплить не могу, что такое /dev/input/event* ?
Это просто отладочная какая то штука или через нее реально драйвера для нажатий на клавишы пишут?
32 2503178
Есть альтернатива на сишке как ipadress у go
Нужна либа для айпишников
33 2503282
>>503178

> Нужна либа для айпишников


Твои sockets.h
34 2504453
Что это? Что это к нам ползёт? Что это за омерзительный старый дед, воняющий мочой? Почему вместо штанов у него плотно сбитое подсушенное говно? Что за жёлтые гнойные слюни текут из беззубого рта?

Это, дети, сишкоблядь. Посмотрине на него внимательно. Посмотрите. Видите, как трясутся руки у полудохлого пердеда? Какие мозоли натёрты на кончиках стариковских пальцев? Видите, как согнута за бесконечными отловами use-after-free и stack overflow его тощая сутулая спина? Что шамкает этот старый хуеплёт? Что он пытается пробулькать своей омерзительной дырой на жопной роже?

--- Пфркхтпф сишка тру, - пёрнул старый хуесос, - Пфсишка пф лучший езык.

Видите, дети, как это омерзительно? Как мерзко выглядит этот выкинутый на свалку IT бывший специалист? Видите, как вываливается его геморроидальная кишка и на пол капают гнойные капельки ANSI C? Видите, как канатом вываливается пучок template-глистов? Как из поганой пасти старпёра вместе с кровавой блевотой вываливаются сегфолты и статичкеские типы? Видно ли вам, дети, как дурнопахнущие шаблоны кровавыми коростами отваливаются от костлявой жопы сишкоблядка, исполосованной пролежнями и целлюлитом?

Сишковыблядок - не человек. Это ебучий якорь мира IT, это сраная кодла говняных мух, которые только и умеют, что жрать говно и паразитировать на нём. Эти ебучие гигабайты сраного сишного кода, который надо обмазывать сотней анализаторов, чтобы отловить очередной глюк, высранный пиздорылой полудохлой шлюхой программистского сообщества. Сишкоблядство настолько глубого въедается в подкорку межушной пустоты дегенерата, что я могу определить сишкоблядь одним только взглядом. Они всегда нищие, потому что за патчики в швабодное ПО никто не платит, а современное ПО на Сишке это ебаное легаси, которое продаётся только по большим празникам. У них вседа круги под мутными глазёнками, потому что всю ночь они отлавливали место, где обращение к элементу массива крашится из-за того, что мудила не выделил в нужном месте память. У них всегда вздыбленные на жопе обдроченные брюки, и вовсе не от того, что дед опять обосрался, а из-за огромной геморроидальной грозди. И штаны обтруханы не из-за дрочева на баб, а из-за дрочки на славные 80-е, с их ебучими бобинами, перфокартами и иконкой сишкобляди - дискеточками.

Я презираю сишкоблядь. Если ты сишкоблядь, то пизданись своей закостенелой в непоколебимом апломбе старого дегенерата бошкой и освободи мир от своего присутствия. Никогда не садись рядом с нормальными людьми и не заговаривай с ними - ты сишкоблядь, недочеловек. кусок старого гнилого мяса. Иди на хуй. Вы превратили софт в ебаную кучу говна, которую проще переписать, чем доработать ваши высеры. Вы умудрились принести в 21-ый век то, что должно было загнуться в начале 90-х. Вы умудряетесь дышать, когда вам бы пора уже и к земельке привыкать.

День, когда сдохнет последний кодосёр на Сишке, станет праздником человечества.
34 2504453
Что это? Что это к нам ползёт? Что это за омерзительный старый дед, воняющий мочой? Почему вместо штанов у него плотно сбитое подсушенное говно? Что за жёлтые гнойные слюни текут из беззубого рта?

Это, дети, сишкоблядь. Посмотрине на него внимательно. Посмотрите. Видите, как трясутся руки у полудохлого пердеда? Какие мозоли натёрты на кончиках стариковских пальцев? Видите, как согнута за бесконечными отловами use-after-free и stack overflow его тощая сутулая спина? Что шамкает этот старый хуеплёт? Что он пытается пробулькать своей омерзительной дырой на жопной роже?

--- Пфркхтпф сишка тру, - пёрнул старый хуесос, - Пфсишка пф лучший езык.

Видите, дети, как это омерзительно? Как мерзко выглядит этот выкинутый на свалку IT бывший специалист? Видите, как вываливается его геморроидальная кишка и на пол капают гнойные капельки ANSI C? Видите, как канатом вываливается пучок template-глистов? Как из поганой пасти старпёра вместе с кровавой блевотой вываливаются сегфолты и статичкеские типы? Видно ли вам, дети, как дурнопахнущие шаблоны кровавыми коростами отваливаются от костлявой жопы сишкоблядка, исполосованной пролежнями и целлюлитом?

Сишковыблядок - не человек. Это ебучий якорь мира IT, это сраная кодла говняных мух, которые только и умеют, что жрать говно и паразитировать на нём. Эти ебучие гигабайты сраного сишного кода, который надо обмазывать сотней анализаторов, чтобы отловить очередной глюк, высранный пиздорылой полудохлой шлюхой программистского сообщества. Сишкоблядство настолько глубого въедается в подкорку межушной пустоты дегенерата, что я могу определить сишкоблядь одним только взглядом. Они всегда нищие, потому что за патчики в швабодное ПО никто не платит, а современное ПО на Сишке это ебаное легаси, которое продаётся только по большим празникам. У них вседа круги под мутными глазёнками, потому что всю ночь они отлавливали место, где обращение к элементу массива крашится из-за того, что мудила не выделил в нужном месте память. У них всегда вздыбленные на жопе обдроченные брюки, и вовсе не от того, что дед опять обосрался, а из-за огромной геморроидальной грозди. И штаны обтруханы не из-за дрочева на баб, а из-за дрочки на славные 80-е, с их ебучими бобинами, перфокартами и иконкой сишкобляди - дискеточками.

Я презираю сишкоблядь. Если ты сишкоблядь, то пизданись своей закостенелой в непоколебимом апломбе старого дегенерата бошкой и освободи мир от своего присутствия. Никогда не садись рядом с нормальными людьми и не заговаривай с ними - ты сишкоблядь, недочеловек. кусок старого гнилого мяса. Иди на хуй. Вы превратили софт в ебаную кучу говна, которую проще переписать, чем доработать ваши высеры. Вы умудрились принести в 21-ый век то, что должно было загнуться в начале 90-х. Вы умудряетесь дышать, когда вам бы пора уже и к земельке привыкать.

День, когда сдохнет последний кодосёр на Сишке, станет праздником человечества.
35 2504532
Ковыряю графическую панель по работе.
Опытные господа, свангуйте что может быть не так.

Мне надо реализовать возможность "дельты" для параметра (сумма или разность с текущим измеренным значением) в макросе (так обзывается оболочка, в которой исполняется пользовательский код на Си).

Измеренное значение отображается в дисплее с типом DWord и форматом Float.

Код:
float tmp_val = 0;
int delta = 0;
DWORD temp_value;

// в промежуточную переменную типа Float (tmp_val) заносим сумму или разность считанного значения типа DWord (temp_value) и дельты delta типа Int (в зависимости от знака дельты)
// Здесь же преобразуем DWord (temp_value) в Float
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta -1));
// заносим значение промежуточной переменной tmp_val в регистр, например, PSW300 (+ 301) - который и отображается в дисплее с типом DWord и форматом Float
(float)(PSW+300) = tmp_val;
, где:
delta - переменная типа Int, которая хранит собственно дельту;
tmp_val - переменная типа float, которая хранит промежуточное значение для вычислений;
temp_value - переменная типа DWord, которая хранит считанный с преобразователя параметр;

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

Проверял код в эмуляторе Си - всё впорядке: https://onlinegdb.com/UPxuD_VG8

В чём проблема?
Предположил, что по каким-то причинам косяк в арифметических действиях между целочисленными и вещественными типами (Inи Float).
Пробовал привести типы к одному, явно и не явно:
(float)delta;
float tmp_delta = delta;
Даже так попробовал:
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta
-1.0));
По идее, компилятор должен автоматом привести к типу Float.

Пробовал и замену суммы, на разность (для того и умножал на -1) - не помогает.
Типа,
10 - 3 = 7;
10 + (-3) = 7;
10 - (-3 * -1) = 7;

Что может быть не так? Почему с положительной дельтой всё нормально, а с отрицательной проиходит непонятная хрень?

Поддержка молчит.
35 2504532
Ковыряю графическую панель по работе.
Опытные господа, свангуйте что может быть не так.

Мне надо реализовать возможность "дельты" для параметра (сумма или разность с текущим измеренным значением) в макросе (так обзывается оболочка, в которой исполняется пользовательский код на Си).

Измеренное значение отображается в дисплее с типом DWord и форматом Float.

Код:
float tmp_val = 0;
int delta = 0;
DWORD temp_value;

// в промежуточную переменную типа Float (tmp_val) заносим сумму или разность считанного значения типа DWord (temp_value) и дельты delta типа Int (в зависимости от знака дельты)
// Здесь же преобразуем DWord (temp_value) в Float
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta -1));
// заносим значение промежуточной переменной tmp_val в регистр, например, PSW300 (+ 301) - который и отображается в дисплее с типом DWord и форматом Float
(float)(PSW+300) = tmp_val;
, где:
delta - переменная типа Int, которая хранит собственно дельту;
tmp_val - переменная типа float, которая хранит промежуточное значение для вычислений;
temp_value - переменная типа DWord, которая хранит считанный с преобразователя параметр;

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

Проверял код в эмуляторе Си - всё впорядке: https://onlinegdb.com/UPxuD_VG8

В чём проблема?
Предположил, что по каким-то причинам косяк в арифметических действиях между целочисленными и вещественными типами (Inи Float).
Пробовал привести типы к одному, явно и не явно:
(float)delta;
float tmp_delta = delta;
Даже так попробовал:
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta
-1.0));
По идее, компилятор должен автоматом привести к типу Float.

Пробовал и замену суммы, на разность (для того и умножал на -1) - не помогает.
Типа,
10 - 3 = 7;
10 + (-3) = 7;
10 - (-3 * -1) = 7;

Что может быть не так? Почему с положительной дельтой всё нормально, а с отрицательной проиходит непонятная хрень?

Поддержка молчит.
36 2504540
>>504532
Макаба пожрала символы...
https://pastebin.com/60wxR7pe
37 2504553
>>504540
Аппаратчик, я узнал тебя по говнокоду. Почему ты пытаешься программировать - кабаныч не выделил вакуху разраба? А уборщица у вас отдельная есть?
1667483623602.jpg193 Кб, 904x1280
38 2504854
>>504553
Ну дя, вапроси?
39 2504908
>>502136

>/dev/input/event* ?


https://www.kernel.org/doc/Documentation/input/input.rst}

>>504758 (Del)
Хуле там гуглить, если всё есть в документации ядра?
40 2504910
>>495461
Изменить указатель находящийся по этому адресу, например из другой функции.
41 2506330
Пишу много методов для работы со строками. Сотоит ли в каждую дыру пихать assert(str != NULL)?
42 2506350
>>506330
Много - не мало. Всегда сможешь релизную сборку сделать с -DNDEBUG
43 2507182
всем привет. понимаю что вопрос не совсем для программистов, но тут люди которые ближе всего к системе.

играюсь тут со скриптами из репозитория bcc, конкретно остановился на этом
https://github.com/iovisor/bcc/blob/master/tools/profile_example.txt

хотел собрать стэк работы ldap-сервера построить flamegraph и все-таке. но незадача - у меня вместо сигнатур функций [unknown] везде

https://pst.klgrth.io/paste/5dywb

кто может без окунания в говно пояснить поподробнее, что сделать чтобы их увидеть? я вроде попытался поставить пакеты debuginfo (конкретно 389-ds-base-debuginfo и 389-ds-base-lib-debuginfo), но ничего не завелось.
44 2507197
>>507182
Надо смотреть как собран этот ldap-сервер. У тебя по ссылке написано что оно не будет работать если программулина собрана с -fomit-frame-pointers, что очень вероятно, так как GCC включает эту опцию на O1 и выше.
45 2507241
>>507197
Ух блять епта, плохие новости. Но спасибо, я что-то проглядел.
Постараюсь узнать ещё у разрабов в рассылке что-нить.
46 2507283
>>507241
Если тебе чисто для профилировки, то собери сам с -fno-omit-frame-pointer
12164156416515321.jpg52 Кб, 293x447
47 2507713
>>504532
Рапортую.

Дело было в приведении типов: элемент Ввод данных для переменной дельты имеет тип Word и формат Dec. Переменная, хранящая дельту, имеет тип Int. Решилось всё с помощью преобразования Word_2_Int16(x). Далее тип Float и Int можно нормально складывать и вычитать.
48 2507720
>>507283
>>507197
да, спасибо ребзи. там все немного сложнее, и эта залупа работает в контейнере как часть freeipa сервера. так что там совсем уж просто так не получиться скачать сорцы из репы и пересобрать.
но будем пробовать. потом напишу в резюме что хуяк хуяк и sre
49 2507724
Посоветуйте что почитать можно чтобы в namespaces и cgroups линуксоуских разобраться
50 2507736
>>507724
а на каком уровне разобраться?

в 2022 мыслим только клиповым мышлением, так что для старта могу посоветовать видосик
https://www.youtube.com/watch?v=x1npPrzyKfs

а там куда нелегкая кривая теребения ядра заведет. хороших книжек по ядру (актуальных) вообще мало, так что попробуй оф. документацию
https://docs.kernel.org/admin-guide/cgroup-v2.html?highlight=cgroup
51 2507752
>>507736
Спасибо за ссылку, как раз то что искал
что то сам недопер сразу в документацию нырнуть
1511016876295.png56 Кб, 658x575
52 2508452
подскажите книжек или сайтов где qt creator объясняется для даунов. я гречневый васян, никуда не вкатываюсь, хочу сделать программку которая копирует функционал будильника из аимпа3.

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

но я не понимаю как доставать время из спинбокса и я не могу нагуглить ни на стеке ни где-то ещё как это делается на крестах. пожалуйста подскажите кто знает как доставать данные из формочек этих.
1542208515027.png219 Кб, 2050x1182
53 2508456
ситуация осложняется тем что почти всё что я могу нагуглить про кресты - это какие-то древние кресты, например в примерах постоянно упоминают string, а тут надо писать QString и прочие подобные расхождения.

и ещё - вот на скриншоте то что у меня сейчас есть. почему тут несколько файлов? если я объявляю переменную в main.cpp то я не могу использовать её в mainwindow.cpp но если я объявляю её и там и там то программа не компилится потому что надо объявлять в каком-то одном файле. можно ли как-то объявить переменную в одном файле а использовать во всех?
54 2508606
>>508477 (Del)

> Можно, ебани в хедер


ты имеешь в виду mainwindow.h? программа больше не компилируется, пишет :multiple definition of `fileName'; mainwindow.h:11: first defined here
больше я её нигде не объявлял, это единственное не закомментированное объявление. я не понимаю что ему от меня надо.
55 2508613
я нагуглил это https://stackoverflow.com/questions/30821356/multiple-definition-first-defined-here-errors но qt creator вроде уже сделал это.
1599317661693.png15 Кб, 439x148
56 2508619
а, всё, проблема решилась тем что я нажал build-run qmake а потом build-rebuild, так что это была особенность не крестов а особенность qt creator, и единственное где это объясняется это один пост на их форуме который еле заметишь.
изображение.png90 Кб, 283x178
57 2510945
суп
в универе дали задание написать алгоритм Ли, на языке С.
не программистская специальность, теории графов у нас не было, но там ничего сложного.
написал очередь для алгоритма, написал список смежности, и тут я проснулся в подливе и тут у меня возник вопрос: а этот алгоритм на списке можно вообще реализовать? все реализации которые я видел были на С++ матрицах смежности.
из литературы я изучал В.В. Прут "Алгоритмы на языке С" издательство МФТИ, там тоже всё на матрицах
двачик, я уже ёбнулся с этими структурами. хелп ми ор килл ми
58 2511040
>>510945
Если сам не осиливаешь, то спиши у другого
Не думаю что тут кто то за тебя будет Лабы делать
59 2511332
>>511040
это не лаба. в универе вообще ничего про это не было и не будет ни у кого на моей специальности.
мне и не нужно чтобы кто то что то за меня писал. мне просто нужны ответы на вопросы, по тому что я не понимаю некоторые моменты.
60 2511715
можете пояснить нахуя мне нужны указатели в функциях?

и что значит (void *) ptr
нахуй это вообще нужно?
61 2512030
Как дела в Си обстоят с джунами?Есть смысл имея университетский уровень языка дальше его изучать и искать работу?
62 2512253
>>512030
Да. Было бы желание, ибо сейчас байтоёбов с универа нихуя не выходит - все на вебе, мобилках.

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

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

мимо байтоёб
63 2512325
>>512030
Будешь пердолить Linux на ARM и RISC-V в госпараше за пайку Не вкатишься. Вакух для джунов на C/C++ нет.
64 2512697
>>495049 (OP)
Кто пробовал собрать gcc из исходников? Я вроде добился на ubuntu сделал ./configure потом make без ошибок. Вот только не понял make install надо делать? В оф. документации вообще не говорится что это надо делать. Где теперь новые бинарники? Как запустить?
65 2512792
>>512697
Самый простой способ собрать GCC - использовать ABE от Linaro.
Второй самый простой - скачать пакет ubuntu и пересобрать его примерно так:

apt source gcc
sudo apt build-dep gcc
cd gcc-<версия>
sudo debuild -b -uc -us

Вот только нахуй оно тебе нужно? Сборок под все существующие платформы сколько угодно.
66 2512799
>>512792
Я хочу отдебажить сам gcc. Я кажется нашёл что он пропускает warning с неинициализированным указателем в определённых условиях, хочу разобраться почему он так делает, ну и если я прав что это ошибка, то попробую сделать контрибьют. Хорошая строчка будет в резюме - типа я сам компилятор правил и почти весь прочитал.
67 2512809
>>512799
Дело хорошее, успеха тебе.

Тогда лучше всего собирать его с префиктом вроде /opt/gcc чтобы make install устанавливал его туда. В противном случае ты рискуешь переписать файлы системного gcc, что ни к чему хорошему не приведёт.

А еще я бы рекомендовал тебе всё это делать в chroot, чтобы не попортить систему. В этом случае даже если ёбнешь что, то перегенеришь chroot и всего делов.
Про chroot рекомендую почитать тут: https://wiki.debian.org/Schroot
k.jpg162 Кб, 1280x857
68 2512871
Аноны, а есть ли смысл писать на чистом Си, если ты:
. не имеешь дело с легаси кодовой базой;
. не разрабатываешь под платформу, на которой нет компилятора C++;
. не пишешь что-то настолько маленькое, чтоб удобствам C++ негде было проявиться?
Я прекрасно понимаю, почему с него полезно начинать. Приучаешь себя взвешивать цену каждого действия, и вообще простота для вката, годный учебник K&R, ничего лишнего, все только самое важное. Сам Сишечку люблю и обожаю. Но сейчас даже с точки зрения микрооптимизаций мне C++ кажется лучшим языком. На C может быть лень прибегать к нечитаемому байтоебству, и ты предпочтешь какое-то компромиссное решение. А на крестах ты один раз сделаешь какой-нибудь zero-overhead прокси-класс на темплейтах, и всегда простым синтаксисом будешь дергать его, получая идеальный перфоманс без компромиссов.

Алсо, слышал (и сам замечал), что на крестах бинарники получаются тяжелее из-за библиотек. Но разве под resource critical задачи не существует инструментов, которые выковыривают код неиспользуемых символов? Или на уровне .o файлов это какой-то неавтоматизируемый анализ с точки зрения математики? Я тупой, объясните.

А еще тут в каком-то из тредов кидали ссылку на cmustdie, где рассказывается, какие разработчики GCC конченные пидарасы, хуесосы и нехорошие люди. Стандарт стандартом, но разве это мешает запилить некий Gigachad C Compiler, который будет соответствовать всем канонам труъшности и гарантированно поддерживать всякие Кармаковские трюки as expected? Или gcc/clang так умеет, если прям все-все-все -fno-strict-aliasing проставить?

Ну а то, что он позволяеят делать что хочешь с указателями и не заставляет кастовать, как кресты, это мне как раз нравится, и тут анало-говнет, ящитаю.
69 2512928
>>512809
всё получилось, последняя версия gcc находит ошибку.
70 2512945
>>512871

>что на крестах бинарники получаются тяжелее из-за библиотек. Но разве под resource critical задачи не существует инструментов, которые выковыривают код неиспользуемых символов?


когда нет ресурсов пишут свои библиотеки.
можно ещё юзать прогу strip.
71 2512948
>>512945
strip это отдельная утилита, но есть ещё:

‘install-strip’

Like install, but strip the executable files while installing them. In simple cases, this target can use the install target in a simple way:

install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
install

But if the package installs scripts as well as real executables, the install-strip target can’t just refer to the install target; it has to strip the executables but not the scripts.

install-strip should not strip the executables in the build directory which are being copied for installation. It should only strip the copies that are installed.

Normally we do not recommend stripping an executable unless you are sure the program has no bugs. However, it can be reasonable to install a stripped executable for actual execution while saving the unstripped executable elsewhere in case there is a bug.

это опции сборки gcc , описаны на странице https://www.gnu.org/software/make/manual/html_node/Standard-Targets.html
лень проверять сколько сэкономят, пока мне это не надо.
72 2512950
>>512946 (Del)
ключ -Werror превращает предупреждения в ошибки. Я хочу писать идеальный код :-)
Screenshot from 2022-11-13 18-31-28.png126 Кб, 999x861
73 2512962
>>512871
Накатал простыню, а ебучая макака ёбнула постинг на моём адресе из-за какого-то ослоёба. А потому придётся вот так.

>>512950
Тогда еще использую -Wall, -pedantic
74 2512963
>>512962

>использую


используй
75 2513595
//
76 2513677
>>512253
Как вкатиться в этот опенсорц? Что надо знать?
Дальше создания профиля на гитхабе и ввкладывания туда своего мини проекта не заходил.
77 2513922
>>513677
Открывай тикеты и пиши багрепорты. Багов в софтах всегда хватает. Владеть схх не обязательно.
78 2514018
>>513677
Там с выходом новой убунты 22.04 все проги видеозахвата сломались. Попробуй починить.
79 2514165
>>501332
Чекай возвращаемые значения fwrite. Чекай errno. Если всё ок - fwrite возвращает колво записанных байт, а errno == 0
80 2514166
>>514018
Убунта не причём, это всё вейланд. На иксы переходи и радуйся жизни
81 2514168
>>514165
Ладно, паю годноту. Достаточно проверить перед закрытием ferror, потом проверить fflush.
82 2517054
Сап, аноньчик. Подскажи каких-нибудь сайтов/учебников с задачами и их решениями на си. Я вкатыш в си, лекции есть, а практики не хватает. Нужно что-то несложное но и с решениями для проверки
83 2517298
>>517054
Попробуй написать компилятор
84 2517327
Какой, на ваш взгляд, самый удачный способ синтаксически-стилистического написания указателя?

int myNum;
int
myNum;
int * myNum;
1.png4 Кб, 317x103
85 2517328
>>517327
Бля, звездочки проебались
86 2517330
>>517328

2 без вариантов
87 2517345
>>517328
Первое нелогично из за возможности объявить несколько таких переменных через запятую, и в каждой будет нужна звездочка. Тут же написано будто звездочка принадлежит слову типа, а значит остальные такие переменные должны быть без звездочек.
88 2517350
>>517328
>>517330
Я тоже 2 использую. Остальное вызывает отвращение.
89 2517392
>>517328
Изначально писал в первом стиле, правда хуй знает почему. Сначала подумал потому что так писали в K&R, но сейчас проверил второе издание и там второй вариант используется.
Но потом почитал умных книжек, набил шишек и перешел на второй вариант. Он верен хотя бы потому, что указатель - это не совсем тип данных, поэтому хули ему делать рядом со словом типа?
Даже диды пишу во втором стиле:
https://www.kernel.org/doc/Documentation/process/coding-style.rst
https://man.openbsd.org/style
http://doc.cat-v.org/bell_labs/pikestyle
90 2517409
>>517330
>>517345
>>517350
>>517392
Понял вас, господа
91 2517735
А еще можно писать звездочку вместо пробела, так лучше выравнивание в столбик.
image.png68 Кб, 225x225
92 2518241
Помогите написать функцию, которая переводит десятичное число в двоичное, но использовать массивы запрещено. Можно только циклы и printf scanf.
Я тупенький, если не могу это сделать? Мне как дальше то...
93 2518426
>>518241
Подсказко
& 1

>> 1

94 2518453
Здравствуйте, мудрецы-деды!
Бекендер-зумерок на связи.
Хочу вот долгое время изучить как устроены все мои приложухи на более низких слоях абстрации, поэтому захотел изучить C, но т.к я за практикоориентированное обучение, то могут ли мне мудрецы подсказать маст-хев проекты которые нужно реализовать.
Пока что в списке только два - HTTP сервер( не дорос до него чутка) и своя оболочка типо баша, но облегчённая(прямо сейчас делаю)
95 2518460
>>518453

>могут ли мне мудрецы подсказать маст-хев проекты


Да, есть такой. Функция, которая переводит десятичные числа в двоичные!
>>518426
Не понимаю...
96 2518465
>>518453
>>518460

>Да, есть такой. Функция, которая переводит десятичные числа в двоичные!



Да не, такое я уже много раз делал на других языках, мне бы чего поинтереснее
97 2518678
>>518465
Прогу консольную, которая извлекает все mp3 из произвольного незашифрованного несжатого архива. Если есть теги, то извлекает mp3 с тегами, если тегов нет, то извлекает mp3 без тегов. Понимает любые варианты mp3. Память использовать по минимуму, в идеале 64 килобайт.

То же самое для всевозможных вариантов jpg.

То же самое для всевозможных вариантов dds.

Прогу, которая извлекает всю графику из pdf в исходном качестве. Тут пригодятся наработки с jpg, а также библиотеки zlib и stb_image_write.

Консольный калькулятор с блекджеком и шлюхами. Чем больше умеет тем лучше.

Простую игру на винапи. Змейку например.
image.png2,5 Мб, 2560x1440
98 2518706
99 2518783
Как работают флаги -l(LIBNAME) у гцц?
Где находятся эти сорсы, которые он прикладывает?
У меня на убунту check 10 версии так подгружается через -lcheck, а мне нужно чтобы подгружался 11. Как обновить?
100 2519817
Ребята, есть ли разница между этими строками
struct FixedGridCell fixedGrid;
struct FixedGridCell fixedGridArray[1];
Мне нужно из C модуля в мою смузипарашу вытащить хороший указатель на один экземпляр моей структуры, чтобы потом копирнуть её в нативный буфер для ГПУ
101 2519958
>>495049 (OP)
>>1008826 (OP)
Без понятия как нормально сформулировать проблему, поэтому пишу сюда

https://pastebin.com/hmT1ZJD2

почему данный кусок поделки на C ничего не выводит, хотя очевидно что при табуляции X принимает значение 0? по наблюдениям при табуляции получается не точное число, а что-то стремящееся к данному числу. пытался в костыль с округлением, не помогло. При этом если заменить 1./10 на 1./2, то оно выполняется
}
102 2519994
>>519987 (Del)
Спасибо.
А есть более элегантные способы решения, чем домножение до целого числа? первое что в голову пришло
103 2520000
>>519994
дело не в умножении, а в том что ты можешь только сравнить больше или меньше число, но не использовать сравнение на равно.

x>0 или x<0 работать будет. сравнение на равенство может производится через так называемый epsilon, достаточно малое значение которое определяет разницу между величинами.

x-a < EPSILON.
Другой вопрос, чего ты решил использовать дубл, не понятно
104 2520009
>>520000
Да, благодарю за пояснение. Эпсилон решает эту проблему.
https://pastebin.com/yptgdPJu
Насчет double, его применение действительно не обосновано, этот код - тестовый стенд для наиболее простого воспроизведения проблемы, изначально возникшей при табулировании системы уравнений с шагом 0.1, офк там сравнивались переменные с плавающей точкой и в итоге число "на стыке" двух множеств попадало не на ту "ветвь". Как-то так
105 2520084
>>519817
Во втором соучае не надо писать &
106 2520851
Назрел вопрос по naming convention касательно typedef struct. Используете ли вы что-то из перечисленного, или у вас свой взгляд на именование typedef`ов ?

K&R
typedef struct tNode {
...
} Node;

kernel style
typedef struct node_t {
...
} Node;

Чел с ютуба
typedef struct Node {
...
} tNode;
107 2520890
>>520851
Struct node;
Туподефы для структур больше одного-двух слов не нужны, только для мелочи.
108 2521187
>>520851
Пишу одинаковое имя и там и там, иначе хуйня получается.
109 2521239
>>521187
Это кажется запрещено мисрой.
110 2521908
>>520851
Так, стоп. А если я вообще ничего не пишу после скобок, если использую typedef?
Для чего там вообще разные имена? Путаница какая-то получается.
111 2522743
>>521908
Typedef struct почти никогда не нужен и часто вреден (плодит сущности, скрывает инфу о сложности объеета).
112 2522855
Помогите исправить пример с замыканиями на GCC:
https://pastebin.com/4pmN1LCd
Компилируется, но вылетает при запуске.
113 2522864
>>522855

> return fn;


Нельзя.
114 2523038
>>522855
На ideone код работает, но переменная получается неинициализирована из за того, что её функция не вызывается. Только не понятно, зачем так делать, зачем вызывать только маленькую функцию напрямую. Ну и static на функции не имеет смысла.
115 2523123
Привет, чувачки. Появилась идея визуализировать всю оперативную память на комплюктере; для этого я буду слать память кусками на гпу и выводить её в текстуру и показывать на экране. Вопрос такой, можно ли выполнить подобный код из прилолжения:
Взять указатель натурально нулевой ячейки памяти, прочесть следующие 100500 байт, оступить на 100500 байт, прочесть следуюшие 100500 и так пока все 16 гиг оперативы не будут пройдены?
116 2523132
>>523123
нет
только в привилегированном режиме
117 2523134
>>523123
Гугли виртуальную память
118 2523169
>>520851
Использую
typedef struct NODE {
...
} Node;
119 2523172
>>519987 (Del)
Сравнивать можно, только надо обязательно указывать точность. Вместо if (a < b) будет if (b - a <= 0.001) например.
120 2523197
>>523172
< или > можно же делать, если с пониманием
121 2523690

>>2523473


East Germany
не ахуел?
122 2524121
Анонасы, поясните за GNU C. Это что за зверь такой и зачем о нужен?
123 2524143
>>524121
Самый популярный коньпилятор под юниксы, множество архитектур и расширений в нем. В последнее время появилась альтернатива: clang.
124 2524149
>>524143
Я именно диалект GNU C имел ввиду, а не GNU compiler collection.

>расширений в нем


Вот это уже ближе к теме.
125 2524159
>>522855

Хуита какая-то. Это ведь все на стеке остается, куда ты пытаешься сослаться. Может структуру какую заебашить? И держать там стейт и указатель на функцию. Правда не понятно нахуя оно тогда надо.
126 2524167
>>495049 (OP)

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


Ты это про С++ штоль? Ничего против С не имею, хороший язык который, однако, уже неактуален в силу наличия крестов. Они удобнее ну практически во всём, особенно когда речь идёт о жирном прикладном софте или геймдеве.
127 2524169
>>523172
if (abs(b-a) . . .)
128 2524202
>>524167

Дай угадаю. Ты вчера начал учить кресты? Или через 10 лет разработки веб-параш на питухоне решил пойти посмотреть что там за C++ такой?
129 2524349
>>511834 (Del)
спасибо, в целом я сам плюс минус разобрался, но с ссылками этими стало чуть понятнее. эти источники мне гугл не выдавал, может искал не правильно, не знаю.
130 2524388
>>524202
Тоже считаю что он прав.
Не надо воспринимать плюсы как современное говно, в которое неклторыеиуебки хотят его превратить. Плюсы вполне себе эволюция си, пиши на в ортодоксальном стиле и в хуй не дуй. Подводных нет - одни профиты.
131 2524515
>>524511 (Del)
Сразу видно вебпарашного раба, поди еще эплолох латентный.
132 2524528
>>524202
>>524511 (Del)
Сразу триггернулись. Вы вообще к чему-то помимо шаражных ардуинок касались? В реальном мире большинство работы это крупная работа. Работа требующая четкой структуризации и документации. Кресты вообще ничего не навязывают и позволяют пользоваться языком как хочешь, что открывает им двери в разработку больших проектов. Сишечка так не может.
>>524388

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


Не надо вообще его никак воспринимать. Он максимально гибкий. Может быть современным ЯП, где ты никогда не прикоснешься к памяти напрямую, а может быть и старомодным задротством с дотошным менеджментом памяти. Каждому своё.
133 2524543
>>524528
>>524167

Будь плюсы и вправду тем о чем ты говоришь, то си конечно бы давно умер
Но как видишь, живее всех живых
134 2524550
>>524543

>Но как видишь, живее всех живых


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

Си как язык/компилятор - абсолютно мертв. Жива только сишная парадигма программирования за счет поддержки кестами, которые и есть живой язык. Так что этот тред по факту тред крестов с сишной парадигмой, а тред крестов это тоже тред крестов, но про более новые парадигмы.
135 2524551
>>524550
Мне твое мнение о ардуинках конечно очень интересно, но попробуй на том же хх ру посмотреть, актуальны ли си ещё или нет, ищут ли работадатели новых людей чтобы писать сишный код или нет
136 2524553
>>524551
Спизданул ты, а искать пруфы мне? Чтож, слив засчитан, факт мёртвости си подтвержден.
137 2524569
>>524528

А можешь показать что не так со структуризацией и документацией в чистом C?

Конкретно с этим я проблем не замечал в проектах на C.
138 2524575
>>524569
Язык не обеспечивает этого, всё переложено под ответственность программиста, требуя от него высокой квалификации и дисциплины.

Другие же языки наоборот, рассчитаны на безграмотных дебилов, и жестко форсят "правильный стиль" своим синтаксисом. Первой ласточкой был паскаль, ну а современные языки лишь последователи этого подхода.
139 2524867
Значит, смотрите, аноны. Я предлагаю вам завязать с платформозависимостью и перекатиться, в конце концов, на мою виртуальную машину.

общие хэдер для ассемблера и интерпретатора:
https://pastebin.com/ayWE4WpU

ассемблер:
https://pastebin.com/Mnq2hMRk

работа с лейблами:
https://pastebin.com/jYYqna0R
https://pastebin.com/mk0AbiE8

интерпретатор:
https://pastebin.com/NJ3LeN1Z

Пример программы (тестировал, работает, печатает "ABCDEFGHIJ"):
mov r0 10
mov r1 65
.l0
mov m0 r1
write m0
add r1 1
sub r0 1
jmpif .l0 r0

Вам осталось сделать компилятор сишечки под это говно, и можно жить.
140 2524900
Ананасы, подскажите, чёт я никак не могу запомнить, в сях есть инициализация по умолчанию нулями?
если я делаю вот так
int a[100000];
это значит что уже все элементы массива а это нули?
141 2524946
>>524900
Зависит от того где ты это обьявляешь
142 2524954
>>524946
в файле .c
143 2524995
>>524954
файл на SSD, или на HDD?
144 2524997
>>524995
серьёзно? Мне надо кросплатформа, но вообще hdd
145 2524999
>>524997
то есть ssd
146 2525006
>>524954
Если ты объявил ее как глобальную переменную, то занулится
Если в мжйне, то может быть занулится ,может быть нет
147 2525074
>>524900

int a[1000000] = { 0 };
148 2526095
>>524995
Проиграл
149 2526777
>>512253
а на байтоёбский паёк вкатуну возможно будет выжить? или системное программирование как вторая работа годится только
150 2526936
>>495049 (OP)

>oualline.com/books.free/style/index.html


Ссылка битая и по ней не гуглится название книги. Что там за книга была?
151 2527282
>>526936
Steve Oualline, "C, Elements of Style"
152 2527321
Таки сделал работающее замыкание на Си (GCC)

https://pastebin.com/Ph61AtVj

На JavaScript аналогом будет

function summ(x) { return function(y) { return x + y; }; }
153 2527325
#define TAG_OPTION_NONE 0
#define TAG_OPTION_NODE 1

union OPTION {
struct { int tag; } TAG;
struct { int tag; } NONE;
struct { int tag; int value; } NODE;
};

Сейчас думаю над ADT и паттерн матчингом в Си.
154 2527392
>>527325

А зачем? Не проще ли написать интерпретатор языка который будет все это лаконично поддерживать? Oh wait...
155 2527799
>>527282
Спасибо
156 2527806
>>495049 (OP)
Как гуглить инфу (статьи, книги) по Си? Как гуглить вакансии? Дело в том, что из за короткого названия почти всегда показывает результаты по C++.

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

Получается, что на Си за деньги можно писать только под мелкие железяки? На удаленку надежды тоже нет?
157 2527979
>>527806

>Как гуглить инфу (статьи, книги) по Си


Форум RSDN.ru там есть поиск.

>Как гуглить вакансии


Мы не нужны в этой стране.

>что обычно пишут на Си за деньги и какие требования


Ну скажем, внутри автобуса ЛиАЗ крутится FreeRTOS, а мосты в Санкт-петербурге разводят с помощьюQNX, под них и пишут.

>Для C++ вакансии поинтересней


"Доширак, велосипед, зеркалка и интересные проекты на C++", ага.

>Получается, что на Си за деньги можно писать только под мелкие железяки


Так и есть, даже форумы живы: arduino.ru и electronix.ru активны весьма. Но вакансий там нет (объявления от Kraftway и НИИСИ не считаем).
158 2528031
>>527979
Много ли зарабатывают люди, которые собирают пакеты для дистрибутивов? А те, кто делает драйвера для ядра Linux?
159 2528054
>>527979

>Форум RSDN.ru там есть поиск.


Это троллинг тупостью? Еще бы посоветовал фидонет.

>Мы не нужны в этой стране.


Я спросил как гуглить вакансии, а не поучений в какой стране жить.

>Ну скажем, внутри автобуса ЛиАЗ крутится FreeRTOS, а мосты в Санкт-петербурге разводят с помощьюQNX, под них и пишут.


Это снова троллинг тупостью? Сейчас не советское время чтобы рассматривать такое в качестве работы. И сколько же таких вакансий в процентах?

>"Доширак, велосипед, зеркалка и интересные проекты на C++", ага.


Теперь точно ясно, что твоя цель только повыпендриваться.

>Так и есть, даже форумы живы: arduino.ru и electronix.ru активны весьма.


Нет, не так. Есть много вакансий где надо писать что-то под линукс. Ты кроме того, что тролль, еще похоже не в теме. И ты не ответил на главный вопрос, как гуглить любую инфу по Си, если название языка состоит всего из 1 буквы и по этой причине результаты запросов или по C++ или вообще нерелевантны.
160 2528071
>>527806

> Как гуглить вакансии?



Попробуй загулять компании из интересующих тебя областей (например исходя из того, что ты сам хотел бы делать). Если контора приличная, то на сайте будет список вакансий и там наверняка будет что-то связанное с C/C++.
161 2528504
>>528444 (Del)
Танцующим.
162 2528505
Как вы теперь будете жить, зная что strlen() это UB? )))
он же написан на асме и читает слова за пределом массива )
163 2528511
>>528054
Если гуглишь на русском, то прямо так и пиши "Си", на англе иногда помогает "pure C".
Хз, что ты там под линух на сях собрался делать, но даже в моей госпараше уже давно укатились на Qt.
164 2528515
>>528054
Не пользуйся гуглом, он совсем скурвился просто, раз такое не ищет. У меня такая проблема не только с Си, но и с другими областями, например если писать вопросы по D&D 3.5, он перекидывает на D&D 5, а еще он часто подменяет даже слова в кавычках, искал something "once", а он подсвечивает что нашел something "many", не шучу, буквально такая замена была.
(Эх, скорей бы Zig стал production ready, вот он из трех букв и легко ищется)
166 2528529
>>528525 (Del)
я и сам не знал, а Кнут уже 40 лет знал.
167 2528576
>>528505

>UB


Что это такое?
168 2528594
>>528576
Это Си детка
169 2528870
недавно узнал, что вместо array[index] можно писать: index[array], потому что и то, и то транслируется в *(array+index) лооооооол О_о
зачем так? такое ощущение, что они на похуях делали этот язык
170 2528931
>>528870

>2022 год


>зумеры открывают для себя, что Си - это высокоуровневый переносной ассемблер с мощной системой арифметики указателей.

171 2528941
>>528931
Еще немного и догадается почему нумерация элементов массивов с нуля.
172 2529162
>>528941
А кто догадается до отсутствия массивов?
173 2529175
>>528870

> такое ощущение, что они на похуях делали этот язык


Ты себе не представляешь насколько на похуях его делали.
Например можно было объявить функцию так
foo(a, b) { return a + b; } Потому что похуй )) Если вернул значит это аккумулятор, а значит инт ))
С другой стороны а ты видел госдолг другие языки, че там? Алгол, Фортран, Кобол
174 2529784
Деды, вы тут сидите и ностальгируете? Суть треда то в чем? На сишке сегодня только курс по информатике рассказывают. Никто на этом старье (time()) не пишет, кроме первокурсников
175 2529798
>>529792 (Del)
Ладно, главное, чтобы хватало.

А мы, никудышные, после работы в А офисе, поедем в рестик, а после всю ночь трахать красивых женщин. Куда уж нам до вас, идейных...
176 2529897
>>529798
Если для тебя 410 нормальная зарплата, чел... идейные столько тратят в месяц только на своих котов.
177 2529977
>>529784
на С- пишут прошивки для всех устройств, ядра ОС, драйвера и вообще всё. Я только на Си научился понимать и писать программы, остальные языки слабые, по сравнению с Си. Потому что- позволяют писать программы, самым простым и единственным способом.
178 2529983
>>529784
>>529798
но си ведь прародитель почти всех популярных языков, хотя бы за это он заслуживает уважения
на самом деле си - это старый, трудный в общении дед, который временами творит и несет полную дичь, но если бы, когда-то этот дед не ебашил, мы бы сейчас находились бы в анальном рабстве у какого-нибудь предка кобола, а также корпораций с их лицензионной политикой
при таком положении дел, вся индустрия застряла бы в начале 00-х, и размер ваших зарплат был бы там же
и далеко не факт, что кобол всех бы заебал, и люди просто ушли бы в паскаль/аду, если посмотреть как форсится ООП при всех его недостатках, то запросто можно представить ситуацию, когда на первом месте у всех стояла бы идея близости к естественному языку
поэтому проявите уважения к деду, напишите на досуге хотя бы пару строчек на нем, он же ведь за вас воевал...
кста, здесь прикольно показаны его дети https://www.youtube.com/watch?v=lDjZA0wodGQ
SEH.png22 Кб, 286x347
179 2530003
Слабо?
180 2530005
>>530003
Переполнение буфера или ООМ поймает?
А вообще никогда не понимал как setjmp работает
181 2530032
>>530019 (Del)
Да вроде все норм, а что?
ASCII коды цифр.
182 2530056
>>529897
Ну показывай котов, миллиардер пососишный
183 2530076
>>530019 (Del)
На 159 уже проееб
asciifull.gif27 Кб, 715x488
184 2530090
>>530076

>На 159 уже проееб


Сам ты проёб, блядь. Возьми и посчитай руками.

мимопроходил
1625500222264.png14 Кб, 398x255
185 2530150
>>530076
Просто фокус, подобрали такие что
48*3+a+b+c=100a+10b+c
a=1 иначе улетим в 200
144+1-100+b+c=10b+c
45=9b, т.е. вторая цифра 5
c сокращается, значит последняя цифра может быть любой
186 2530241
>>512962
а нахуй нужен педантик?
187 2530244
>>518783
так ну убунте для чека нужно больше флагов -lm -lpthread -lrt -lsubunit
188 2530245
>>520851
typedef struct {
...
} Node_t;
189 2530250
>>524121
Ну это реализация стандартной библиотеки C и posix библиотеки C с дополнениями. Например функция argp_parse есть в GNU C, которая не входит в posix.
190 2530259
>>524149
Скорее всего просто переименовали GNU C Compiler в GNU Compiler Collection.
Что же касается расширений, то вот например https://www.kernel.org/doc/htmldocs/kernel-hacking/conventions-gnu-extns.html
Если у тебя будет простой компилятор соблюдающий стандарт Си, то без этих расширений ты ядро линуха все равно не соберешь.
191 2530312
>>524149

>Я именно диалект GNU C имел ввиду


Так пойди почитай доки

Предисловие

Это справочное руководство по языку программирования C в его реализации. сборником компиляторов GNU (GCC). В частности, это руководство направлено на документ:

Стандарт ANSI C 1989 года, широко известный как «C89».
Стандарт ISO C 1999 года, широко известный как «C99», в той мере, в какой C99 реализуется GCC.
Текущее состояние расширений GNU для стандартного C

В данном руководстве C89 описывается как базовый. Возможности C99 и расширения GNU явно помечены как таковые.

По умолчанию GCC компилирует код как C89 плюс специальные расширения GNU. Много C99 поддерживается; как только будет доступна полная поддержка, компиляция по умолчанию диалект будет C99 плюс расширения, специфичные для GNU. (Некоторые из Расширения GNU для C89 стали стандартными, иногда слегка измененными. особенности языка в C99.)

Язык C включает набор директив препроцессора, которые используются для такие вещи, как замена текста макроса, условная компиляция и файл включение. Хотя обычно описывается в руководстве по языку C, GNU C препроцессор был тщательно задокументирован в The C Preprocessor , отдельное руководство по предварительной обработке для C, C++ и Objective-C. программы, так что это не включено здесь.


https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Preface
image.png963 Кб, 1100x1100
192 2530360
193 2530377
Дарова всем.

Недавно получил предложение на стажировку(Embedded C)
Может ли кто-то посоветовать книжек для дальнейшего развития( читал только Стивена Прата да практиковался на hackerrank)

Да и есть ли какие-то годные материалы, чтобы с виндузятника перейти на Линукс, как этого будет требовать работа?
194 2530428
>>530019 (Del)
очень тупо, в Си все входные и выходные данные нужно паковать в структуры
struct N {
// тип
// переменная
}
и обработчики данных типа
N add(N1,N2) которые уже будут раскидывать по другим обработчикам в зависимости от типа- addInt(N1,N2)
addString(N1,N2) addIntArray(N1,N2) и т.п
к тому же, в таком случае можно задать неявные поведения при нарушениях граничных условий, например занулять больший массив или уменьшать его размер.
Вообще, все входные данные программы- нужно всегда держать под контролем, нарушения типов не должно происходить в принципе, это профанация, когда разные типы сочетаются, всего лишь потому что операторы это позволяют.
195 2530526
>>530377
Уже согласована стажировка или просто получил рассылку?
196 2530665
Помогите, пожалуйста, с домашним заданием. Суть такова, надо создать динамичный массив запрашиваемой длины, потом принимать ввод от пользователя и создавать динамичный массив из char'ов внутри каждого элемента. Потом все записать в файл. Вот мой код, в нем почти ничего не работает.

https://pastebin.com/LDHHLpb5
197 2530714
>>530665

Подумай над задачей и напиши алгоритм на листочке, проверь что понял условия и как ее решать. Потом запрограммируй его на C. Не учат что ли?
198 2530722
>>530714
Нет. Я не понимаю, как делать. И нас по сути не учат, почти все заставляют искать самим.
199 2530735
>>530665

Обрати внимание на тип переменной p, как ты аллоцируешь под это память и условие твоей задачи (хранить в памяти массив строк). Что с этим всем не так?
200 2530742
>>530735
Я не понимаю, как это работать должно. Вот создали массив, как дальше внутри каждого элемента массив создать?
201 2530752
>>530742

Точно так же, как и первый (через malloc). Будут отличаться только типами (char и char*) соответственно.
202 2530753
>>530752
char\\ и char*
203 2530761
>>530752
Я не понимаю как объявлять это и потом использовать.
204 2531041
>>530377
Попадалось несколько книг именно по Си для микроконтроллеров.
205 2531042
>>530761
насколько я понял твое задание, у тебя должен быть массив массивов.
206 2531056
>>530526
Согласована, если их и меня все устроит, то через три месяца могут джуном взять
207 2531057
>>531041
А ты случаем не запомнил их?
Буду благодарен
208 2531061
>>531057
Не помню, они все называются примерно embedded c books
210 2531065
>>531056
Почему они не наймут готового джуна?
211 2531086
>>531064
Алсо, анон, я только когда в кровать лег, то понял, что в функции AbuInit обосрался. Исправь

>char buff[sizeof(int)];


и

>fgets(buff, BUFF_LEN, stdin);


НА

>char buff[32];


и

>fgets(buff, 32, stdin);



Не обязательно 32, можно и любое другое число, но не меньшее, чем потенциально может ввести пользователь. Я сам не прогер и сишку только в универе щупал 5-7 лет назад, плюс прибухнул чутка и подумал, что выделяю байты через char. Так-то оно верно, если у тебя на машине char в 1 байт, но atoi() оперирует символами, а не байтами, поэтому 4 символа под количество строк - это мало, и если ввести больше, то получишь сегфолт.
212 2531334
>>530377
Какой конкретно эмбедед?
У тебя там микроконтроллеры или что-то, на что линух можно поставить?
213 2531342
>>531065
Без понятия
214 2531343
>>531334
Микроконтроллеры(STM32)
215 2531346
>>531061
Спасибо
1670234803756.jpg61 Кб, 699x699
216 2531361
>>531343
О вот это уже понятно.
Примерно все будешь понимать в процессе работы с микрухой. Для начала тебе нужен даташит на твой контроллер, открываешь его и читаешь для начала про тактирование и как его правильно настроить - это ты будешь делать в каждом проекте в самом начале. Дальше, в зависимости от задачи, смотришь какую периферию ты будешь использовать и читаешь в даташите про настройку периферии, параллельно смотришь как она вообще работает, если до этого не знал.
Из книжек могу вот эту посоветовать, для понимания архитектурных особенностей очень полезна. Там много полезной инфы, даже если у тебя не М3.
Ну и когда будешь чувствовать себя нормально среди всей этой инфы можно начать вкатываться в RTOS. Есть хендбук по FreeRTOS'y например.
217 2531365
>>531361
Забыл добавить. К каждому контроллеру обычно есть короткая выдержка из тестовых примеров разных проектов от оф разраба. Обычно называется что-то типа Quick Start Guide. Его читаешь вместе с даташитом.
218 2531598
>>531342

>Без понятия


Почему не поинтересовался? Лучше задавать вопросы, чтобы не попасть на кидалово. Возможно у них корыстный интерес попользоваться тобой. А может просто спрос на такие вакансии низкий.
219 2531672
Посаны, пытаюсь написать кольцевой буфер, хранящийся в памяти стм32, но везде в примерах динамическая память.
я тупой, киньте пжлста понятный пример как сдлеать кольцевой буфер не с динамической памятью.
заранее спс
220 2531698
>>531672
Я отсюда брал когда-то.
https://habr.com/ru/company/otus/blog/557310/
Просто заранее проинициализируй его нужным размером.
221 2531714
Помогите нубику решить задачку

Ввести строку. Вывести пословно в порядке убывания длин слов.

Использовать указатели и Разрешены к использованию следующие функции: printf, scanf, getchar (считывание символа с клавиатуры), gets, fgets.
222 2531819
>>531714
Структуры можно использовать?
223 2531821
>>531819
Неа
image.png45 Кб, 621x207
224 2531823
>>531822 (Del)
Мне бы просто суть, решение не обязательно
225 2531847
>>531821
И функции нельзя? Чисто портянку ебануть?
226 2531848
>>531598
Честно говоря, почему то не задумывался об этом, так как был очень рад самому факту получения работы.
Ну в Украине не особо много вакансий embedded, да я и сам почти не встречал тех, кто этим занимается/хотел бы заняться
227 2531853
>>531365
Спасибо за минигайд
228 2531934
Вкатился\вкатываюсь в системач.

Книги по ассемблеру x86, x86-64, изучение разных режимов памяти в языке ассемблера, книга по С от Дениса Ритчи, книга по С++ и опп от Страуструпа, книга по схематехнике. Книга по устройству осей от таннебаума, книга по сетям от таннебаума...

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

А что делать? Вот я уже чувствую в себе силы написать реальную рабочуюТМ фичу. Но что писать? Была идея написать программу которая бы восстанвливала файлы стёртые быстрым форматированием или даже целые тома и системы выпиленые очисткой таблицей разделов, но все эти программы уже запилены и запилены лучше меня, на велосипед время тратить не охота.

Что пилить то? Тупо понимаю что если я в области систем что не возьмусь пилить оно уже всё запилено.
229 2531937
>>531934
Может быть какой-нибудь инструмент написать для упрощёного редактирования реестра винды? Или написать программу по выводу температур с датчиков компьютера? Да всё это уже давно есть.А ну что писать, ну подкиньте идею, что можно под винду написать такое системное, какой-нибудь фильтр может в какой-нибудь стечок драйверов, может быть программу упрощающую какой-нибудь менеджмент...
230 2531944
Была идея написать программу которая бы переводила двоичный код любого файла в пиксели и сохраняла это в формате .png, а потом этот .png опять раскодировать в любой файл, хоть в exe но такое тоже есть. Да что делать то блэт. В системаче уже как будто написано абсолютно всё что только можно. В линукс пока пытаться не буду, у меня хуже представления о его ядре, драйверах и прочем устройстве. Хотя арч таки осилил в сборке по гайду.
231 2531956
>>531937
Хотел тебе предложить херню связанную с линуксом, там очень много работы, но ты с ним не знаком.

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


Попробуй эту идею развить. Серверное приложение считывает данные о состоянии ОС и отсылает данные в пакетах через сокеты клиенту. Клиент может быть любым: ГУИ-приложение, консольное приложение, веб-приложение. Эдакая телеметрия.
232 2532004
Чего это си тред вдруг ожил?
У студентов зачеты начались или все в госуху вкатились дроны программировать?
233 2532017
>>531937
Напиши программу умеющую пищать динамиком материнки разную музыку. Чтобы именно динамиком, а не звуковой картой, чтобы ни в каких случаях звук не перенаправлялся на звуковую карту, иа играл именно аппаратный динамик воткнутый в материнскую плату.
234 2532060
>>531956
О нормально, это можно попробовать, спасибо

>>532017
Даже не представляю как это реализовывать. Ну возможно через обращение к какой-то функций из биоса
235 2532066
>>531956
Подобное кстати вроде есть в powershell но там всё на уровне функицй-заглушок, оно есть, но не работает так как пока ещё не реализовано.
236 2532303
Аноны, а тут есть безопасники или реверсеры, кто занимается этим под линух или бывал на СТF и просто шарит?
Пытаюсь сделать маленькую роп цепочку, но у меня почему-то все как-то странно работает. Даже хз, есть ли смысл спрашивать.
237 2532306
>>532303

>Аноны, а тут есть безопасники


Взлымвал соседский вай фай через кали линукс. Задавай вопросы.
238 2532341
>>531714
задаешь статический массив char arr[1024][1024]; считываешь в цикле каждое слово в новый ряд массива. Потом пишешь свой strlen (функция измеряющая длину строки), который будет измерять длину каждого слова. Создаешь второй второй массив. Пробегаешься по исходному массиву со стрленом и самое длинное слово записываешь в первый ряд второго массива и так далее пока всё не запишется во второй массив в нужном порядке. Выводишь второй массив.
239 2532349
>>531937

>Да всё это уже давно есть.


напиши программу, которая из любой программы создает портабле екзешник который можно запустить с флешки на любом компе без установки ОС, прямо флеш вставляешь вылезает меню с прогами в биосе, и запускаешь.
Снимок экрана от 2022-12-06 08-56-47.png33 Кб, 644x354
240 2532465
>>531823
решил вспомнить си, написал такое на пикриле. Кто-то видит ошибку?
241 2532557
>>532465
Что делает эта программа, пиши программы которые делают полезное, или не пиши вообще ничего.
Нахуй ты указатели тянешь в это, какую задачу этим решаешь?
242 2532569
>>532349
Такое вообще реально написать? Программы винды же используют библотечные функции самой винды, из под биоса ты хуй их запустишь, только если какую-нибудь загрзочную версию винды прилепить к ним.
243 2532585
>>532349
>>532569
Такие решения на линуксе есть. Там статически слинкованный бинарник с миниОС на борту.
244 2532586
>>532585
Ну линукс более модульно независимая ось, на винде такое врядли получится провернуть.
245 2532598
>>532585
Берем такой бинарник
@
Запускаем wine
@
Профит???
246 2532619
>>532557
Решает лабу анониму с двощей че доебался.
247 2532671
>>531934
Шаг первый: пишешь свой яп
Шаг два: думаешь чего бы такого на нем написать
Шаг три: переход к первому шагу, но пишешь это уже на новом языке
248 2532746
берем такой бинарник
@
статически линкуем wine и его зависимости
@
получаем обычный live-образ дистрибутива.
249 2532749
>>532465

>Кто-то видит ошибку?


Да, вообще под условия задачи не подходит.
250 2532809
>>532557
>>532465
короче поясняю - write() вывел сообщение раньше printf(), хотя он ниже по коду
251 2532825
>>532569

>реально написать?


реально, но не для средних умов. А api винды что использует? Нихуя не использует, если экстрактировать оконное и юзер api, можно в мегабайт всё уместить. ОС Шиндовс- на 90% состоит из кучи говна и палочек, а также кучи драйверов к разному барахлу.
Линупс точно такое же дерьмо.
Снимок экрана от 2022-12-06 17-12-24.png38 Кб, 511x514
252 2532882
>>531823
типа того
253 2532887
Тред - зоопарк дегенератов. Рассуждают об ОС без ОС, но при этом не могут даже писи-скрипером бибикнуть >>532017 слишком слрожно.
Снимок экрана от 2022-12-06 17-20-24.png2 Кб, 437x28
254 2532893
>>532887
я давно умею, потому-что я пол-книги Прата с++ прочёл.
255 2532897
>>532825
Ядро винды сильно завязано на этом говне и палчках и часто если их не будет то оно просто работать не будет. Тот же гуй намертво ввареный в ядро, на лине его можно без задней мысли выпилить
256 2532902

> for (int w;


Проиграл.
257 2533029
>>532882
только я не понял че он приебался к тому что переменная str инициализирована но не используется, я даже цикл for для этого написал.
258 2533070
>>533029
Так ты только заполняешь (пишешь в него), но не используешь.
259 2533078
>>532887
Без ассемблера это невозможно. Там же нужен outb(0x61)
260 2533147
>>532902
Хороший язык, и конкурсы интересные.
261 2534636
>>532809

>короче поясняю - write() вывел сообщение раньше printf(), хотя он ниже по коду


бампую, почему функция write() лезет вперёд?
262 2534762
>>534636
UB
write нет в стандарте С
263 2534776
>>534636
Потому что printf буферизованный, для моментального вывода нужен flush.
264 2534795
>>534776
^ this
265 2535256
я одноклеточная дифузорная туфля
че это такое
#ifndef SET_H
#define SET_H
extern const void Set;
void
add (void set, const void element);
void find (const void set, const void element);
void
drop (void set, const void element);
int contains (const void set, const void element);
#endif
266 2535257
>>535256
или хотя бы где прочитать про это
267 2535281
>>534776
Спс, понял.
268 2535347
>>535256
Очевидно, хедер для модуля множества.
269 2535834
Аноны, выручайте. Дали псевдокод, а я долбоеб. Как это написать?

стоимостьЧаса = 54
количествоЧасов = 396
коэффициентВычета = 0.10
суммаДоВычета = стоимостьЧаса количествоЧасов
вычет = суммаДоВычета
коэффициентВычета
суммаПослеВычета = суммаДоВычета – вычет
270 2535855
>>535834
long long wage = 5400;
int hours = 396;
long long sumBefore = wage*hours;
long long deduct = sumBefore / 10;
long long sumAfter = sumBefore - deduct;
А ты думал нас на float поймать, сучечка?
271 2536166
>>535256

>че это такое


#ifndef SET_H
#define SET_H
...
#endif
Это include guard, пишется чтобы файл только один раз подключился, иначе будут ошибки что ты переопределяешь уже существующие сущности.

extern const void Set;
Указатель на какой-то объект неизвестно какого (void) типа, который определен в другом (extern) файле

void add (void set, const void element);
Объявления функций. Заканчиваются ; и не содержат само тело функции. Само определение находится, скорее всего, в соответстующем .c файле, где уже расписан алгоритм, что именно делает эта функция.
272 2536601
>>508452
Сейчас лень смотреть, вроде как у формочки есть метод getText()
273 2536604
>>536601
Ой чё это я на старый пост отвечаю?
1529259515113.jpg487 Кб, 1111x1060
274 2536906
>>535834
>>535855

>А ты думал нас на float поймать, сучечка?



auto wage = 5400;
auto hours = 396;
auto sumBefore = wage*hours;
auto deduct = sumBefore / 10;
auto sumAfter = sumBefore - deduct;
1669021777408.png17 Кб, 758x286
275 2536910
>>536906
Ахаха, поймал крестовика.
276 2536912
>>536906
Читай что значит auto
277 2537000
Аноны, обьясните неофиту какой промежуточный формат данных использовать для их последующей передачи на ЭВМ с другой архитектурой и другим представлением чисел?
Если кратко, то я купил одноплатник на ARMе и написал для него серверное приложение, которое общается с клиентом на основной пекарне amd64. Проблема, собственно, в том, что отправленные с клиента данные интерпретируются сервером невалидно и как я понял, это происходит из за разного представления чисел на моих системах. Как передать значение в промежуточном формате?
Например, клиент: открыл сокет, упаковал данные в промежуточный формат, послал данные, закрыл сокет.
Сервер: открыл сокет, принял данные, распаковал промежуточный формат, закрыл сокет.
278 2537005
>>537000
endianess
rfc1700 сказал, что нетворк протоколы должнs быть биг эндиан
https://embetronicx.com/tutorials/p_language/c/little-endian-and-big-endian/
279 2537274
>>537005
ты когда последний раз видел big endian процессор?
То было во времена когда Интернет гоняли подключенным патч-кордом к серверам Sun.
Но Sun is down.

>>537000
gRPC. на Golang, конечно же.
280 2537344
>>537274
Процессор тут не при чем, это сетевой стандарт. Они могут быть оба LE, но если вызывают ntohs/ntohl то байты по сети летают BE
281 2537513
>>537344
погоди но ПОЧЕМУ он стал стандартом?
Если из-за того что в 1970ом году интернет состоял из 100 компов с BE - шли бы они нахуй.
282 2537517
>>537000

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


А с чего ты взял?
Одни имеют одинаковую "оконечность".
283 2537600
>>537517

>А с чего ты взял?


Например, отправляю на сервер число 4, а приходит число 27. Нашел обертку для сокетов в которой все числа приводятся в промежуточный формат и с ним все нормально получается. Похоже я чего-то не понимаю и это нюансы при работе с сетью как сказал этот анон >>537344

>>537005
Спасибо.

>>537274

>gRPC. на Golang, конечно же


Зачем мне ГОвно, как оригинально, если я пытаюсь писать на Си?
284 2537632
>>537600

>Например, отправляю на сервер число 4, а приходит число 27.


Так это число 4 не должно было испортиться. Оно в один байт влезает.
Нужно подробнее описать.
285 2537639
>>537632
https://youtu.be/_yRW4nQFrB8
Вот, я нашел видео по данному поводу.
286 2537640
>>537639 ну и где же там ARM в виде ?
Как конкретно называется твой одноплатник?
287 2538145
>>537513
Тут всё написано максимально развёрнуто https://www.rfc-editor.org/ien/ien137.txt
288 2540247
>>540125 (Del)
Вы из какого паблика к нам сбежали?
>>530019 (Del)
IMG20221216023510.jpg170 Кб, 1889x1080
289 2542444
Обожаю запах сегфолтов по утрам.
290 2543545
>>540125 (Del)
'1' + '5' + '9' выводить целое число
Эквивалентно 48+53+57. Всё правильно же. Дальше не проверял.
291 2543549
>>543545
Быстрофикс 49+53+57
292 2543554
>>542444
Кстати хочу узнать вот моя прога может делать free(). Делать ли m = 0; Или как контролировать чтобы два раза free() не было?
16712270818300.jpg117 Кб, 604x453
293 2543662
Дарова, аноны, проработал я вот значит первые свои пять дней на позиции трейни -- попрятался в подвале от ракет, настроил корпоративный ВПН, клонировал с битбакета проект, поставил нужные проги и в общем настроил рабочий ноут под себя

Сам я trainee embedded C, со слова моего нынешнего куратора-сеньйора взяли меня чисто из-за какого-никакого понимания азов схемотехники и прочее лабуды физики старшей школы(я сейчас радиотехник второго курса уника)

Си знаю самые основы(синтаксис знаю, знаю про динамическую память, про организацию памяти и прочую хуету для новичков) -- читал Прату, Ритчи, решал задачки на хакерранке). Сказали, что надо разобраться в корпоративном CodeStyle пока что.

У кого-то есть идеи как можно дальше развиваться? В каком направлении учить Си для железяк, может кто-то может посоветовать курсы/видосы/книги/сайты? До этого я только дрыгал ножкам на Атмеге на ассемблере. Смотрю на рабочий код -- по синтаксису вроде все понятно, а что он делает -- нихуя

P.S.Да, я долбоёб, помогите,пожалуйста
294 2543664
>>543662
Забыл добавить, что сейчас все проекты у нас на СТМке
295 2544074
>>543662

Начни с прокачки своих софт-скиллов. наверняка у тебя есть руководитель/ментор для таких вопросов, хули ты на харкаче забыл
296 2544100
>>544074
Боится что такое тупое говно тут же пидорнут, ведь если начать разговаривать правда вскроется.
297 2544164
>>544074

>софт-скиллов


Нахуй не нужны в Си, это же не веб макакинг.
298 2544311
>>544164

Тут работы нет, ага.
299 2544318
>>544311
Для быдла нет, ага.
300 2544372
Есть одномерный массив, нужно перевести в двумерный зная количество строк и столбцов. Как это сделать?
301 2544379
>>544372
for(int j = 0; j < h; j++)
_for(int i = 0; i < w; i++)
__flatarr[i + j * w] = arr[j];

можно соптимизировать до
for(int j = 0, k=0; j < h; j++)
_for(int i = 0; i < w; i++, k++)
__flatarr[k] = arr[j];
302 2544383
>>544379
забыл про макабу, в общем та
arr[ i ] [ j ]
303 2544392
>>544379
Благодарю
304 2544395
>>544392
Я криво прочитал твое задание, у тебя наоборот надо в 2д массив из 1д массива.
Еще не забудь выделить память всем подмассивам. Иначе arr[0][...] не имеет смысла
305 2544467
>>544164
Ребенок, значение что такое софт скиллы знаешь?
306 2544496
>>544467

>фофт фкилы


Из сейфспейса капчуешь?
307 2544809
>>543662
Крутой. Я вот на 3ем курсе ебланю, никуда не устроился до сих пор.
308 2544875
>>544467

>значение что такое софт скиллы знаешь?


А ты?

Подсказываю безграмотному чухану:

>блат


>своячество


>кумовство


>чинопоклонство


>прихлебательство


>холуйство


>лицемерие


>показуха


>изворотливость


>ушлость


>пронырливость


>интриги


>подкопы


>подсиживание


Вот что такое это ваше пидорское "софт скилл". Быдло прикрыло кучу дерьма простыночкой и думает что незаметно и не воняет.
309 2544886
>>544809
Да повезло мне, честно говоря. Меня рекрутерша сама нашла в линкедине -- так и прошел. Это с учетом того, что для вкатнуов сейчас во всем мире тяжело + я в Украине сейчас, а ты сам понимаешь, как сейчас у нас с работой
310 2544993
>>544875
>>544496

Так бы и сказали что не знаете
У вас на работе что-ли нормальных людей не было, что вы на всех какие то свои манямирки проецируете?
311 2545023
>>544993
Обычно так делают безмозглые бесполезные тела, ходящие на работу часы отсиживать, а не пользу приносить.
312 2545030
>>544886
Мне одногруппник недавно рассказывал, как тоже в эмбеддед вкатился, ответив "не знаю\не работал" на половину вопросов и сказав, что писал на Си, хотя вакансия на крестах была.
313 2545060
>>545030
Да потому что хуй найдёшь кого: всем надо мобилььные дрочильни или фронт/бэк ебашить.

А ебаться с железками и байтоёбствовать нихуя нету желающих.
314 2545068
>>544993

>ничего не отрицает


Ну вот и доказано. Удивительно, какое же грязное быдло тупое, всегда само доказывает правоту оппонента.
315 2545071
>>545030
Ну у меня из знаний только основы Си, чуток в схемотехнике и сигналах шарю. Дрыгал ножками на Атмеге на ассемблере. Этого всего и хватило
316 2545073
>>545071
Я буквально ты значит, только у меня в проге знаний больше, и они не ограничиваются только байтоëбством. А с железками да, только в универе познакомился.
1671394821416.png15 Кб, 500x500
317 2545316
Дратути, вопрос по алгоритмам. Не срочный, но буду бампать пока кто-то не поможет.

Короче открываю в программе пикчу, разбираю ее попиксельно, получаю двумерный массив размером как у открытой пикчи, где элемент равняется нулю если пиксель белый, и единице если пиксель черный.
Где-то на картинке есть одна черная рандомная клякса. Как найти координаты ее центра масс и соответственно координаты центра масс в массиве?
318 2545325
>>545320 (Del)
Разве это будет центром масс?
319 2545329
>>545327 (Del)
Но я о том, что любая тонкая сопля торчащая из кляксы полностью смещает координаты нужной точки потому что описывающий прямоугольник будет охватывать и эту тонкую соплю. А в рельности тонкая сопля практически не влияет на общую массу кляксы. Поэтому вариант хороший, но это не центр масс вроде как.
aiu404l-72.jpg158 Кб, 1200x1188
320 2545379
Я вот тоже алгоритмику пишу, написал отсечение вариантов, эвристику выбора, которая вероятностно срабатывает, ну да не суть. Так как работает отсечение вариантов заранее, чтобы не включать их в перебор, ветви и границы, соответственно есть несколько проверок во внутренних циклах, а внешний цикл - он по элементам массива (вообще рекурсивный перебор должен быть, но я размотал хвостовую рекурсию и сделал более быструю итеративную версию).
В общем, внешний цикл идет по j. Во внутренних циклах много проверок, куда в качестве выражения входит arr [ j ]. Я решил сделать еще одну свою оптимизацию, ввел одну переменную, в которую в начале проверок записывается arr [ j ].

Логика простая - чтение из переменной temp дает условную одну операцию
На чтение из массива - складываем адрес начала массива arr и индекс j, и читаем переменную, это дает условные две операции

Ну и прикол в том, что после моей низкоуровневой васянской оптимизации скорость просела где-то в 2-2,5 раза. То бишь обращение к элементу массива (где сначала получаем адрес сложением и потом читаем) оказалось быстрее обращения к переменной (где адрес уже известен). Это не вопрос, просто вот так бывает, анончики, иногда "свои" оптимизации оказываются даже вредными чем те, которые делает компилятор
322 2545381
>>545379

>отдознуть


>пихает кофеин с таурином


Тупая волна шумана...
323 2545383
>>544993
Да знаем, хипстерок, только какое отношение эта дрисня имеет к ламповой Си?
Ты всю жизнь будешь дрыгать ногами и мигать диодами, никакого роста у тебя не будет, максимум до начальника где ты будешь пинать такого же овоща аутиста.
324 2545385
>>545379
godbolt тебе в помощь.
Ну и конечно на x86 там не будет двух операций, а будет lea.
325 2545440
>>545383

> никакого роста у тебя не будет


> максимум до начальника


Признавайся, в нейросетка посты генеришь?
326 2545567
>>545440

>был быдлосом


>дорос до начальника


И где рост?
И главное, где

>программировани на си


?
Так до чего ты там дорос? Как был быдлом, так и остался. Как был нулем в программировании, так и остался. Запомни, быдло не растет. Может расти высота кресла и размер зарплаты, но как человек быдло остается говном навсегда, каким родилось, таким и помрет, простым говном.
327 2545712
>>545440
Начальник над Сишником - это и не начальник, а так, посмешище.
mediaFSMCMp1WUAAhd1y.jpg259 Кб, 1365x2048
328 2546686
>>545385

> и конечно на x86 там не будет двух операций, а будет lea



Благодарю. Реально себя тупым чувствую, но про lea узнал из твоего поста, не знаю как так вышло. В общем, благодарности, чаю и прелестниц тебе, анонче, спасибо, что ее упомянул! Я бы так необразованным и оставался. Всех благ и няшек!
329 2546905
Сяч, для того чтобы слинковать исполняемый файл к динамической библиотеке, необходимо чтобы либа уже была загружена в память? Если да, то помогите советом.

Есть либа, которая будет подгружаться основной программой в известную локацию памяти. Эта же программа будет вызывать функции из неё.
Точка входа в либу известна, но смещения её функций могут изменяться по мере модификации либы. Т.е. динамическая линковка отпадает, т.к. неизвестны точные адреса функций.
Как организовать лучше всё это? Я пока додумался до контроллера/драйвера либы и вызывать функции через обращения к нему. Например ctrl_lib (идентификатор функции, лист аргументов). Звучит пиздецки всрато, но ничего лучше я не выдумол.

инб4 да, я аутист
330 2546930
>>546905

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


Непоня. С чего бы? Вот есть сисколл (на самом деле библиотечная фнкция, но не суть), которым программа может сама себе открыть динамическую библиотеку
https://man7.org/linux/man-pages/man3/dlopen.3.html
И потом dlsym, чтобы адрес найти.
Screenshot.png68 Кб, 614x328
331 2547093
>>546930

>Вот есть сисколл


Теперь понял, что динамическая линковка в процессе исполнения. Спасибо. А то пикрил навёл на противоположный вывод.

Анон, а у тебя случайно есть статьи по динамической линковке? А то само назначение процесса понятно, а что там происходит на уровне исполняемого файла, таблиц символов и самой либы - одно волшебство в голове.
332 2547115
>>546905

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


А разве сейчас линукс не в рандомную грузит?
333 2547140
>>547093
У тебя статья про сборку, а спрашивал ты про работу.
Статью про динамическую линковку я тебе выше уже кинул, там и ссылки на все подробности, и примеры.
334 2547233
>>545712
Доложил начальнику, что его на двачах обижают.
335 2547295
Вечер в хату,

питон макака на связи.
Нужно запарсить csv или xlsx. Может кто посоветует статьи, доки, туториалы?
336 2547325
>>547295
А на питуне запарсить нельзя? Там же тоже есть функционал для ебания байтов и чтения файлов. Гуглишь структуру csv формата в интернете и вперед. Да и ставлю анус, что такие библиотеки уже существуют.
337 2547384
>>547325

В питуне я написал парсер, но у меня ооочень большие csv и xlsx, а питон ооочень долгий.
338 2547431
>>547384
Для таких задач есть Дельфи. Скорость как в сях, но несоизмеримо проще и удобнее.
339 2547537
>>547384
Так он тебе говорит либу искать (которая внутри скорее всего на си написана, просто интерфейс на питоне)
https://medium.com/casual-inference/the-most-time-efficient-ways-to-import-csv-data-in-python-cc159b44063d
А вообще проще на c++ писать, что то мне подсказывает что на голом си это будет боль.
340 2547655
https://youtu.be/wGCWlI4A5z4
Только что эта хуйня попалась в рекоммендациях и я очередной раз подумал, что сейчас мне обьяснят положняк. Ну не могут же люди высерать пустые и бессмысленные видео в огромных количествах, верно?
Итак, заходим...

>ряяяя я специально не учел условие и поэтому в программе появился баг, поэтому Си/Си++ говно


>ряя в Си++ есть 5 способов сделать одну и ту же вещь, поэтому мне сложно выбрать. Язык говно


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


Охуенная аналитика, браво. И таких бесполезных видео просто миллиарды просто для того, чтобы пропихнуть культуру к которой они "причастны". Нет, чтобы снять видео как ты делаешь крутую штуку на расте, как членодевка из AsahiLinux. Это слишком сложно нахуй, будем распространять маркетинговый булщит. Из-за ебанутого cumюнити даже палкой эт поделие трогать не хочется. Как будто питонисты, джаваскриптеры и прочие макаки. Хотя почему "будто"? Основная ЦА и есть выходцы из веб-параши.
Держу в курсе
341 2547681
>>495049 (OP)
Поясните что не так?

FILE* plain_text;

int columns = 0;
int strings = 0;
int metering = 0;
char c;

fopen_s(&plain_text, "C:\Users\anon\source\repos\Text_editor\Debug\c_programm.txt", "r");
123.png6 Кб, 598x178
342 2547685
image.png99 Кб, 766x896
343 2547687
123.png65 Кб, 962x824
344 2547697
>>547687
Да, спасибо, теперь прочитал файл, странно.
345 2547774
>>547655

> посмотрел тупое видео, сделанное специально чтобы набрать больше просмотров


> искренне взбугуртнул


Ты же сам должен понимать для чего и для кого такое снимается
346 2547959
>>547774

>Ты же сам должен понимать для чего и для кого такое снимается


Для него и снимается. Он посмотрел, получил эмоциональную реакцию, ещё и потащил по интернетам, чтобы другим показать.
347 2547970
>>547959
>>547774
Я просто считаю, что вы переоцениваете этих людей.
Даже на дваче встречаются такие персонажи при общении с которыми поначалу думаешь, что они троллят, но в конечном итоге оказывается , что они просто долбоебы.
348 2547980
>>547697
Кстати путь до файла нужно указывать C:/ а не C:\
349 2547983
>>547970
Не имеет значения, случайно автор этого ролика наткнулся на такой формат (просто долбоеб), или осознанно его придумал (троллит), факт остаётся фактом, анон выше

>посмотрел, получил эмоциональную реакцию, ещё и потащил по интернетам, чтобы другим показать.


То есть цель ролика достигнута — он распространяется, и просмотры капают. Значит обучение обучение с подкреплением произошло, и автор будет таких роликов снимать ещё больше.
350 2548062
>>547983
Быдлосы любят скандалы, сам видел бабку, смотрит целый день телешоу с руганью и так 8/7/365 и не надоедает и не противно. Грязь это плоть и кровь грязного быдла, они в грязи живут, дышат грязью, едят грязь, и в голове одна грязь.
Литература по системному программированию Шиндовс. кот_волшебник 351 2548072
Здравствуйте Anonchique.
Пишу на чистом Си, реквестирую хорошую литературу по системному программированию под Шиндовс, выложил список литературы по которой я практикуюсь, кого-то более лучшего чем Александра Побегайло и Павла Йосифовича не нашёл.
Если знаете более хороших авторов, или более современное издание, напишите пожалуйста.
352 2548108
>>547980
Чел в Си-строке \ означает escape-символ.
Например \n означает перевод строки.
Для того чтобы в реальной строке в памяти был символ \
В исходном файле тебе надо писать \\
Т.е. "C:\\Path\\File"
Это буквально первые страницы любого учебника (параграф про литералы)
Вы по тик току учите что ли?
353 2548128
>>548072
а есть похожее для линукса?
354 2548129
>>548072
а есть похожее для линукса?
355 2548135
>>548072
На чистом си под винду нельзя писать, там конец файла не \n, компилятор не ругается на крестовые констпукции и так далее. Только в юниксе си чистый.
356 2548137
>>547983
Да нет, как раз имеет значение. Потому что ты исходишь из позиции, что вся эта срань изначально затевается ради простотров, что уже может быть не правдой. Я натыкался на множество статей, постов, видосов, где подобные вещи с серьезным лицом говорят без какого-либо троллинга. А для системного языка такое раковое сообщество не очень хорошо.
Ну и немного ебанутая позиция в духе "ты же посмотрел, значит все правильно делает". Можно говном на камеру измазаться и тоже много людей посмотрит, но это не значит, что ты сделал что-то хорошее.
Стикер512x512
357 2548155
358 2548156
>>547655

>обьяснят положняк


>видос про сраст, а не ламповый Zig


Ну анон, ты чего.
359 2548163
>>548137

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


Это ролик, выложенный на ютубе. Если не ради просмотров, то ради чего, по твоему мнению?

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


И в чём я не прав? Это работает.

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


Что значит "сделал что-то хорошее"? Хорошее для кого? Для себя автор сделал очень хорошо — просмотры капают, известность растёт. Одни бонусы.
изображение.png1,4 Мб, 1280x720
Аноним 360 2548260
>>548108
Да, тик-ток академия по программированию доктора Плюшевой.
Аноним 361 2548271
>>548135

>там конец файла не \n


О чём ты , чтение прекращается когда поток вывода передаёт нулевой байт, при чём тут переход на новую строку ?
изображение.png9,3 Мб, 2560x2306
Аноним 362 2548273
>>548129
Вот такое нашёл, тут для шиндоуса и для членикса книги.

https://vk.com/wall-51126445_112023
Аноним 363 2548277
>>542444
проиграл с мема XD ))))
изображение.png388 Кб, 431x480
Аноним 364 2548296
>>543560 (Del)
Спроси его, сможет ли ИИ поработить человечество и к какому году, чтобы я успел подготовиться.
365 2552576
Бамп++
366 2553831
Подскажите откуда эти символы в ЦМД? Они берутся рандомно из памяти почему-то.

Память выделяю динамически, потом считываю по букве в массив.
367 2553832
>>553831
На пиках хуета если что для примера текста.
368 2553841
>>553831
Потому что некорректно выводятся пустые строки, после \n.
До самого и дошло же.
369 2553842
>>553831
М.б. потому что Active Page в 1251 кодировке, а твой текстовый файл сохранен в UTF8 ?

Попробуй добавить в начале main:

SetConsoleCP(65001);
SetConsoleOutputCP(65001);
изображение.png1,1 Мб, 697x1000
370 2553853
>>553831
Мне кажется лучше использовать API операционной системы для задач ввода-вывода, чтения данных и т.д., т.к. стандартные функции предоставляемые в Си (как например из <stdio.h> вроде scanf) небезопасны, с ними не удобно работать (особенно с различными кодировками).

Для чтения записи файлов, можно использовать ReadFile и WriteFile.

http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_readfile.htm

http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_writefile.htm
371 2553876
>>553853
как ты думаешь, няша, что внутри scanf?
372 2553883
>>553876
Ассемблер
Говно говна там, если хочешь сегфолтами обмазаться или иметь потенциально уязвимый код, используй на здоровье scanf.

я тебе не няша
373 2553885
Есть какие-то годные реплы или интерпретаторы, чтобы баловаться без конпеляции?
изображение.png2,7 Мб, 2000x1080
374 2553887
>>553885

>Есть какие-то годные реплы или интерпретаторы, чтобы баловаться без конпеляции?



Да, есть:
https://habr.com/ru/sandbox/54131/
375 2553888
>>553876
есть же scanf_s.
376 2553889
>>553888
Тоже говно говна, и кстати ты можешь указать размер буфера в scanf после знака %, лучше использовать предоставляемое API.
377 2553890
>>553888
Лучше использовать метод winapi ReadConsole либо ReadConsoleW (в качестве минимального буфера указать 256 символов, т.к. это минимальный лимит ввода, но ты можешь его увеличить увеличив размер буфера в n-раз кратного 256).
378 2553891
>>530019 (Del)
А хрен ли ты хотел, это числа, в Си нет типа string, за то есть минимальный тип char размером 1 байт, как раз для работы с ASCII, и массивы, которые являются указателями.
379 2553938
>>553889
>>553890
А если я под линух пишу, то как тогда безопаснее сделать?
380 2554022
>>553890

>Лучше использовать метод winapi


Лучше никогда не использовать какие то мутные расширения, которых нет в стандарте языка Си.
381 2554027
>>554022
Тише, щас же прибежит сегфолтошиз и начнет затирать про уб до кучи.
382 2554063
>>554022
Стоит, если от этого код станет быстрее
383 2554080
>>553891

>char размером 1 байт


Не обязательно
384 2554085
>>554063
Код, работающий со скоростью 0 (не работающий на другой платформе) не может быть быстрее.
385 2554089
>>554080
В C99 sizeof(char) == 1. Результат измеряется в байтах.

CHAR_BIT может быть больше или равен 8 битам, но это другое. Не путай.
386 2554131
>>554085
Может, просто для каждой платформы пиши нативные реализации
index.jpg6 Кб, 248x203
387 2554216
388 2554339
>>554131
На пердопараше нет натива, вот эти чуханы везде лезут и воняют своей "мультиплатформенностью", которая означает усредненное говно которое везде работает как говно. Говнари обмазываются говном, как будто что-то новое.
389 2554488
>>554063
Если у тебя программа упирается по скорости в вывод в консоль, то с ней у тебя куда большие проблемы. Попробуй писать в файл, попробуй бинарные данные вместо текстовых, попробуй слать только дельту изменений.
1666186663320.png173 Кб, 611x320
390 2554492
>>554339

>На пердопараше


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


>Говнари обмазываются говном, как будто что-то новое.


Двачую.
391 2554522
>>554492
Типичный пердодебил, даже не понимает смысл своего выпука, то есть нет смысла.
392 2554605
>>554522
Пердодебилы такие, да. Даю подсказку - программа, написанная по стандарту, более переносима между разными линуксами, чем программа, написаная под разные версии пердошинды.
2077EA474D0EEAD807.jpeg98 Кб, 750x393
393 2554639
>>554089
На первом пике не стандарт, а какая-то хрень. Сайзоф выдает размер в чарах, а не байтах. На пикрелейтед например (это тмс) размер Инта - 2.
394 2554642
>>554639
Лонг Инта*
395 2554702
>>554488
Но это же не только к консоли относится
Все низкоуровневое в целом
изображение.png2,6 Мб, 1628x916
396 2554707
>>554022

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



Что, правда ты СКОЗАЛ ?
Какие расширения дебилоид ?
Быдло, ты когда-нибудь писал код не на питухоне, гейшарпах и для энтерпрайза, а не для своего студенческого мини-проекта ?
Ты вообще писал что-то на Си кроме "hello world", я в этом очень сомневаюсь.))

>>554027

>Тише, щас же прибежит сегфолтошиз


Ди нах даун, боюсь представить что будет если тебе доверят писать ПО для авионики, или запрограммировать робота-хирурга, когда ты начнёшь хуярить свой говнокод потому что так СКОЗАЛ индус с ютуба, ведь все вокруг тупые шизы и зануды))))
1335559373731.jpg65 Кб, 360x335
397 2554813
>>553891
Что есть байт?
398 2554814
>>554646 (Del)
Ассемблер MIPS.
399 2554944
Чуваки я ньюбас, наткнулся на заголовок видео в котором говорится что джава создана из-за багов указателей в си. Че за баги и есть ли они по прежнему?
400 2554946
>>554944
Разве не по древнему плану рептилоидов?
401 2555008
>>554944
Имеется в виду, что с указателями легко сделать баги. Берешь указатель на что-то и прибавляешь 100500 - вот он уже указывает в адрес возврата на стеке. Или освождаешь память, а указатель на нее забыл сбросить.
402 2555132
>>504453
Так вы без нас не можете нихуя, лол, девелоперы вы мамкины, джава-победители
403 2555133
>>528505
так если ты только заведомо валидные данные в функцию передаёшь, это не уб, а если нет, ты долбоёб, или ещё не нашёл ошибку, очевидно
404 2555139
>>554707

> боюсь представить что будет если тебе доверят писать ПО для авионики


Ох, чел, я уже...
Соболезную хуле, старайся тогда не летать рейсами грузовых самолетов, че поделать. Свои мокрописьки оставь при себе пожалуйста и не тащи свой кал в тредис.
405 2555291
>>554639

>На первом пике не стандарт, а какая-то хрень


Самый настоящий стандарт. Скачай сам и открой.

>Сайзоф выдает размер в чарах, а не байтах


Сайзоф выдает в байтах.

> На пикрелейтед например (это тмс) размер Инта - 2.


На твоем пикриле нет никакого "2" и ниаких байт, только биты.
Я же сказал - не путай. Размер char = 1 байт.
А вот байт по стандарту может быть разного размера в битах. Но минимум 8. Поэтому там и написано что int минимум 16 бит.
406 2555298
>>554707

>Ты вообще писал что-то на Си


На си я не пишу по причине того что это убогий язык, а на C++ писал серьезный софт когда тебя еще в планах не было.

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


Боюсь представить, что будет, если кому-то придет в голову писать такой софт под шинду.
407 2555302
>>554944
Баги в софте есть всегда. Вся разница в том, что в Си у тебя будет креш с сегфолтом, или тихая порча памяти и данных, а в джаве - креш с NullPointerException, или креш с ArrayIndexOutOfRange
skull.jpg68 Кб, 400x300
408 2555525
>>555298

>На си я не пишу по причине того что это убогий язык


Потому что ты понятия не имеешь на сколько крут этот язык, и какими возможностями он обладает как например возможность создавать PIC код (код не зависящий от адреса).
Можешь писать и дальше свой индусский код на своих гейских крестах, не забудь вернуться в свой опенспейс и допить свой детокс-смузи, а потом сделать селфи со своим HRBP, и подвороты опусти, на улице холодно, зима.
409 2555574
>>555525
Да погоди, может он просто на Си с классами пишет.
410 2555594
>>555574
Все про крестовики пишут на си с классами так то.
411 2555621
>>555525
Будто бы в c++ нет -fPIC.
Ожидаемый уровень экспертизы для двачера.
412 2555623
>>555008

>легко сделать баги


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


И где тут баг? Освобождение памяти не требует никаких сбросов указателей.
413 2555629
>>555623

>И где тут баг


Трудноуловимое reuse-after-free: https://developer.android.com/ndk/guides/gwp-asan#example

Не ломай над этим голову. По-видимому, оно лечится только полным отказом от указателей (т.е. заменой их на дескрипторы объектов), по крайней мере, я другого решения не нашёл.
414 2555630
>>555623

>И где тут баг


Трудноуловимое reuse-after-free: https://developer.android.com/ndk/guides/gwp-asan#example

Не ломай над этим голову. По-видимому, оно лечится только полным отказом от указателей (т.е. заменой их на дескрипторы объектов), по крайней мере, я другого решения не нашёл.
изображение.png67 Кб, 1620x774
415 2555637
416 2555641
417 2555643
>>555637
Ещё такое есть:
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. – Bjarne Stroustrup
изображение.png14,3 Мб, 4272x2848
418 2555649
>>555643
Апхахах))
419 2555661
>>555623

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


Освобождение не требует сброса, а вот контроль, чтобы не использовать после удаления - требует.
420 2555672
>>555661
Не требует. В отладочной сборке оно само обнуляется для отладки, а в релизной это бесполезный блоат убивающий производительность.
421 2555882
>>555672
Ты, очевидно, попутал c заполнением памяти нулями
(впрочем, если не на голом железе, то современная ОС все равно это делает для безопасности, например https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6471384af2a6530696fc0203bafe4de41a23c9ef
а речь шла про "сброс указателей", т.е. про конструкцию
if(ptr != null) {
free(ptr);
ptr = null;
}
Что помогает при использовании контролировать, что указатель валидный
if(ptr==null) raise_error(); else foo(ptr);
422 2556002
Друзья ромогите нубу.
Хочу читать текстовый файл в массив флоатов, выбрасывая пробелы, мусор и с переносом строк.
из без сппшных стринг вектор и тд, только си
423 2556011
>>555882
Эта конструкция помогает говнокодить, потому что повторное освобождение указателя это баг, а она его подавляет. Надо лечить болезнь, а не симптомы, исправлять баги, а не обходить их. Условие не нужно, надо чтобы надежно крашнулось по известному значению, и лучше это будет не ноль, чтобы отличить обращение к неинициализированному указателю от использованого, но освобожденного.
424 2556032
>>556011
Надеюсь, что ты просто троллишь тут новичков, засирая им мозги, а не говнокодишь таким образом реальные программы.

> она его подавляет.


Не подавляет, шиз.
А вот незануление, как раз, подавляет. Ты даже не будешь знать что ты юзаешь афтер фри. У тебя просто какой то указатель, ну и что что ты попортишь чужую память и данные.

>надо чтобы надежно крашнулось


Как там в 70-х? Надо чтобы корректно завершилось, сохранило все пользовательские данные, вывело корректную подробную ошибку.

> отличить обращение к неинициализированному указателю от использованого


Охуеть блядь кодинг на кончике пальцев. Если ты попал в это условие, то иди вилкой чисти, у тебя скорее всего и там и там лажа.
425 2556047
>>555882

>if(ptr != null) {


>free(ptr);


Бесполезная конструкция, фри сама проверяет на нулпоинтер по стандарту. Тоже самое в крестах с делит.
426 2556049
>>556047
Это правда, ну там имеется в виду
if(ptr == NULL)
raise_error("trying to double free");
free(ptr);
ptr = NULL;
427 2556106
>>556002
Не знаю, что у тебя там за задача, но первое что пришло в голову это сначала запилить функцию, которая считает количество байт в файле, на основе этого количества выделяет память (юзаем вместо массива) при помощи malloc(), далее открываешь файл при помощи fopen(), в цикле (обычно while юзают) считываешь символы в массив при помощи fgetc(), пропуская пробелы и мусор, закрываешь файл, юзаешь free()
428 2556158
>>556106
Да я понядеялся на анона, но запотел и уже сам сделал.
на чистых сях никогда не писал, от того и слажна, а вот тут пришлось
429 2556168
>>556158
покеж что накодил, если не секрет
430 2556267
>>556168
Нейронка, спок.
432 2556551
>>556324
нахуй ->
>>556168
Даже я, человек очень далекий от сей, смог, пущай анон пошевелит извилинами.
реалок
433 2557183
>>495049 (OP)
Почему не CLion ? Какие-то подводные камни у этой IDE?
434 2557232
>>557192 (Del)
Бесплатное же ломается 2 строчками в конфиге и заменой одного жава файла
Медленнее кодиума и креатора, это да.
Зато рефакторинг и парсинг нормальный.
В общем кому что.
435 2557384
>>557183

>жаба-дрисня


>какие подводные


Никаких, там воды нет.
436 2557646
>>554813
Слава Украине!
437 2557710
>>557384
Только одни камни ?
Печально.
438 2557740
>>557183
Почему не Emacs?
439 2557745
>>557740
Потому что однопоток
440 2557816
>>557745
Уже нет почти
image.png20 Кб, 362x406
441 2560008
Сап, есть такая функция для заполнения двумерного массива слов. Как сделать так, чтобы с клавиатуры был ввод предложения?
442 2560014
>>560013 (Del)
А как это написать? Не понимаю нихуя...
Нужно ввести с клавиатуры предложение и чтобы оно разбилось по словам в двумерный массив
443 2560197
>>560014
Бро, даже не пытайся научиться программированию до тех пор, пока не научишься гуглить вместо того, чтобы просить советов на дваче.
444 2560285
>>495049 (OP)
а зочем си кгда есть модный молодежный гоу аноны?
445 2560326
>>560285
Гарбэдж коллектор все руинит
446 2560433
>>560008
Laba11.c
447 2560507
>>560197
Он и не пытается, это хуесос который хочет чтобы за него сделали домашку.
Сейчас за него сделают домашку, потом будет делать за него работу. Так и живут, хитрожопое быдло.
448 2560730
>>560507
Анальники все такие душнилы? В чём проблема молча помочь, если знаешь и сидишь в треде? eastern-менталитет
449 2560761
>>560730
Ну так и спрашивай у обладателей western менталитет, хуле ты сюда припёрся то?
450 2560790
>>560730
Видишь ли, это Си тред, и я не хочу потом уебаться в машине контроллер которой программировал недоучка.
451 2560817
>>560730
Тебе помогли советом открыть гугл и списать оттуда свой хеллоу ворлд. Пока ты этого не сделаешь - нихуя у тебя не выйдет.
452 2561565
>>560730

>eastern-менталитет


Ты про себя, лол? Мы тут за western-менталитет топим, поэтому деньги вперед. Ну сам понимаешь, капитализм, срыночек, все дела.
453 2562483
Пишу в Visual Studio на C++ в стиле Си числовые алгоритмы для криптографии. Как покрыть этот код тестами? Какие фреймворки для этого есть типа junit, jassert в джаве?
454 2562508
>>562483
Я Гугл тест использую, удобно в симейк подключать
Есть ещё и другие, буст тест, catch2

Ну это все плюсовые решения, может какие то есть которые на си
455 2562753
>>562483

> Пишу в Visual Studio на C++ в стиле Си числовые алгоритмы для криптографии. Как покрыть этот код тестами?


Берешь wycheproof, например, грузишь евонные случаи libjansson и прогоняешь. Не думай обойтись случайным тестированием.
456 2563287
>>495049 (OP)
Возможно глупый вопрос, но я все же спрошу.
Какие профиты в изучении C сейчас? Есть ли смысл изучать сначала C, а потом уже переходить на С++ и другие Си-подобные языки?

Или лучше не тратить время и учить C#? а потом с него перекатываться куда интересно, на тот же С
457 2563306
>>562483
Хз. я вообще на Си пишу с использованием gcc и сторонними отладчиками вроде gdb, нашёл вот такую статью от майков.

https://learn.microsoft.com/ru-ru/visualstudio/test/writing-unit-tests-for-c-cpp?view=vs-2022

А вообще, как ни странно, у майков очень удобная и весьма понятная техническая документация.
458 2563328
>>560013 (Del)
scanf() нельзя использовать, он не безопасен!!!!

Для чтения буфера консоли, используй широкие символы для записи юникода (wchar_t или short unsigned int) и метод WinAPI - ReadConsoleW, а также не забудь указать для записи своего массива буфер не меньше 256, потому что это минимальное ограничение для консоли, больше которого пользователь не сможет ввести (если не задаст размер буфера в n-раз кратным 256), также не забудь указать режим преобразования выходного потока в Юникоде через _setmode(_fileno(stdout), _O_WTEXT);.

Либо, если не желаешь возиться с WinAPI можешь использовать getwchar, а для преобразования строк в числа существуют методы atoi, _atoi_l, _wtoi, _wtoi_l.
459 2563330
>>563329 (Del)
Сам иди на хуй!

Обосновать можешь то что написал, или как быдло можешь только хуями покрывать без контраргументов и конструктивной критики ?
изображение.png262 Кб, 375x500
460 2563338
>>563333 (Del)
Даун, причем тут твой говнокод, это системные высокоуровневые методы операционной системы, без которых ты не сможешь написать ничего сложнее "hello world", даун ты тупой!

Ты в курсе что даже в вузах, помимо базовых основ вроде устройства операционных систем дают лабы по написанию программ с использованием WinAPI, или тебя в твоём сельском ПТУ кроме 1С ничему не научили ?
изображение.png138 Кб, 292x300
461 2563340
>>563333 (Del)
Мне кажется ты тредом ошибся, ты перепутал с просто C.
изображение.png69 Кб, 340x255
462 2563352
>>563349 (Del)
Сам уходи, додик тупой, я от тебя так и не услышал никакой конструктивной критики или каких либо разумных контраргументов кроме

>ряяяяяяяя ета гавно яскозал гавно ряяяя



Всё чему ты научился, это сидеть на дваче и оскорблять других пользователей, зная что тебе за это ничего не будет, ебанный неосилятор))))
463 2563428
>>563352
А когда си увидел сначала, очень порадовался его крутизне, но когда начал писать программы, эти генерик интерфейсы из говна типа консольного ввода-вывода такие убогие, всё равно что руки связали, а потом отрубили. Фублять, фунахуй, без нативных средств программирования не бывает, только теоретическая математика какая-нибудь, абстрактный бесполезный кал.
1672896151247.jpg121 Кб, 672x698
464 2563450

> метод WinAPI - ReadConsoleW

465 2563480
>>563428
Да он и не нужен в большинстве прог. Если тулза для пользователя, там нужен гуй, если для сисадмина - ему нужны нормальные логи. Если уж совсем надо - то есть обертки над ncurses и альтернативы.
Единственное где это можно оправдать - микроконтроллеры которые надо отлаживать по проводу.
466 2563495
>>563450
Чо в гугле было, то и вбил. Хули ты как нубяра, не знаешь, как взрослые дяди работают?
467 2563551
>>563450
Слишком жирно будет если я в линукс тред с этой хуйней пойду?
dfdf.png29 Кб, 960x227
468 2563604
поставил последний emsripten (чисто сам проекты компилит нормально), сделал минимальную прогу с SDL2, ни в какую не хочет дружить со мной
469 2563663
>>563617 (Del)
он же сам ее скачивает, распаковывает и компилит, куда прописывать?
470 2563726
>>563687 (Del)
ну вот первый пик проект
второй - батник для сборки

типа мне еще флаги вроде -lmingw32 -lSDL2main -lSDL2 и тому подобные дописывать?
тогда почему у них тут все собирается без них
https://www.jamesfmackenzie.com/2019/12/01/webassembly-graphics-with-sdl/
471 2563744
>>563726
А без emscripten-хуйни нельзя?
472 2563774
>>563731 (Del)
так тогда почему у них в примерах оно само подхватывается? это же вроде как раз в флаге USE_SDL2 и предусмотрено
судя по ошибке же он из уже распакованного пакета не может собрать libSDL и говорит, что не видит его
473 2563775
>>563744
как я тебе без этой хуйни на сайт выложу
474 2563792
>>563775
Да вроде с помощью llvm можно в васм скомпилить. Не хочется просто всякое говно устанавливать себе.
475 2563843
>>563792
так у тебя как клиента на выходе и будет итоговый wasm в обоих случая, какая разница чем разраб пользовался
476 2564314
>>495049 (OP)
Какая IDE для Си идеально подойдет под макось?
поделия от майкрософта не предлагать
477 2564426
>>564314
сублиме техт + гсс
478 2564429
>>564314
ну для таких фанатичных смузихлебов есть atom
479 2564550
>>564426
>>564429
Прискорбно признавать, но вскодиум лучше.
480 2564599
>>564550
ты же сказал не от майков
481 2564621
>>564550
да, но он комп грузит сильно.
image.png4 Кб, 409x37
482 2564924
Помогите вкатышу, правильно ли я понимаю, что в конце проги мне нужно будет написать цикл с free(string) чтобы освободить память?
483 2564925
>>564924
И что будет если адрес выделенный маллоком потеряется? Какими утилитами его потом находить и освобождать в таком случае?
484 2564932
>>564925
Операционная система должна почистить.
485 2564937
>>564932
при ребуте?
486 2564953
>>564937
Нет, при завершении процесса. Это в любом случае надо для безопасности (чтобы хакиры ее не прочитали потом)
https://stackoverflow.com/questions/5612095/is-freeing-allocated-memory-needed-when-exiting-a-program-in-c
Но конечно освобождать память за собой надо, потому что это тебя убережет от багов.
Что же касается утилит, то пишут Valgrind. Либо написать свою обертку malloc (так же в c++ пишут обертки new/delete)
https://stackoverflow.com/questions/9074229/detecting-memory-leaks-in-c-programs
487 2564956
>>564953
Спасибо за ответ понял
488 2565089
>>564953

>Нет, при завершении процесса.


В основном система чистит, но не всё, кое что остается, поэтому чистить надо всё не ища оправданий чтобы не чистить. Но свиномакаки привыкли срать совсем не обращая внимания, такие в в сях только насрут и обосрутся. Си не для быдла.
489 2565112
>>563287

>Какие профиты


Because it's beautiful.
490 2565180
>>565089

>не всё, кое что остается


Например?
491 2565430
>>565180
Семафоры, временные файлы - все, что выходит за пределы процесса.

Мимо
1548309150950.png29 Кб, 967x113
492 2565484
>>565430
Причем тут временные файлы? free() не удаляет файлы.
Насчет семафоров тоже сомневаюсь.
Снимок экрана от 2023-01-07 15-04-58.png22 Кб, 471x242
493 2565696
часто слышу что по указателю можно как-то хакнуть программу. Пикрил небезопасный, или как её хакают?
494 2565915
>>565696
Поясни, почему.
495 2566010
>>565696
Самое распространенное что приходит в голову
1. Use after free.
ptr = mysupersecretpassword();
login_with_password(ptr);
free(ptr);

Но допустим enter_pwd куда-то сохраняло временно указатель...
tmp_ptr = ptr;
Если хакир сможет его прочитать, он сможет прочитать твой пароль, хотя ты думаешь что он удален.

2. Buffer overrun/overflow
char string[80];
char ptr = string;
while(
ptr++ = getch());
Но что если хакир не остановится и введет больше 80 символов; тогда они перезапишут какую-то часть стека, и он сможет ввести так прямо машинные коды, который исполнится. Сейчас конечно от этого добавили защит, но все равно это проблема.
496 2566718
а как скачать <graphics.h>
497 2566998
>>565696
1)Чувак,это пиздец кринж, нахуй ты 2 раза память выделяшь?
2)Пикрил полностью безопасный, после работы с памятью можно для безопасности забивать эту область памяти хуйней, например нулями функцией memset, главное в конце очищать память, чтобы система не рухнула
498 2567011
>>563328
scanf можно юзать, если знать, что scanf("%ns", hiy), ограничивает кол-во символов на входе и не даёт совершить переполнение, ну или использовать fgets, тоже с ограничением.
А так в си пиздец с ёбанным wchar, просто кринж
499 2567106
>>567011
scanf_s в стандарте C11 уже 12 лет...
500 2567189
>>495049 (OP)
https://godbolt.org/z/d9hdYKr8o
Почему этот код выдает сег фолт?
Я всего лишь хочу заполнить массив размером 4n четыремя копиями массива размером n
501 2567280
>>567189
На первый взгяд, в memcpy(AR2 + offset, AR1, sizeof), использовать без амперсанда. Не факт, что твой компилятор адекватно это переваривает(с лишним амперсандом), но в гадболте зеленая галочка, следовательно он это скомпилировал, попробуй убрать &, если не поможет, то семантика
502 2567368
>>567189
Мудило с варнингами, ты опять вышел на связь?
503 2567417
>>567280
Ок, убрал операнд, вставил в sizeof сам массив, сегфолта больше нет, но заполняется только одна четверть массива, а тут почему?
https://godbolt.org/z/afdxsfex9
504 2567454
>>567417
может потому что ar1 в четыре раза меньше ar2 ?
505 2567510
>>567454
Ну а офсет то в цикле увеличивается, каждый раз на размер ar1, 4 итерации должны по идее покрыть все четыре четверти ar2.
506 2567596
Хочу прошить ардуинку программой на ассемблере для avr. Поставил себе на винду убунту через WSL, установил тулчейн для avr и avrdude. А как в виртуализированном линуксе определить порт, к которому подключена ардуинка, чтобы указать его avrdude?
507 2567682
>>567596
И зачем ты так запердолился, если есть виндовый AVR Studio.
508 2567827
>>567510
Оффсет не нужно на размер int'а умножать. Это индекс, а не количество байтов.
509 2568091
давно не лазил в эту тему, а как сыграть ноту? Чтобы просто частота и длительность хотя бы, в winapi было такое beep()
А как сейчас с этим обстоит дело?
Есть какой-то кроссплатформенный вариант без жирных либ?
За это дело вообще кто отвечает, драйвер звуковухи?
изображение.png1,9 Мб, 1562x878
кот_волшебник 511 2569791
>>567106
>>567011
Что правда ?
Я ведь такой наивный, читаю техническую литературу по системному программированию и документацию, никогда не знал что туда можно передать параметр размера буфера, а на дваче мне открыли глаза, надо же...

Минус этого метода не только в буфере, а в том что чтение символов, заканчивается после того как передается пробел, да конечно, можно указать что-то вроде scanf("%5s %d", buf1, &varint), но это не очень удобно, минус этого метода ещё и в том что он не имеет ограничение на количество символов которые пользователь может ввести физически в консоли,т.к. когда пользователь будет передавать текст в буфер консоли, то тот в свою очередь будет выбрасывать в твой буфер (в массив в куче например), в отличие от метода WinAPI - ReadConsole (ReadConsoleW для широких), в котором ограничение ввода установлено на 256 символов (из которых видимые 254, два последних это переход на новую строку и нулевой терминатор), при условии что размер массива меньше 256*(n+1).
Как вариант эту проблему можно решать, через какой-нибудь дескриптор консоли, смотреть сколько байт находятся в буфере консоли, либо использовать getchar() (или его аналог для широких символов), либо писать свои методы которые будут правильно обрабатывать поток ввода, но сейчас на меня набежит один шиз, который не пользуется предоставляемым API, и судя по всему ничего не программирует кроме своих самолетиков на кружке по авиамоделированию, будет доказывать что я не прав...
Короче говоря, нужно быть умственно-отсталым, чтобы на полном серьезе писать консольные утилиты используя scanf (или даже его аналоги вроде scanf_t), и если честно я на хую вертел аргументы в духе: "Но это же в стандарте написано, пок-пок...", нужно быть идиотом, чтобы не понимать, что в Си нет абсолютно всего, чтобы этого можно было легко использовать из "стандартной коробки", и тем более чтобы это было удобно, и работало правильно.
Это не блядская Java или Python, где за вас уже всё написали, и вы даже не задумываетесь что и как там работает "под капотом".
Не просто так говорят, что знание Си = знание операционных систем, знание того как работает железо, т.к. нужно знать не сам язык, а множество аспектов и нюансов архитектуры и среды выполнения, в которой ведётся разработка кода на Си (уже не говоря про умение работать с различными отладчиками и знание ассемблера).
Я бы переформулировал это немного иначе, пусть это и звучит абсурдно, но очень хорошо описывает суть вышеизложенного: "Си создан не для того чтобы на нем программировать в той или иной среде, скорее среда в которой ведется разработка, создана для того чтобы можно было писать на Си".

>>567011

>пиздец


>кринж


>с ёбанным wchar


wchar_t— это тип данных стандарта ANSI/ISO C (а также использующийся в других языках программирования) для представления широких символов.
Да, я в курсе что размер wchar_t соответствует машинному слову, а т.к. это меньше 4 байт, то не создает возможности кодировать всю таблицу Юникода, в отличие от Linux где wchar_t составляет 32 бита, т.к. размер типа wchar_t определяется компилятором, вплоть до минимальных 8 бит, поэтому конечно же лучше его не использовать этот тип тем более для хранения юникода.
В этом вопросе, я признаю твою правоту, я ошибся, и не уточнил, что под wchar_t я имел ввиду short unsigned int (по крайней мере на моём железе это два байта, (gdb) p sizeof(short unsigned int) $1 = 2) для хранение двухбайтовых символов юникода.
изображение.png1,9 Мб, 1562x878
кот_волшебник 511 2569791
>>567106
>>567011
Что правда ?
Я ведь такой наивный, читаю техническую литературу по системному программированию и документацию, никогда не знал что туда можно передать параметр размера буфера, а на дваче мне открыли глаза, надо же...

Минус этого метода не только в буфере, а в том что чтение символов, заканчивается после того как передается пробел, да конечно, можно указать что-то вроде scanf("%5s %d", buf1, &varint), но это не очень удобно, минус этого метода ещё и в том что он не имеет ограничение на количество символов которые пользователь может ввести физически в консоли,т.к. когда пользователь будет передавать текст в буфер консоли, то тот в свою очередь будет выбрасывать в твой буфер (в массив в куче например), в отличие от метода WinAPI - ReadConsole (ReadConsoleW для широких), в котором ограничение ввода установлено на 256 символов (из которых видимые 254, два последних это переход на новую строку и нулевой терминатор), при условии что размер массива меньше 256*(n+1).
Как вариант эту проблему можно решать, через какой-нибудь дескриптор консоли, смотреть сколько байт находятся в буфере консоли, либо использовать getchar() (или его аналог для широких символов), либо писать свои методы которые будут правильно обрабатывать поток ввода, но сейчас на меня набежит один шиз, который не пользуется предоставляемым API, и судя по всему ничего не программирует кроме своих самолетиков на кружке по авиамоделированию, будет доказывать что я не прав...
Короче говоря, нужно быть умственно-отсталым, чтобы на полном серьезе писать консольные утилиты используя scanf (или даже его аналоги вроде scanf_t), и если честно я на хую вертел аргументы в духе: "Но это же в стандарте написано, пок-пок...", нужно быть идиотом, чтобы не понимать, что в Си нет абсолютно всего, чтобы этого можно было легко использовать из "стандартной коробки", и тем более чтобы это было удобно, и работало правильно.
Это не блядская Java или Python, где за вас уже всё написали, и вы даже не задумываетесь что и как там работает "под капотом".
Не просто так говорят, что знание Си = знание операционных систем, знание того как работает железо, т.к. нужно знать не сам язык, а множество аспектов и нюансов архитектуры и среды выполнения, в которой ведётся разработка кода на Си (уже не говоря про умение работать с различными отладчиками и знание ассемблера).
Я бы переформулировал это немного иначе, пусть это и звучит абсурдно, но очень хорошо описывает суть вышеизложенного: "Си создан не для того чтобы на нем программировать в той или иной среде, скорее среда в которой ведется разработка, создана для того чтобы можно было писать на Си".

>>567011

>пиздец


>кринж


>с ёбанным wchar


wchar_t— это тип данных стандарта ANSI/ISO C (а также использующийся в других языках программирования) для представления широких символов.
Да, я в курсе что размер wchar_t соответствует машинному слову, а т.к. это меньше 4 байт, то не создает возможности кодировать всю таблицу Юникода, в отличие от Linux где wchar_t составляет 32 бита, т.к. размер типа wchar_t определяется компилятором, вплоть до минимальных 8 бит, поэтому конечно же лучше его не использовать этот тип тем более для хранения юникода.
В этом вопросе, я признаю твою правоту, я ошибся, и не уточнил, что под wchar_t я имел ввиду short unsigned int (по крайней мере на моём железе это два байта, (gdb) p sizeof(short unsigned int) $1 = 2) для хранение двухбайтовых символов юникода.
дайвер ктулху.jpg251 Кб, 733x979
кот_волшебник 512 2569794
>>563333 (Del)
>>563349 (Del)
>>555643
>>555621
>>555298
>>554813
>>554022
>>554027
>>553938
>>553885

Я больше не зайду на двач, хотел из любопытства, в последний раз, посмотреть что мне написали, и не более, т.к. это помойка на которой мало кто умеет нормально общаться, и к тому же она формирует вредные привычки в общении, закладывает деструктивные макросы мировосприятия довольно пагубно влияя на психику.
Проще говоря, 2ch = деградация.
На этом всё, всем пока, было приятно (и порой не очень) пообщаться.
Не будьте агрессивными петухами, используйте этот тред чтобы делиться полезной информацией, обмениваться знаниями или опытом, узнавать что-то новое, всем удачи.
513 2569825
>>569617
т.е. у DirectSound/WME есть такая функция воспроизвести ноту? Или там тоже нужно какой-то свой сэмпл делать для эталонной ноты?
514 2569910
>>569825
Ну разумеется нужно сигнал сделать сначала А ты как хотел?
515 2569950
>>569794
Залетуха пришел в тред, насрал тут своими мокрописьками и говнокодом, а виноваты аноны. Правильно говорят «Если тебе все говорят что ты пьян, стоит присесть», но залетный этого не понимает и пытается в перефорс своей духотой.
bandicam 2023-01-11 19-26-54-633.mp4340 Кб, mp4,
464x160, 0:15
516 2569981
>>569910

>А ты как хотел?


Утерянные технологии древних.
517 2570049
>>569794
Позитивное мировосприятие давно себя дискредитировало.
518 2570246
>>569794
Ты не прав. Здесь очень много интересных людей сидит. Нужно только прорваться через это всё, что ты описал - и тогда ты поймёшь.
изображение.png3,7 Мб, 1968x1424
519 2570287
>>569950

>Залетуха


>насрал


>мокрописьками


>говнокодом


>«Если тебе все говорят что ты пьян, стоит присесть»


>залетный


>не понимает


>пытается в перефорс



Ну если ты такой умный, напиши что-то полезное, книги например по системному программированию под Windows/Unix, полезные ресурсы, или можешь например скинуть ссылку на пример консольной утилиты в Win/Linux, а мы посмотрим на твой эталонный код, будет на что ровняться.

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

>>570246
Да я устал что-то постоянно ждать от людей анон, как в реальном мире так и в виртуальном мире, проще просто изолироваться и делать то что тебе нравится, литературы полно, документация есть, бесчисленное море всевозможных ресурсов, форумов и прочего, возможность работать удаленно.
Каюсь, я и сам когда-то был таким, но это деградация общения, ни к чему хорошему не приводит, тем более в /pr/, я бы понял в /b/ где сидят полоумные школьники, или 40-летние скуфы которые ведут себя как те же полоумные школьники. Порой замечаю, как сам общаюсь подобным образом, и мне становится от этого противно, вызывает отвращение.
520 2570351
>>570287
Ты же писал что ушел, чмоха.
изображение.png2 Мб, 1200x842
521 2570368
>>570351
Ожидал что ты это напишешь, всё же хочется завершить дилог.
Скинь ссылку на свой настоящий git-репозиторий, быть может ты работаешь в сфере оборонной промышленности, и тебя с твоей гениальностью вырвали с руками из твоего универа не дав времени на создание собственных проектов, в связи с чем у тебя нет git-репозитория, поэтому можешь написать простую консольную утилиту под Windows на чистом Си, только подробно закомментируй свой код, и укажи ссылки на используемые источники, либо названия книг которые ты использовал при написании кода.
Ты же не чмоха, или како-то залетун-говнокодер, верно ?

Только пожалуйста, не пиши что ты циник, мизантроп, плейбой и филантроп, и что тебе чужда чья-то оценка, т.к. это будет явная демонстрация неспособности аргументированной критики, не падай ниже плинтуса.
522 2570373
>>569794
>>570287
>>570368
Шиз, прими уже таблетки. По твоей писанине и зацикленности на мокрописьках понятно, что ты нездоров.
1596651214072.png41 Кб, 675x995
523 2570378
>>570368

>можешь написать простую консольную утилиту под Windows на чистом Си


Ну лови. Не знаю зачем тебе такое правда.
1566025696724.webm13,6 Мб, webm,
1920x1080, 3:35
524 2570380
>>570368
Выкладывал около года назад уже.
525 2570383
>>570373

>Шиз


>писанине


>зацикленности


>мокрописьках



Прими тот факт что твоих навыков хватает, только на то, чтобы оскорблять других пользователей в треде, и самоутверждаться за счет матерных выражений, а я в этот тред пришёл чтобы обменяться полезной информацией, узнать что-то новое.
изображение.png4,6 Мб, 3348x1720
кот_волшебник 526 2570406
>>570378

>непонятный кусок кода вырванный из контекста


>непонятно кому принадлежит


>без комментариев


>на C++



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

>>570380
Меня не волнует что ты, и куда скидывал год назад или 5 лет назад, я прошу то, что у тебя есть сейчас, и делаю я это не для того чтобы можно было тебя унизить, в отличие от меня униженной чмохи, залетуна-говнокодера, а для того чтобы понять, "как правильно делать", узнать что-то новое от настоящего профи из мира программирования, именно поэтому я прошу, чтобы код был полным, с подробными комментариями (в разумных рамках), и ссылками на используемые источники/документацию, будь милосерден, потрать немного своего сверх-ценного времени.
К тому же т.к. ты профи, много времени у тебя не уйдет, всего-то прошу написать простую консольную утилиту под Windows, желательно чтобы программа понимала и умела работать с UTF-8 и читать символы на разных языках,
всего-то делов, для тебя как два байта переслать...
527 2570408
>>570406

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


То, что было год назад, никуда не исчезло и есть у меня сейчас.

> код был полным, с подробными комментариями


Просмотри видео, там подробнейший построчный аудиокомментарий.
528 2570411
>>570406

>непонятный кусок кода вырванный из контекста


Я и не обещал что он будет полными или понятным.

>непонятно кому принадлежит


Анону.

>без комментариев


Самодокументированный код

>на C++


Мелочи. Ncurses сишная либа.
529 2570429
>>570383

> я в этот тред пришёл чтобы обменяться полезной информацией, узнать что-то новое


Но пока все что ты сделал - это доебался до анонов со своей духотой и неадекным поведением. Поэтому отношение к тебе соответственное, можешь проследовать нахуй.
изображение.png2,3 Мб, 1920x1158
530 2570441
>>570408

>Просмотри видео, там подробнейший построчный аудиокомментарий.



Ну хорошо, видео годное, посмотрю.

>>570411

> Ncurses


Ну вот видишь анончик, я например не знал про этот Ncurses, не знал что есть такая замечательная библиотека для написания консольных утилит ввода-вывода, так что спасибо тебе, узнал что-то новое и полезное, а ведь изначально наш диалог мог начаться именно таким образом, вместо того чтобы покрывать друга друга матом и слать на разные стороны, другие аноны тоже узнали бы что-то новое и поблагодарили тебя.
изображение.png62 Кб, 200x285
кот_волшебник 531 2570449
>>570429

>Поэтому отношение к тебе соответственное, можешь проследовать нахуй.



Надеюсь ты сильно не обиделся на мои слова, извиняюсь если обидел тебя (без шуток), спасибо что написал про Ncurses.
И всё же, хочу добавить, что полностью нельзя уйти от использования API-операционной системы, особенно если пишешь на чистом Си.
Буду очень признателен, если ты не станешь слать меня нахуй, а например посоветуешь пару книг по системному программированию (желательно под Windows), я вот недавно нашел замечательную книгу: "Рихтер Дж., Назар К. - Windows via C C++. Программирование на языке Visual C++ - 2009".
532 2570468
>>570441

>узнал новое


>ncurses


>Initial release1993; 30years ago


>ncurses is a free-software emulation of curses.


>The first curses library was developed for a BSD operating system, around 1980


Ох вау.
А ты точно Си-программист?
изображение.png2,8 Мб, 1200x1158
533 2570487
>>570468

>А ты точно Си-программист?


Признаюсь, я не Си-программист, писал на других языках, и очень слабо знал Си и ассемблер (тем более C++), дело в том что меня сильно заинтересовал реверс (и системное программирование тоже), поэтому решил восполнить забытое, и прошло не так уж много времени с тех пор как взялся за изучение этой темы.
Не смотря на это, у меня большое желание изучить всё очень подробно, на сколько глубоко это возможно сделать, поэтому был бы рад комментариям и полезной информации от людей вроде тебя, которые варятся в этом не первый месяц, или год.
534 2570769
>>569910
ну вот я и уточнял есть ли в винде встроенное такое
535 2571162
Пикрил можно как-то более изящно сделать? Вот эти вот (i + 1) и (i - 1) немного смущают. Эта хуйня просто строит пирамидку пикрил2, с двумя пробелами в центре
536 2571164
https://pastebin.com/J7xNAGsN говнокод если что
pyr.png30 Кб, 729x831
537 2571318
>>571162
В программировании нет понятия "изящно", чтобы еще его и сравнить как что-то более или менее. Такие понятия придумывают только смузихлебы и поехавшие преподы.
Есть скорость написания кода, скорость работы кода и потребление ресурсов.
Вот если нужно оптимизировать на скорость работы, то можно написать, например, так как на пикриле. Если задача будет выполняться особенно на больших размерах пирамид.
Видимо также у тебя подразумевается работа с некой двумерной картой, которую будут использовать не в вакууме.
Значит задача разбивается на три этапа:
1) инициализировать нашу карту какими-либо значениями (пустого места)
2) установить расположение пирамиды/юнитов на карте/пикселей в текстуре
3) отобразить/отрендерить это на экран/в текстуру

Данный алгоритм с пикрила оптимизируется еще двумя способами:
1) избавляемся от двухмерности массива и делаем одномерным
2) все циклы построены так, что мы можем каждый распараллелить по потокам, т.е. мы параллелим цикл в INIT, параллелим цикл в VIEW, а в SET мы можем и каждый из четырех циклов распараллелить и циклы сами выполнить в любом порядке, т.к. они работают с независимыми данными

надеюсь, что ты не лабу делаешь))
538 2571333
>>571318
Бля, братан, спасибо, но я до таких умных вещей еще не дошел. Но спасибо, попытаюсь понять, че все это значит

>надеюсь, что ты не лабу делаешь))


Зря надеешься(
https://cs50.harvard.edu/x/2023/psets/1/mario/more/
pyr.png31 Кб, 772x603
539 2571543
>>571333

> Зря надеешься(


ладно, ладно...
540 2572077
>>571543

>рисует фигуры


>printf()


printf это же потоковый вывод, годится только для портянок логов - последовательного выблева данных, но никак не для рисования по экрану. Что это за терминальная мозговая недостаточность, что даун не понимает таких элементарных вещей?
541 2572082
>>572077
Пчел, спокнись, он просто лабу делает.
542 2572087
>>572082

> мы тут просто серем тупостью


Ну и зачем? Что значит "просто"? Просто дебилы, и не мешай нам дебилить, так что ли?
543 2572091
>>572077

> Что это за терминальная мозговая недостаточность, что даун не понимает таких элементарных вещей?


>>572087

> Ну и зачем? Что значит "просто"? Просто дебилы, и не мешай нам дебилить, так что ли?


ты то уж что порвался, я ему решил задачу с тем вариантом вывода, что у него была в условии, для визуализации алгоритма. Мне ему что, вкорячивать работу с контекстами графических устройств, может еще тут конвеер вулкана развернуть для такой задачи было нужно?
Мне-то не трудно, но наглядности это значительно лишает, т.к. акцент тут на алгоритмах, а не выводе, поэтому в учебных лабах это и используется там, где нужно. Как тебя похмелье-то после праздников еще не отпускает.
544 2572093
>>572077

> никак не для рисования по экрану


Чем тебе ascii рисунки не рисунки?
545 2572221
>>572091

>решил задачу


Один пришел с тупой задачей, другой для него решил. В результате оба отупели еще больше. Браво.

>Мне ему что, вкорячивать работу с контекстами графических устройств


>консоль


>работу с контекстами графических устройств


Вот-вот, результат одебиливания налицо.

>>572093
А ты лучше вообще не пиши, раз не понимаешь разницу между принципом работы printf и поставленной задачей рисовать на экране. Это даже к программированию не имеет никакого отношения, а сырой здравый смысл - базовое наличие мозга, не тупить как дебил.
546 2572227
>>572221
Чел, ты реально тупой или троллишь так?
547 2572482
>>572227
Дебил, ты вообще понимаешь что такое рисование? Представь холст или программу паинт, а теперь подумай, что является основой для процесса рисования? Подсказываю - место, координаты по которым ты собираешься наносить мазки своего рисунка. Рисование подразумевает прямоугольную площадь с ПРОИЗВОЛЬНЫМ ДОСТУПОМ. Заметь, тут программирование даже ни при чем, всего лишь надо не быть тупогогим имбецилом безмозглым, но ты не смог.

А теперь скажи, где ты видишь координаты у printf?
Правильно, нигде. Так какого хуя ты лезешь в рисование этим говном совершенно не подходящим для рисования?

Теперь уже программирование. Ты вообще понимаешь, тупой выблядок собаки, что такое компьютерный экран и как происходит вывод на него изображения? Что нужно чтобы рисовать? Нет, не понимаешь. Я бы сейчас посоветовал идти читать, учиться, но не буду. Потому что бесполезно, прежде чем учить компьютеры надо не быть дебилом, а ты уже конченый даун даже без программирования, что ясно видно по первому абзацу не касающемуся программирования, где ты обосрался.
548 2572503
>>572482

> пук


Dwarf fortress и вобще посмотри что такое игры в терминале
Там неожиданно рисуют картинку симвалами ascii

но спасибо за пасту, улыбнулся с тупости
1599301809848.png471 Кб, 609x479
549 2572510
550 2572513
>>572482
Нет, не подразумевает. Традиционно вывод производится в консоль, а у консоли есть способы передвинуть курсор обратно.
551 2572531
>>572510
Зумерок, не в Стиме, а олдовуюверсию
Хоть в Вики бы зашел, ну или картинки загуглил
1565700553683.png130 Кб, 571x416
552 2572536
1661728858428.png81 Кб, 300x379
554 2572549
555 2572608
>>572077
>>572221
>>572482
Анончик мне помог, а тебя хуле порвало-то?
556 2573022
>>572482
Это просто поразительно, как анон мог порваться из-за дефолтного printf'a.
557 2573206
>>572482
У терминала нет координат. В том то и фишка, что это потоковое устройство, а не блочное. Именно это позволяет подключаться к серверу и там играть в нетхак.
558 2573290
>>573206

> У терминала нет координат


Результат одебиливания printf-ом налицо.
Пожалуйста, наглядный пример, как от дебильных задач люди тупеют. С каждым разом привыкают к тупости и тупеют еще сильнее. Уже даже когда прямо тыкают в ошибку, не шевелятся. Тупость закостенела намертво, обученный готов. Занавес.
559 2573472
>>573022

> Это просто поразительно, как анон мог порваться из-за дефолтного printf'a.


не для всех новогодние праздники проходят без последствий, в том числе для психики)
1527367480609.png603 Кб, 880x660
560 2573561
>>573290
Поколение ЕГЭ, спок.
561 2573806
Почему сложно учить? Забывается все концепты, быстро.
-девственный ньюфаг
562 2574155
>>573806
Может тебе просто не интересно то, что ты учишь.
563 2574232
>>573806
Все запоминается повторениями, причем циклическими, через неделю, через месяц. Помнят только то чем постоянно пользуются, в окружающем мире мало похожего на код.
564 2574392
>>574232

>Все запоминается повторениями


Вот так printf-ы уродуют мышление туповатого быдла.
565 2574525
>>574392

>жопа продолжала рваться



зашивайся, кал
566 2576539
>>573806

> Почему сложно учить? Забывается все концепты, быстро.


> -девственный ньюфаг


С - самый простой язык для изучения. Но самый сложный если пытаться написать на нем что-нибудь вменяемое
567 2576594
>>576539
Что вменяемого ты писал/пытался написать на си?
568 2576642
Вот realloc() может вернуть указатель, отличный от переданного в качестве аргумента указателя на блок памяти, т. е., по видимому, выделить блок большего размера в другой части кучи, замаппить его/сделать memmove, здесь я уже хз.
А что делать, если я исходный блок разбиваю как хочу и везде использую указатели на произвольные участки внутри этого блока? После вызова realloc() память по всем моим указателям будет содержать мусор. Как сделать, чтобы блок нового размера был доступен по старым адресам? mmap здесь может помочь? И вообще, если у меня возникла такая необходимость, то всё ли я делаю так?
569 2576652
>>576642

>Что я делаю не так


Используешь realloc.
570 2576790
есть си код (пик-1)
клангом собираю из него wasm (пик-2)
после чего дергаю функцию из js (пик-3)

все работает нормально, а как теперь в обратную сторону: вызвать из си функцию js?
Как я вычитал, что формируем importObject, который должен будет содержать всё импортируемое в си, пихаем его вторым аргументом в функцию instantiateStreaming, а как правильно объявить ее в си коде и нужны ли еще какие-то флаги при компиляции?
571 2577070
>>576539
Наоборот же, самый простой. В си ты можешь делать все, что хочешь. Ты не зависишь от либодела, насравшего говном в дефолт функционал.
image.png22 Кб, 772x219
572 2577120
Какое из четырех решений лучше с точки зрения дизайна/читабельности? Надо посчитать финальный счет, когда известны: bill (стоимость без налога), tax (налог в процентах) и tip (чаевые в процентах). Решения разделены строкой если че, все они дают один результат. Четвертое решение это просто математическое упрощение третьего кек
image2023-01-17145935938.png44 Кб, 1797x526
573 2577124
Ребята , кто может объяснить почему получается именно такой оутпут. Очень слабое понимание как устроено выделение памяти
574 2577126
>>576594
Ничего. Поэтому и говорит что сложно.
Или у тебя есть пруфы обратного? Ну показывай.

Си - язык говно, язык пидор с практической точки зрения. Но тут нет вины Си, это наоборот следствие его охуенности. Си идеально соответствует компьютеру, поэтому проблемы с написанием программ это проблемы компьютьеров, железа, а не Си.
"Персональные компьютеры (PC)" как платформа это говно ёбаное, отсюда и лезут проблемы. Ничего нельзя написать нормального потому что компьютеры не содержат программной поддержки своего железа, т.к. оно нефиксировано, может быть каким угодно, а значит и годную прошивку не напишешь.
Как результат, всё сваливается на сторонние библиотеки, васянские поделки. ПК это сплошное васянство, и Си только лишь отражает эту проблему как идеальное зеркало из за своей идеальности.
575 2577129
>>577120
Бтв, правильно ли я понимаю, что с точки зрения производительности лучшие решения 2 и 4, так как там дублирующихся действий?
576 2577131
>>577129

>нет дублирующихся действий


фикс
577 2577135
Анончики, помогите! Что в этом коде вызывает ошибку переполнения и почему? Она возникает в процедурке array, которая наполняет массив случайными числами, и именно в той части кода, которая не генерит случайные значения и присваивает их индексам массива, а в той части кода, которая ответственна за сортировку этого массива, да, она пока никак его не сортирует, но это уже след. проблема для решения. Мне бы понять, почему возникает переполнение, и причём не при каждом вызове программы.

https://pastebin.com/SHepZvKM
578 2577256
>>577135

У меня всё получилось! Я во всём разобрался и написал идеальный код для решения моей простенькой задачи! Спасибо всем неравнодушным сишникам, которые мне помогли в этом!!! УЁБКИ!!!!!
Стикер512x512
579 2577288
>>577135

>причём не при каждом вызове программы.


Дай угадаю, примерно 1 раз из 11?
580 2577296
>>577288
Из-за чего такое предположение? Нет, чаще! - чуть не каждый 3-й, 4-й раз.
581 2577308
>>577296
Ну я не разбирался во всех циклах.
Но у тебя массив [10] это элементы 0...9
Зачем же тогда берешь остаток от деления на 11? Надо писать %10.
Потому что только так ты получишь 0..9
582 2577333
>>577308
Я пока не использую эту переменную. А так да, что-то косякнул!! Спасибо за наводку. Но ошибка явно не в этом. Ладно, можешь забить на ошибку - я вроде разобрался где она у меня возникала, но не понимаю почему так происходит, т.е., почему ошибка переполнения возникает не при каждом вызове? Косяк был в последнем вложенном цикле, в процедурке array, там при инициализации счётчика он равен равен счётчику основного цикла, а по ходу пробегания по массиву эта "вложенный" счётчик должен уменьшаться, а я применил операцию инкремента. Но почему в этом случае программа падала не каждый раз - я хз. Наверное, не каждый раз выполнялось условия активации вложенного счётчика. Надо проверить!
583 2577361
>>577333
Может быть потому что у тебя int i = 0, в последнем цикле int j = i (= 0) и при этом ты обращаешься к (p + j - 1), т.е. вылезаешь до массива? Да и до этого, *(p + i - 1) при i == 0. Но повторюсь в таком коде мне лень копаться, я просто смотрю очевидные моменты.
584 2577390
>>577361
Нет, не в этом дело! Если бы было в этом >*(p + i - 1) при i == 0 дело, то мне думается, что программа падала бы каждый раз, потому как это условие проверяется при каждом проходе, а вот в последний вложенный цикл программа заходит только в том, случае, если выполняется условие, которое может, при рандомном заполнении массива, не выполняться каждый раз.

>в таком коде



А поделись своим видением нормального кода. Что мне нужно подтянуть, чтобы писать удобоваримый для других людей код? Или пока не заморачиваться этим, потому что я пока постигаю эту науку, изучая по книгам и статейкам в тырнете, типа лучше для начала научиться решать задачки посложнее, освоить алгоритмы, а потом можно будет и красотой кода заморочиться? Или лучше сразу полезную привычку вырабатывать?
585 2577471
>>577390
>А поделись своим видением нормального кода
Я отказался от Си в пользу С++, но это тсс. Все же другой тред.
586 2577631
>>577124
на пике просто эталонный код какой-нибудь лабораторной, хорошо, что на практике так непонятно никто не пишет
587 2577639
>>577129

> Бтв, правильно ли я понимаю, что с точки зрения производительности лучшие решения 2 и 4, так как там дублирующихся действий?


компилятор может оптимизирует, а может не оптимизирует, тут как карта ляжет
с точки зрения производительности - скорее всего сразу считаешь во float и оптимизируешь формулу, удаляя лишние/прожорливые действия
588 2577654
>>577124
Потому ты прекращаешь работу программы на первой итерации цикла. Понимание памяти здесь ни причём. В чём вообще задача состоит? Перевернуть строку?
589 2577714
>>577654

>В чём вообще задача состоит?


Продемонстрировать понимание работы указателей. Задача провалена.
590 2577726
>>577124
Как же я проорал когда два указателя пробежали мимо друг друга и пошли обратно разворачивать.
591 2577921
>>495049 (OP)
Объясните несведущему совершенно в программировании ламеру, зачем нужен C, когда есть C++?
В чем нюансы вообще? В чем их разница столь ключевая
592 2577983
>>577921
https://tproger.ru/articles/what-c-is-good-for/
t
t
p
s
:
/
/
t
p
r
o
g
e
r
.
r
u
/
a
r
t
i
c
l
e
s
/
w
h
a
t
-
c
-
i
s
-
g
o
o
d
-
f
o
r
/

После этого пста у тебя будет понимание в чём отличие чистого си от плюсов.
592 2577983
>>577921
https://tproger.ru/articles/what-c-is-good-for/
t
t
p
s
:
/
/
t
p
r
o
g
e
r
.
r
u
/
a
r
t
i
c
l
e
s
/
w
h
a
t
-
c
-
i
s
-
g
o
o
d
-
f
o
r
/

После этого пста у тебя будет понимание в чём отличие чистого си от плюсов.
593 2577986
>>577714

Пиздец, что за ебанутая задача и её исполнение!!!??? А в функцию или процедурку передать массив, чтобы продемонстрировать понимание работы указателей?
594 2578479
>>577921

> зачем нужен C, когда есть C++? В чем нюансы вообще? В чем их разница столь ключевая


компилятор С есть на любом утюге сейчас пока продолжает появляться на любом утюге для новых устройств, плюсы - нет
возможно в отдаленном светлом будущем будет только уже llvm со своим ir, под которое будет подгоняться все свежее железо
595 2578513
>>577654
Писал вчера финальный экзамен в парижском университете , дали задание на листе и попросили написать только output. Вот в чем смысл был)))
596 2578580
>>578513
французы такие геи)))) туда тебе и дорога)))))))))))))))))))))))))))))))
597 2578662
>>578479
Двачую, причем соблюдающий стандарт компилер Си пишут многие в одиночку как хобби или курсач, а вот С++ компилер вообще мало кто написал.
598 2578685
>>578662
Почитайте Столярова, он тоже нахваливает чистый Си из-за zero runtime.
599 2578706
>>578685
ну так-то си во многом хорош, если б не древние костыли, от которых не избавиться
поэтому появляются всякие zig, v, чтобы оставаться в рамках c и его функционала и простоты понимания, но убирая всякие косяки и костыли прошлых лет
600 2578748
>>578706
Zig приятный, но последние пару версий совсем неготовые, и тоже довольно сложный, я бы его компилятор вряд ли написал.
601 2578799
>>578706
Так костылить начали в стандартах, если юзать чистый Си без этих нововведений, т.е. не использовать фичи из новых стандартов, то всё ок - Си выполняет свою задачу, как язык, который создавался на замену ассемблеру. А, если его использовать как высокоуровневый язык, то я ебал его маму рот - Пайтон в тыщу раз проще и интуитивнее, но, при этом, если юзать Пайтон, то всегда остаётся мысль о том, что ты нихера не шаришь то, как работает комп, т.е. для тебя всё это лютая магия; но с Си таких проблем нет - по мере погружения в этот язык, начинает прояснятся картинка в голове, плюс появляется способность читать код на Си, следовательно появляется возможность погрузиться в ядро линукса и начать понимать, как устроена ещё и ОСь, а за ней и как устроена и работает сеть. Вот этим этот язык и хорош - если хочешь понять устройство и принцип работы компа, а за ним понять и принципы устройства нашей цифровой цивилизации, то вежливо просимо в великий и могучий Си.
602 2578800
>>578748
ну там он переезжал на рельсы аутофилляции, поэтому последние версии такие
а по сложности там особо ничего нового сверх и нет, деферы, которые от Си уже просят уже как от С11, импорт вместо инклуда, так то же самое примерно, еще UB поменьше, так что особо не сильно
603 2578801
>>578799
ну так да, на с89 пишем алгоритмы, числодробилки и либы, потом дергаем любым на вкус скриптовым языком их api
image.png59 Кб, 241x209
604 2578814
605 2578983
>>578801
Дебильные сказки. Скриптомакака не осилит си, а программист на си не будет пользоваться скриптопарашей.
606 2578999
>>578983
Одебилившего виндузятника сразу видно за сто вёрст!!!!!!!
607 2579010
>>578983
что ты несешь
608 2579012
>>579010
Этот долбоёб пытается нести окна в массы, а за окнами он несёт смерть всему разумному, не иначе. Он, наверное, фан С#.
609 2579084
>>578983
Никакого противоречия.
610 2579176
Месяц не заходил сюда и обосрался с драмы в треде. Спасибо вам за хорошее настроение, парни. Жаль, что в софтаче такого нет и там одни долбоебы остались.
Вернусь через месяц, снова.
611 2579285
>>579084
Есть.
>>578801

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


Видишь, написано что это один человек, и на си пишет и на скриптах вперемешку. Так не бывает. Кто пишет на скриптах си не осилит, а кто пишет на си не будет писать на скриптах.

Налицо тупая скриптомакака которая пиздит. Считает, что если есть какие-то сишные либы которые можно дергать из скриптов, значит ЭТО МЫ ПИШЕМ НА СИ кудкудах. Короче, чухло приписывает себе чужие заслуги. Обычная тупая чернь, макакоскот скриптовый.
image.png739 Кб, 1024x683
612 2579313
>>579285
Блять, какой же долбоёб тут по треду прыгает!!! Просто пиздец!!! Долбоёб, нахуя тебе дёргать целые сишные либы, когда ты можешь дёргать результат, который получен на Си?
613 2579344
я чот нихуя не понел
си же и есть скрипт
хули вы пиздите черти
614 2579361
>>579344
Скрипт это хуем елозить по рту.
Бесконечный скрипт это грязным, ниггерским хуем елозить по твоему рту.
615 2579385
>>579285

> кто пишет на си не будет писать на скриптах. Налицо тупая скриптомакака которая пиздит


чел, я пишу на с, плюсах, расте, питоне, луа, js... для меня нет особой разницы на чем писать, я программист, скриптами я тоже пользуюсь внезапно, но чаще всего я пишу либы, чтобы тот, кто не программист просто дергал api этих либ через скриптовый язык или вообще интерфейс
тебе так нравится, что тебя обоссывают всем тредом? )
616 2579388
>>579344

> я чот нихуя не понел си же и есть скрипт


не, это ниша за AngelScript он же сиська с крыльями
617 2579545
>>579285
"мы" очевидно означает фирму целиком.
618 2580170
Какой же си ахуенный язык это просто пиздец. Без шуток когда удается высрать функцию что проходит все тесты начинаю мастурбировать просматривая код своей программ
619 2580174
>>580170
хочешь подрочить на гуро?
620 2580207
>>576652
А что делать, если нужно изменить размер блока, но сохранить указатели на участки внутри него? Понятно, что можно вместо указателей хранить смещения, но я надеялся на что-то более приятное.
621 2580267
>>580207
Динамичнский массивы же как раз по смещению на размер элемента и работают.
622 2580272
>>580207
Depends. Может быть надо больше памяти выделять заранее. Может быть если у тебя указатели на что-то, то получается обычная куча, и неважно что она не непрерывная.
623 2580381
>>580207
Открой спеки процессора и посмотри как он работает с адресами. Тогда и идиотских надежд не будет. Программирование это техника, а не религия с загадыванием желаний.
624 2580596
>>580174
Уже
625 2581210
>>580381
Язык Си не завязан на то, как процессор работает с адресами. Это абстрактный язык со своей моделью памяти.
xw4a4gg0zjq31.jpg28 Кб, 550x312
626 2581659
>>581210
Ну удачи в си с таким макакиным подходом.
627 2581790
>>581659
Так я же не ты, который путает язык и процессор.
628 2583079
Как в линуксе на си/с++ отследить плаг анплаг эзернета? Пробовал через пул для /sys/.../carrier файла, но это чет не блокирующий вызов, я так понял из-за того что этот файл в виртуальной фс, че еще варианты есть кроме опроса по таймеру?
629 2584456
Дейтел получше будет для вката, чем керриган, разве нет?
630 2584559
>>584456
Хз, я по Прате вкатывался. Да и сейчас его юзаю как справочник, если что подзабуду.
631 2584908
Как можно собрать проект на си и винапи на винде? Не хочу качать студию. Есть где толковые примеры?
В гугле все ссылаются на студию
632 2584914
>>584908
Что-то мне подсказывает что так не получится.
Надо все равно MS Build Tools и Windows SDK качать, и clang.
Или может быть кросскомпиляция MinGW из под cygwin?
Короеч все выглядит большим гемором, чем студия.
Может кто еще подскажет.
633 2584920
>>584914
Спасибо за инфу, анон

>Надо все равно MS Build Tools и Windows SDK качать, и clang


А есть где пример? Хочу организовать это в vscode, без чего либо тяжеловесного. Скачал там плагин с плюсами, но он ест-но не видит всё что связано с винапи.
IMG20230124133121151.jpg129 Кб, 1037x1280
634 2585086
Почему в статье 13 и 14?
Я правильно понимаю, что тут:
1)точки следования это ; и ;
2) присваивание у оператора присваивания это тот же побочный эффект что инкременты
3) получается побочный эффект присваивания может происходить до инкрементов, тогда в переменной будет 12?
635 2585096
>>585086
Чел, чёт ты какую-то хуиту читаешь, потому что алгоритм тут следующий:
1) Переменной i присваивается значение 5;
2) К переменной i прибавляется единица;
3) К переменной i прибавляется единица;
4) Переменной i присваивается значение суммы двух переменных i, которая уже равна 7 после двух операций инкремента;

Тут как не крути, но i будет равна 14.
636 2585104
>>584908

> Как можно собрать проект на си и винапи на винде? Не хочу качать студию. Есть где толковые примеры? В гугле все ссылаются на студию


https://rsdn.org/article/baseserv/api32.xml
когда уже освоите хотя бы гугл
637 2585176
>>585096

>ты какую-то хуиту читаешь


Или ты малость не шаришь. Черным по белому же написано, зависит от компилятора и моральной деградации его создателя.
638 2585203
>>585176
Да, я после того, как написал псто, подумав, понял, что какой-нибудь уебан может написать компиллятор, который не будет соблюдать правильный приоритет операций.
639 2585294
>>585203
Тут один еблан это ты, компиляторы пишут под стандарт, а не под то как тебе кажется это должно работать. А стандарт знать должен ты, чтобы понимать, что может выдать компилятор
640 2585297
>>585294
А читаю я просто Вики статью про UB...
641 2585539
>>585294
Но ведь если стандарт допускает говно, говно стандарт, а не я. Кто же виноват, что си дохлый язык, на чей стандарт всем поебать.
642 2585612
>>585294
А зачем же выпускать стандарт, который будет ломать всем привычную логику? А, еблан? Или, если тебе в тарелку наложить говна (настоящего человеческого говна), то ты не будешь сопротивляться и костерить повара, а начнёшь жрать говно, потому что оно подано тебе на тарелке?
643 2586146
>>585104

>собрать проект на си


>Не хочу качать студию


>скидывает древнюю статью с билдом через плюсы и в студии



Когда уже начнёте читать а не кряхтеть?
644 2586159
>>586146
Сначала поживи с наше, щенок.
645 2586226
>>585612
>>585539
Хуйню какую-то несёшь, стандарт не просто так написан, чем больше там операторов является точками следования, тем медленнее будет код. Ты натурально не понимаешь, поэтому несёшь хуйню, а делали это всё умные деды. Вообще лучше бы на мой вопрос ответили а не вот эти пуки пустые высирали
646 2586287
>>586226
Ты вообще понимаешь, что происходит, когда твой погромисткий компилятор, написанный для стандарта, который создан погромистами, которые делают из Си высокоуровневый язык, чтобы следовать, по каким-то только им известным причинами, за модными тенденциями, лишая, при этом, Си своего плюса - zero runtime? Ты понимаешь, что то говно, которое ты защищаешь в этом выражении: i = ++i + ++i, чтобы получить 13 хранит одну и ту же переменную в разных местах и с разными значениями? Теперь, дурик, объясни мне - нахуя это вообще нужно? Нахуя ломать язык, единственные плюсы которого - скорость и возможность скомпилить его на утюге?
647 2586483
>>586287

>чтобы получить 13 хранит одну


Ты какую-то хуйню нафантазировал. У ++ и + просто один приоритет, они выполняются последовательно. А вот чтобы получить 14, нужно задать искусственный приоритет операций, несвойственный языку изначально.
648 2586495
>>586287
Складываются не переменные, а значения, естественно они должны храниться. А у тебя какая-то шизанутая оптимизация: раз там указана переменная, значит работа только с переменной, а раз переменная только одна, значит и значение только одно - после всех вычислений. Это шизофазия. Не нужны такие ебанутые оптимизации вопреки здравому смыслу того что написано - выражения сложения.
649 2586556
>>586483

>они выполняются последовательно


>искусственный приоритет операций, несвойственный языку изначально


Совсем пизданулся? То есть, ты хочешь сказать, что в этой реализации Си арность операций никак не влияет на её приоритет, да и вообще в этой реализации Си нет никаких приоритетов у операций?
Это что же, если мы зададим такое условие:
if (k + 1 <= k % 2), то оно будет true?

>>586495

>естественно они должны храниться


Что они? Значения? Ебанутый, как значение привязывается к переменной?

>А у тебя какая-то шизанутая оптимизация


Ебанутый, это не оптимизация, и тем более не моя, а работа компьютера! Значение переменной хранится в определённой ячейке памяти или регистре процессора, с которой (ячейкой памяти), или с которым (регистром процессора) происходит определённая работа.

Блять, такое ощущение, что не с сишниками разговариваешь, а с ебанутыми питонистами, которые проходят какой-то манякурс в скиллфактори или где ещё вы, блять, этого говна понабрались?
650 2586605
>>586556
имеем:
i=5;
надо получить:
i= ++i + ++i;
смотрим по порядку:
++i
какой значение? - 6
Всё, 14 уже не получится.
Если в сях по стандарту это не выполняется, значит такой поеботой просто нельзя пользоваться, нечитаемый человеком код.
651 2586626
>>586556

>Совсем пизданулся?


То есть в твоем мире все инкременты в выражении должны выполняться до первой операции сложения?
И что же тогда должно получиться в результате выражения:
int i=5; i=++i + ++i + ++i + ++i;
Но питонист тут я, да.
image.png81 Кб, 242x208
652 2586636
>>586605
Блять, а это похоже вообще скрипто-вебмакака понабежала в тред! Просто пиздец!!!!

>i= ++i + ++i;


>смотрим по порядку:


>++i


>какой значение? - 6


блять, ещё и неграмотная
Тут надо, продолжить, долбоёб:

>смотрим дальше


>++i


на твоём чурбекском языке продолжу

>какой значение? - 7


>смотри по порядку дальше


>+


>какой значение? - слева в выражении стоит переменная со значением 7, справа в выражении стоит переменная со значением 7, т.е. имеем два аргумента, которые являются значением одной и той же переменной, которая, блять, сука вы ёбанные дегенераты и уёбки, хранит своё значение в одной и той же ячейке памяти, в бинарной операции сложение, которые равны семи, так, сука ЁБАНЫЙ РОТ БЛЯДИ ВЫ ТУПОРЫЛЫЕ, какой значение присвоится переменной i, если сложить 7 и 7?

653 2586643
>>586626
Долбоёб, операция сложения является бинарной. Узнав эту сакраментальную тайну - посчитай сам своё ебанутое выражение. 31
654 2586648
>>586643
Ну так посчитай. Почему инкременты, имеющие больший приоритет, не выполняются в первую очередь? Как обосрался, так сразу ушел в троллинг тупостью?
655 2586656
>>586648

>Почему инкременты, имеющие больший приоритет, не выполняются в первую очередь?


Да, долбоёб, почему? Может помимо приоритета операций есть ещё и другие правила языка, допустим, которые говорят, что сложение есть бинарная операция, а, следовательно, если мы имеем уже два "готовых" аргумента, то их надо обязательно сложить? И кто тут обосрался, а, ебанашка ты, блять, питоническая?
656 2586659
>>586636
Дальше смотреть не нужно, иначе получится, значение меняется в зависимости от записи последующих значений, это шизофазия, нечитаемый код, одно сплошное UB.

i=i+i
это арифмерическое выражение оперирующее значениями, а не переменными. В данном случае i это лишь алиас для её значения, числа 5. Так устроен язык си, это обыкновенная запись по значению.

i=i+i
эта запись вовсе не оперирует переменными, для того нужны указатели или ссылки, а тут запись по значению. То что опертор ++ увеличивает содержание переменной это побочный эффект, не относящийся к записанной арифметической операции. Арифметика происходит со значениями - анонимными числами, а вовсе не с переменными. Повторяю, для манипуляции переменными применяются указатели или ссылки.
657 2586660
>>586656
То есть приоритет у операций одинаковый? Надо же, кто бы мог подумать.
658 2586686
>>586659

>для манипуляции переменными применяются указатели или ссылки


Чел, ебать ты очевидные вещи рассказываешь! Спасибо, конечно! Но, то что, ОКАЗЫВАЕТСЯ, БЛЯТЬ, мы единицу прибавляем не к самой, блять, переменной, чтобы не получить, блять, в арифметическом выражении i1, а к её значению, которое, ОКАЗЫВАЕТСЯ, БЛЯТЬ, хранится не в самой переменной, а, БЛЯТЬ, ОКАЗЫВАЕТСЯ, просто где-то в памяти, т.е. в какой-то ячейке памяти, на которую, ОКАЗЫВАЕТСЯ, БЛЯТЬ, указывает указатель (давай ещё затри мне, что указатель тоже хранится где-то в памяти), и таким образом...

Как эта вся дичь, что ты мне прогнал, объясняет то, что складывая две одинаковых величины (заметь, это не две одинаковые дробные величины), получаем нечётное число? Ваш этот ебучий стандарт и компиллятор погромисткий, блять, нарушают даже простые правила арифметики. Ты мне для начала этот ебантизм объясни, а потом уже, возможно, мы с тобой попытаемся объяснить тебе такие сложные материи, как указатели в языке программирования Си.

>>586660
Ты тоже мне попытайся объяснить ебантизм, что я описал выше. А то ты, долбоёб питонический, даже не понимаешь, что такое арность операций. Хотя, если ты не понимаешь, что такое арность операций, то, блять, и не объяснишь мне ебантизм, что я описал выше. Поэтому просто, для начала, давай послушаем попытки этого 2586659 господина объясниться, а потом подумаем.
659 2586694
>>586686
i=5;
i= ++i + ++i;
++i :значение 6
+
++i :значение 7
i= 6+7 :значение 13
14 не получится никак.
14 может получиться, если это не значения, а ссылки на переменную, но тут нет ссылок, это запись по значению.
660 2586704
>>586694
1) Что такое сложение в ЯПе Си? Сложение - это бинарная операция.
2) Что делает сложение в ЯПе Си? Сложение получает сумму двух аргументов.
3) Откуда берутся эти два аргумента? Они хранятся в ячейках памяти.

>это запись по значению


Хорошо, давай проще:

>++i :значение 6


Когда ты получил значение 6, куда ты сохранил это значение? Уже сразу присвоил переменной i, которая стоит слева от знака равно?
661 2586716
>>586704
Я кажется понял корень проблемы этого треда:
Кому-то из этого треда не помешало бы пройти курс низкоуровневого программирования. Чутка покодить на assembler и много вопросов и пустых мест в картинке о кодинге пропадут.

http://www.stolyarov.info/books/programming_intro/vol2

Приобщайтесь, аноны!
662 2586720
>>586694
>>586704
Я мимо шел, но в gcc получается 14.
https://onlinegdb.com/GyauuOQJQ
Если посмотреть дисассемблер в gdb, то там такоe выполняется:
mov [rbp-0x4], 0x5
add [rbp-0x4], 0x1
add [rbp-0x4], 0x1
mov eax, [rbp-0x4],
add eax, eax
Надеюсь, разметка не сожрет. Но вроде и так все понятно, что в моем случае i хранится по одному адресу и все действия выполняются только над ним.
gcc 6.3.0 если что
663 2586723
Макак конечно то еще даунич, но вот ++var это кринж. Только var++!
байт удался?
664 2586728
>>586720
Какой командой в gdb смотреть дисассемблирование?
665 2586730
>>586723

>это кринж


Кринж, это то, что ты высрал. Префиксная и постфиксная операции в выражениях выполняются по-разному.
666 2586731
>>586728
disas main
Можешь через objdump посмотреть ещё.
objdump -d elfname
667 2586733
>>586731
Чаю, анонче!
668 2586743
>>586731
Можно в любую функцию залетать и смотреть дисассемблирование. Крутяк!! gdb это величайший инструмент для исследования!!!
669 2586750
>>586743
Сам по себе голый гдб достаточно архаичен. Если реально часто в него лезешь рекомендую глянуть его модификации типа gdb-peda или gef.
670 2586753
>>586750
Чаю, анонче! Надо поизучать.
671 2586782
Ебать вы развели холивар по UB, а на практике в итоге это проверили какой-то залетный.
Где-то полгода проверял эту хуйню на микроконтроллере, то есть все компилил арм компмлятором. Получалось 13, хотя на х86_64 всегда получалось 14 на прыщах, на винде тоже было 14, когда тестил в Visual Studio.
Мб это уже устаревшая тема и почти везде это пофиксили, хз.
672 2586797
>>586720

>посмотреть дисассемблер в gdb


А почему просто не посмотреть .s в самом gcc?
673 2586847
>>586797
Хз, как умею. А как твоим способом посмотреть?
674 2587106
>>586704

>Хорошо, давай проще:


>>++i :значение 6


>Когда ты получил значение 6, куда ты сохранил это значение?


Никуда, это забота компилятора, а не программиста куда там чего сохранять или нет.
++i естественно присваивает сразу переменной, но это не имеет значения для сложения, которое берет ЗНАЧЕНИЕ, а не ССЫЛКУ на переменную. Ты реально такой тупой, что не можешь отличить значение от ссылки? Значение берется компилятором и хранится где ему угодно, оно отвязано от переменной, главное, что оно уже не меняется, иначе арифметика перестает работать. Иначе получаются мутирующие значения в зависимост от дальнейших аргументов, это непредсказуемая шизофазия, а не код.

> Уже сразу присвоил переменной i, которая стоит слева от знака равно?


Совсем того? Присвоение знаком равно идет результирующего значения, когда справа от знака равно всё посчитано. Компилятор может оптимизировать это как угодно, и присваивать хоть сразу, вообще поебать, потому что в первую очередь он должен генерить ПРАВИЛЬНЫЙ код, а только потом уже быстрый.
675 2587111
>>586847
По ключу -S
676 2587236
>>587106
Чел, иди проспись! Ты похоже незамерзайки объебался.
677 2587247
>>585096
Нет, потому что алгоритм может быть таким:
1) Переменной i присваивается значение 5;
2) Первое слагаемое инкрементируется, теперь это 6;
3) Второе слагаемое инкрементируется, теперь это 7;
4) 6+7 = 14
678 2587257
>>587247
>>587106
Блять, поколение ЕГЭ, вам даже ассемблерную вставку вкинули, но вы, бляди питонические, высокоуровневые уёбки, продолжаете, объебашись незамерзайкой, писать какую-то хуиту.
mov [rbp-0x4], 0x5
add [rbp-0x4], 0x1 - ебанашки питонические, вы здесь видите адрес, куда добавляется единица?
add [rbp-0x4], 0x1 - а здесь, питонические уёбки, видите адрес?
mov eax, [rbp-0x4] - тупорылейшие бляди, вы здесь видите, откуда берётся значение и куда добавляется???
add eax, eax - безмоглые хуесосы из поколения ЕГЭ, вы понимаете, что это всё значит?
679 2587275
>>587257

> ассемблерную вставку вкинули


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

Посмотрите на веруна, которому компилятор как библия, молится считая непогрешимым идеалом, своих мозгов-то нет.
image.png390 Кб, 600x599
680 2587281
>>587275

>баг компилятора


Твой батя - долбоёб и баг компилятора, сучий ты уёбок!!!!

Короче, я обоссал, вас долбоёбов, и укатил в закат! Заебался отвечать на дегенеративную толстоту!
681 2587286
>>587257
Шиз, ассемблерная вставка - это когда ты сам на ассемблере код вставляешь.
А стандарт с++ не говорит, какой ассемблер будет в результате в данном случае, и позволяет компилятору выдать такой код:
mov ax, 0x5
add ax, 0x1
mov cx, ax
add ax, 0x1 - ебанашка, увеличилось только второе слагаемое
add ax, cx
Обтекай.
682 2587298
>>587286
Пфффф, я долбоёбам пол дня доказывал, что их погромисткий компилятор хранит значения одной и той же переменной в двух разных местах (в двух разных ячейках памяти, либо в двух разных регистрах) и только из-за этого, что их погромисткий компилятор занимает большую величину памяти, и получается в выражении i = ++i + ++i нечётное число, блять, один их этих уебанов, чтобы доказать мне, что их компиллятор не занимает доп. пространства и что он более оптимизированный, что это просто "последовательный", блять хуй пойми что, и чтобы доказать мне, что моя ассемблерная вставка неверна, приносит свою ассемблерную вставку, где чётко указано, что одно значение одной и той же переменной сначала хранится в регистре ах, а другое значение, блять, той же переменной, хранится в регистре сх, после чего два этих значения складываются.

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

Я в ахуе!! Это настолько толсто и дегенеративно, что мне, на самом деле, страшно, что у нас растёт вот ЭТО, и что вот ЭТО, пытается в язык программирования Си! ЭТО даже не пытается признать, что ОНО не право, ОНО просто приносит на похуй толстоту, и думает, что эта толстота прокатит!! Полный пиздец!!!!!!
683 2587307
>>587298
Костян, ты и тут троллишь ньюфагов тупостью что ли?
684 2587384
>>586146

> Когда уже начнёте читать а не кряхтеть?


ты сам и не читал, открываешь блокнот, пишешь на си то, что там есть и получаешь итоговую прогу, компилишь тем же mingw
685 2587454
>>587286

> Си тред


> стандарт с++

питоническая-шлюха1.jpg66 Кб, 1024x576
686 2587634
>>587307

>Костян, ты и тут троллишь ньюфагов тупостью что ли?

687 2588922
На вопрос то ответьте, 15 же может выдать ёпта?
688 2588924
>>588922
Ой блядь. 12
Переменная и побочные действия это разные вещи и побочные действия могут происходить в любом порядке. Значит первое побочное действие присваивание в i 5 + 5 и потом 2 инкремента
689 2588925
>>588924

>Переменная


Результат оператора имел в виду. Сорри за ошибки, всю ночь красноглазил.
690 2589041
>>588924
Как она может 12 выдать? Она двенадцать выдаст только в том случае, если приоритет операции у сложения двух аргументов будет выше, чем у инкримента, т.е. это, либо приоритет бинарных операций преобладает над приоритетом унарных операций, либо просто у только одного сложения приоритет выше, чем у инкримента. Но это не побочное действие, а правило, которое зашито в компилятор. Если ты пользуешься не шизо-компиляторами, а нормальным компилятором, то он никогда не выдаст ни 12-ти, ни 13-ти.
image.png85 Кб, 548x548
691 2589050
какие подводные вкатываться в разработку ядра?
692 2589058
>>589050
Если ты не будешь таким же тупорылым дегенератом, который доказывал, что его шизо-компилятор, который хранит одну и ту же переменную с разными значениями и в разных местах, лучше, чем gcc, то никаких подводных, потому что в любом случае обзаведёшься очень большим пакетом полезных знаний, которые сможешь применять где угодно, слегка модифицируя подход. Ядро это же база, от которой всё исходит.
693 2589077
Как узнать, что вам пишет погромизд? Этот даун всегда пытается впихнуть стену текста в одно предложение.
питоническая-шлюха1.jpg66 Кб, 1024x576
694 2589101
>>589077

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



этот обоссыш ещё и правила русского языка не знает
695 2589464
>>589041
Ещё раз блядь, у инкремента приоритет всегда выше чем у сложения. И он возвращает ровно то же число. То что число ещё и увеличится на 1 это побочный эффект. Приоритет у них не определен вообще. Присваивание это тоже побочный эффект. Поэтому инкременты дали 5, 5 + 5 равно 10. А затем происходит два инкремента
696 2589742
>>589464
Чел, блять, как же вы меня уже заебали, сука, два долбоёба, блять!!!!! Кто определяет, что у унарных операций приоритет выше? Если у унарной операции приоритет выше, то как это всё, что ты описал, своими долбоибическими ручками, блять, с побочными эффектами и хуектами долбобоибического твоего мозга, может получится? Ты просматривал, хоть, блять, краешком своего долбоибисеского мозга те ассемблерные вставки, что кидали аноны? Блять, долбоёб, мы даже эти две ассемблерные вставки особо подробно разобрали для самых долбоибических владельцев самых долбоибических мозгов, сука!!!!

Сука, тварь тупорылая, ответь на простой вопрос - кто определяет приоритеты операций?
697 2590120
Всем привет, какие есть специальности в ВУЗах, после которых можно работать на АСУТП или программированием всяких микроконтроллеров на предприятиях, автоматизации процессов на всяких заводах и тд? такое есть вообще у нас? Например взять специальность "Программная инженерия", кто-нибудь знает за неё? Что там изучают и как программу вообще посмотреть?
699 2590181
>>590149
про 2 и 3 знаю, а вот первое реально годнота, спасибо. Но вопрос все же стоял о специальности
700 2590194
>>590120

>специальности в ВУЗах, после которых можно работать на АСУТП


Инженегр АСУТП и называются, лол.
701 2590196
>>590194
Ну значит у меня в городе таких просто нет, потому что по известным вузам посмотрел, ничего такого нет
702 2590331
>>585104
>>587384
Бумеры такой простой вопрос неосилили, нагуглил.
Статья https://www.transmissionzero.co.uk/computing/win32-apps-with-mingw/
Код https://github.com/TransmissionZero/MinGW-Win32-Application

>>584908 - кун
703 2590534
>>590331

> Бумеры такой простой вопрос неосилили


чел, у меня mingw в папочке валяется и notepad++ и я пишу трехмерные приложения на си
качать тут https://winlibs.com/
704 2590572
>>590534
Набредал на винлибс, так и не понял зачем он если mingw тупо ставишь и всё компилит/работает
705 2590700
>>590120
обычно предприятия просят любую инженерную корочку
706 2590806
>>590120
У меня "информатика и вычислительная техника" специальность называется, но ТАУ и железки в том или ином виде присутствуют. Это от специализации зависит уже.
707 2591166
>>590572
потому что там тупа скачиваешь даже и ничего не ставишь и поддержка MinGW-W64 получше
708 2592910
Помогите с отладкой драйвера на винду(фильтр, не настоящее устройство). У меня он виснит на стадии deployment на target pc.
win 10, vs studio 2019, wdk под вин 10 на обоих машинах стоит идентичная версия. На третьем скрине обозначил желтым ту область которая с ошибкой на первом пике.
Что я делаю не так? Может в .inf файле что подредактировать. У меня там секции install и uninstall помечены как .NTamd64

Ну типа {Install.NTamd64] ну собсна такая платформа у системы на которой я тестирую драйвер и есть.
709 2592913
>>592910
Я гуглил эту ошибку кстати, там написаны общие причины что типа повержденные файлы программы, недостающие файлы и т.д. перезапись в памяти процесса и т.д. Мне кажется что раз программа завершается из за вероятно недостатка каких-то данных, то там скорее всего в .inf файле какая-то хуета. Там этих версий и стандартнов под каждую версию ногу сломит. Может есть здесь опытный анон что драйвера пишет под винду, да поможет.
710 2592946
>>592913
Хотя install тест гуд, .inf файл там впорядке скорее всегго.
Screenshot.png72 Кб, 772x459
711 2593551
Мужыки, извините за дико тупой вопрос, но как понять в спеках (и других доках), какой тип значный/беззначный подразумевается в дескрипциях к полям по умолчанию? А то к некоторым полям указывается, что nonnegative number, но в остальнои большинстве говорится просто о 32битном значении.
712 2593552
>>593551
Суть вопроса - есть ли какието конвенции на этот щёт
713 2594223
>>593551
отладкой выясни какие диапазоны
714 2594320
>>593551

>какой тип значный/беззначный


А есть разница? Нолики и единички один хуй одинаковые.
715 2594391
>>593551
Погугли сорцы, там ULONG
success.PNG16 Кб, 1169x340
716 2594426
>>592910
>>592913
>>592946

>>2592924 → (You)
Решил проблему.

Нужно удалить тестовый сертификат который выдан для драйвера на тестовом компьютере из store сертификатов в двух местах

certutil -f -delstore ROOT серийный номер сертификата
certutil -f -delstore TrustedPublisher серийный номер сертификата

После этого все заебумба работает.

Написал, мало ли кому пригодится. А то в интернете на форуме у многих людей темы так и остались открытыми висеть на многие годы. Короче это сертификатная проблема, решается просто перепропиской тестового сертификата для драйвера в двух хранилищах.
image.png12 Кб, 547x338
717 2594471
сап, нужна помощь. Только изучаю С. В чем я не прав?
Задача состоит в том, чтобы ввести двузначное число и помножить друг на друга его цифры. При запуске дает ввести число, но дальше прога просто выключается.
718 2594489
>>594471
запусти в отладчике и проверь
719 2594530
>>594471
Синтаксис scanf, не хватает &
720 2594540
>>594530
благодарю, все заработало. А нахуя оно надо?
721 2594590
>>594540
в отладчике посмотри, что происходит
722 2594601
>>594489
>>594590
И как ты себе представляешь ньюфага, пользующегося отладчиком?
Он скорее всего даже не знает что это такое.
723 2594606
>>594601

>И как ты себе представляешь ньюфага, пользующегося отладчиком?


в отладчике посмотри
724 2594619
>>594601
Хз, как этот долбоёб с отладчиком себе представляет то, что ты написал, но этот анон >>594471 допустил явную ошибку по невнимательности, поэтому зря ты ему так просто подсказал, где он ошибся, - за такие тупые ошибки надо наказывать, пускай дрочится долго-долго. Либо, если невнимательный, то пускай уже сразу начинает изучать отладчик, тем более, скорее всего, этот анон изучает Си не под Линуксом, а в винде, следовательно, пускай накатит какую-нибудь идэешку со встроенным отладчиком и дрочит их (идэе с отладчиком) до опупения, пока сам не начнёт выявлять такие тупые ошибки.
725 2594661
>>594619
Я знакомиться с С начал только вчера. Пишу на питоне в основном.
726 2594683
>>594619
Да дебагер вообще не нужен. Не нужно хуйни писать просто, ну или фиксить ошибки в программе методом пристального взгляда. Немногие это понимают.
727 2594748
>>594540
& это операция взятия адреса переменной (или можно сказать )
Ты передавал переменную по значению. А эта функция подразумевает, что ты передаешь адрес переменной, в которую будет записан результат.
Таким образом, она ожидает грубо говоря 0x612332b23, а ты ей передаешь 5 (или другой мусор, так как она неициализирована). Программа пишет данные по рандомному адресу, ОС ловит попытку записать вне разрешенной страницы и программа падает.
728 2594749
>>594748
*или можно сказать указатель на
729 2595168
>>594748
От души, анон
730 2595513
>>594471
зачем вообще IDE древним пользоваться? при компиляции через консоль тебе бы сразу показали ошибку
image.png23 Кб, 344x217
731 2596008
Какой даун эту хуйню придумал? Это даже не смешно. Оправдывайтесь
732 2596151
>>596008
Карго-культ ООП, хули.
733 2597345
>>596008
как меня заебали эти адепты кала под названием ооп, которые пытаются везде это впихнуть. Кстати видел как один человек на полном серьёзе говорил про инкапсуляцию в Си, и что хедеры можно интерфейсом считать..
734 2597440
>>597345

>как меня заебали автомобили, нет бы как раньше на ослах ездить

image.png307 Кб, 900x395
735 2597469
736 2597488
>>597345

> хедеры можно интерфейсом считать..


Но ведь...
737 2597954
>>597469
неактуально, ооп умирает и это факт, все новые языки которые выходят это процедурщина
738 2597957
>>597954
мисснул
>>597440
739 2598005
>>597954

> все новые языки которые выходят это процедурщина


Например?
получается не зря я в сишечку вкатываюсь?
740 2598022
>>597954
Все новые языки это джаваскрипт.
741 2598270
>>598005
Например я преувеличил(напиздел), чтобы показать неважность ооп. Да забей никому это ооп не нужно, вон там го, раст, zig какой-нибудь все они процедурные. Даже если эти языки что я и перечислили используются 1.5 людьми, это уже показатель что ооп языки щас никто новые не делает, ну какие там щас ооп языки в моде? C#, Java(которая уже вот-вот), все остальное уже мертво давно
742 2598272
>>598022
Ты прав, но и ему скоро придёт конец я гарантирую, пузырь уже лопнул осталось немного подождать и скоро javascript разработчики будут получать не больше офисных
743 2598495
>>598270
Они не процедурные.
744 2598499
>>598270

> ооп не нужно, вон там го, раст


там есть ооп
2023-02-04x07:49:44.png160 Кб, 1122x1061
745 2598570
ну привет анончик

я тут подумал что раз все мои манямирки разрушены, то хуле толку держатся за последний

я готов опуститься на дно ебаное, в самую низушную низину к червям пидарам и гречневым байтоебам за два мрота

принимайте пополнение так сказать..

ну и платиновый вопрос - посоветуй справочник на одну-две странички чтобы сходу въехать в это дерьмо
746 2598584
>>598499

>там есть ооп


Тогда чем вас не устраивает ООП в Си, если там оно есть?
747 2598603
>>598584
меня все устраивает, я же на нем работаю
748 2599259
Привет! как вкатиться в разработку под микроконтроллеры? В физике я вообще не силён и не знаю, сильно ли она нужна, если нужна, то какие темы? По поводу самих микроконтроллеров, что лучше для начала выбрать? Спасибо!
2023-02-04x23:37:06.png1,1 Мб, 2504x1439
749 2599427
>>599259
привет братишка! я тоже решил вкатываться

но тут походу сидят чванливые престарелые пидарасы и просто ебливые додики дрочеры без задач

давай вкатываться вместе! :3
750 2599485
Что использовать, если нужно написать компилятор для простого языка под x86_64? libopcodes дроч какой-то без нормальной документации, в capstone при возможности удобно дизассемблировать код НЕ ПОДВЕЗЛИ ВОЗМОЖНОСТЬ ЕГО АССЕМБЛИРОВАТЬ, ну как так блять?
Пока приходит в голову только извращение с обёрткой функций с компилируемым кодом в форме inline assembly в какие-то макросы и дальнейшим его копированием без пролога/эпилога куда мне надо.
751 2599537
>>599259

>сильно ли она нужна, если нужна, то какие темы?


нет, не нужна, если только конкретно твоя специфическая задача не завязана на этом
752 2599538
>>599485

> Что использовать, если нужно написать компилятор для простого языка под x86_64?


лучше llvm
753 2599577
Анончики, как сделать массив из строк известной длины?
image.png3 Кб, 393x22
754 2599586
Все, понял
755 2599698
ПЕРЕКАТ: >>2599695 (OP)
ПЕРЕКАТ: >>2599695 (OP)
ПЕРЕКАТ: >>2599695 (OP)
756 2599845
>>599427
И чё тут разбираться. Любой школьник за вечер осилит.
757 2603460
Ну так будет перекат или нет? Есть множество задачек, которые хочется обсудить, но боюсь, что в любой момент произойдёт перекат в треде и меня обделят вниманием. Поэтому как-то совсем не хочется активничать в этом треде.
758 2604151
>>603460

>Ну так будет перекат или нет?


А выше что?
Тред утонул или удален.
Это копия, сохраненная 2 марта 2023 года.

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

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