Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 644 94 197
Гении C объясните как это работает пожалуйста https://onlinegdb.com/Cpifzo8bE Здесь array это указат /clang/ Аноним 21/10/24 Пнд 13:44:30 3304338 1
image.png 23Кб, 569x370
569x370
Гении C объясните как это работает пожалуйста https://onlinegdb.com/Cpifzo8bE
Здесь array это указатель на выделенную память, в него не должно помещаться больше 2 элементов. В какую память он это сохраняет и почему?
Аноним 21/10/24 Пнд 13:59:53 3304358 2
Просто повезло, что ничего лишнего не затёрли, когда вылезли за границу массива.
Смотри cppcheck

cppcheck test.c
Checking test.c ...
test.c:12:10: error: Array 'array[2]' accessed at index 2, which is out of bounds. [arrayIndexOutOfBounds]
array[2] = 3;
^
test.c:13:10: error: Array 'array[2]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]
array[3] = 4;
^
Аноним 21/10/24 Пнд 14:16:54 3304376 3
>>3304358
Спасибо за ответ
Не думал, что это настолько ненадёжная штука и её нужно контролировать
Аноним 21/10/24 Пнд 16:09:51 3304507 4
>>3304338 (OP)
Операционная система не может выдать тебе меньше одной страницы памяти (4KB), а аллокатор в зависимости от реализации может не работать с блоками меньше N байт, допустим 64. Но это в любом случае UB и гроб гроб кладбище.
Аноним 21/10/24 Пнд 17:30:20 3304613 5
>>3304338 (OP)
На стеке надо было делать, дядь чтобы его распидорасило.
Аноним 21/10/24 Пнд 17:37:58 3304627 6
image.png 30Кб, 576x597
576x597
>>3304507
>Но это в любом случае UB
Двачую, как конпелятор решит, так и будет.
Аноним 21/10/24 Пнд 18:04:42 3304662 7
Аноним 26/10/24 Суб 04:12:27 3308219 8
image.png 94Кб, 970x754
970x754
Книга K&R 2015 года. Тут ошибка локализации или можно не указывать тип возвращаемой функции? В других учебниках было так:
int main() {
return 0;
}.
Аноним 26/10/24 Суб 04:35:12 3308220 9
Аноним 26/10/24 Суб 17:42:39 3308530 10
>>3308219
В КиР в деклараторе функции можно не указывать возвращемый тип, по соглашению конпелятор будет иметь в виду инт. Не помню, но вроде это в одном из стандартов было отменено.
Ещё с 99-го в main можно не возвращать результат, как у тебя на пике.
>>3308220
Убрали в штандарте 23
Аноним 26/10/24 Суб 19:29:15 3308591 11
>>3308530
Если я делаю как в книге, то при компиляции выдает предупреждение. Компилятор gcc 12.2, OC Debian 12.
test.c:7:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
7 | main() {
| ^~~~
Program test.c compiled to program
Аноним 27/10/24 Вск 16:00:24 3308985 12
>>3308591
А зачем тебе эта книга?
Аноним 27/10/24 Вск 18:56:07 3309099 13
>>3308985
Arduino хочу потыкать, хоть какое-то интеллектуальное хобби.
Аноним 28/10/24 Пнд 17:03:05 3309652 14
>>3309099
Так возьми учебник современного стандарта, что ж всех на музейную макулатуру-то тянет? Почему-то MS-DOS 3.3 вместо линуксов не учат, а Си по более древнему стандарту − за обе щеки.
Аноним 29/10/24 Втр 06:12:41 3309969 15
>>3309652
Какой посоветуешь? Необязательно на русском. Я начал искать книги и везде этот КР был.
Аноним 29/10/24 Втр 06:45:50 3310006 16
Acrobats14N8whJ[...].png 397Кб, 783x1121
783x1121
>>3309969
Стивен Прата − Язык программирования С. Сейчас 6е издание. Теперь это классика и базовый учебник. Большой и подробный. Если не хочется читать тысячу страниц, то есть пара отличных вариантов втрое меньше:
Пикрелейтед, Modern C for Absolute Beginners от Apress
А если учишься не с нуля, то Jens Gustedt − Modern C. Отличная книга, но нужны начальные знания.
Аноним 29/10/24 Втр 08:12:25 3310051 17
изображение.png 374Кб, 720x544
720x544
>>3310006
Душевно вам благодарен
Аноним 29/10/24 Втр 08:54:37 3310091 18
почему по двумерному статическому массиву нельзя полностью пройтись вот так в цикле?
(array + i)
Аноним 29/10/24 Втр 09:00:21 3310098 19
забыл что двач съедает звёздочки. (две такие перед началом скобок)
Аноним 29/10/24 Втр 09:29:50 3310110 20
Аноним 29/10/24 Втр 11:21:51 3310209 21
>>3309099
В пердуине обрезаные плюсы. Мне кажется, на поиграться можно вообще взять по конкретно пердуине гайдики от васянов, для вката в C надо дохуя знаний не только по языку.
>>3309652
>учебник современного стандарта
Какую хуйню ты пишешь, я ебал. Начальная тема по C - это книжка Сикорда Effective C и условный гайдик по gdb.
Аноним 31/10/24 Чтв 08:50:27 3312211 22
Как собирать большие проекты на Си? Есть ли какие-нибудь удобные инструменты типа cargo?
Аноним 31/10/24 Чтв 09:26:44 3312254 23
>>3312211
Тебе уже ответили в педерастотреде.
Прям совсем "типа карго" есть xmake.
Если ты соя и тебе хочется чего-нибудь более мейнстримного и неудобного, то cmake + conan/vcpkg. Или meson какой-нибудь, хз. На крайняк Gradle, но нормальные люди на тебя будут смотреть косо.
Аноним 31/10/24 Чтв 11:42:03 3312388 24
Аноним 31/10/24 Чтв 12:12:59 3312433 25
Аноним 31/10/24 Чтв 12:26:42 3312442 26
Аноним 31/10/24 Чтв 13:28:41 3312526 27
>>3310091
Что по твоему array + 1? Когда ответишь на этот вопрос, тогда и поймёшь, почему нельзя.
Аноним 31/10/24 Чтв 14:57:36 3312629 28
>>3312526
(ARRAY + 1) - это адрес, на 1 больший, чем первый элемент массива ARRAY (если размер каждого элемента массива 1 байт)
мне говорили, что какое то приведение типов неявное идёт, но зачем оно там я так не понял
Аноним 31/10/24 Чтв 15:10:29 3312640 29
>>3312629
ну то есть если есть
int array[3][5];
и, допустим, адрес array = 100, то array + 1 это 101?
Аноним 31/10/24 Чтв 15:34:16 3312664 30
>>3312640
нет, 104 скорее всего
Аноним 31/10/24 Чтв 15:42:07 3312672 31
не, если array это указатель на указатель типа инт, то скорее всего там будет 120. теперь вроде догнал.
Аноним 31/10/24 Чтв 15:43:19 3312673 32
или не донал. всё неоднозначно. всей правды мы не узнаем
Аноним 31/10/24 Чтв 15:45:02 3312675 33
>>3312664
Ну нет, это не так. Иди проверяй на коде.

Ну если не хочешь проверять, то я объясню, что в array + 1 в том случае значит примерно array + sizeof(array).
sizeof(
array) == 5 sizeof(int). Практически это значит следующее:
представь array как матрицу, тогда array это указатель на первую строку, array + 1 это указатель на вторую строку, и так далее.
Чтобы пройти по всем элементам статического двумерного массива нужно делать (T
)array + i, где T - тип элемента массива
Аноним 31/10/24 Чтв 15:47:18 3312677 34
>>3312675
Ну я еблан, перепишу

Ну если не хочешь проверять, то я объясню, что в array + 1 в том случае значит примерно array + sizeof(⚹array).
sizeof(⚹array) == 5 ⚹ sizeof(int). Практически это значит следующее:
представь array как матрицу, тогда array это указатель на первую строку, array + 1 это указатель на вторую строку, и так далее.
Чтобы пройти по всем элементам статического двумерного массива нужно делать (T⚹)array + i, где T - тип элемента массива
Аноним 31/10/24 Чтв 15:58:01 3312683 35
Где скачать Стивена Прату 6-издание в хорошем качестве? Везде гуляет один и тот же корявый скан с нечитабельным текстом.
Аноним 31/10/24 Чтв 16:36:54 3312712 36
CodepVmdGgW2dS.png 16Кб, 805x376
805x376
CodeS5JqsGDxuz.png 9Кб, 917x167
917x167
CodelUjKBF4s3p.png 34Кб, 1551x309
1551x309
CodeDM5NirTlz1.png 25Кб, 746x370
746x370
>>3312672
Смотри, что происходит. В данном скоупе array не указатель на int и не указатель на указатель на int, это указатель на то, что получается по первому разыменованию, а там лежит статический массив, sizeof которого равен его размеру. В данном примере там лежит int[3] размером 12, поэтому арифметика с ним (array + 1) → (array + sizeof(*array)) будет приводить к увеличению адреса на 12. Пикрелейтед 1-2, мы видим элементы 0, 3, 6, 9 и дальше мусор.
Алсо, несмотря на то что компилятор легко компилит это со всеми флагами, даже самый простой статический анализ типа cppcheck легко находит проблему. Пользуйся!
Чтобы всё работало как надо, надо явно кастануть array в указатель на int. Пикрелейтед 4. Всё работает, предупреждений нет.
Аноним 31/10/24 Чтв 22:56:19 3312965 37
>>3304338 (OP)
Ты еще в цикле за пределы массива пойди, он не то что ошибок никаких не даст, а высрет все что найдет в памяти. Джаваскрипт какой-то, пиздец, как на нем еще операционные системы пишут
Аноним 31/10/24 Чтв 23:59:21 3312995 38
>>3312965
Любые проверки ради безопасности это оверхед расходы ресурсов. Расходы ресурсов в ядре ОС это кратные расходы в юзерспейсе. Код на питончике, два числа сложить, транслируется в 1500 строк кода на си под капотом. Сколько будет с работой с двумерным массивом в цикле, даже не угадаю, счёт на десятки тысяч пойдёт. Зато просто и безопасно.
Аноним 01/11/24 Птн 10:57:05 3313223 39
>>3312712
допустим у меня есть переменная uint64_t bubble
и есть указатель на эту переменную uint64_t bubble_pt

через
( (uint8_t*)bubble + i ) я могу обратиться к любому из 8 байтов этой переменной?
Аноним 01/11/24 Птн 10:59:31 3313228 40
image.png 11Кб, 567x213
567x213
Аноним 01/11/24 Птн 11:09:56 3313246 41
Аноним 01/11/24 Птн 11:11:26 3313247 42
>>3313246
двач съел звёздочки в моих примерах.
Аноним 01/11/24 Птн 12:09:37 3313336 43
image.png 27Кб, 1115x369
1115x369
Аноним 01/11/24 Птн 12:37:30 3313387 44
CodeEjFh7Id54d.png 42Кб, 980x488
980x488
>>3313336
Нормально работает.
Аноним 01/11/24 Птн 13:36:44 3313433 45
>>3304338 (OP)
потому что в Си нет проверки нарушения границ массивов, это типа ты сам должен делать
сохраняет он это в обычную память, которая по адресу идёт следующей
Аноним 01/11/24 Птн 15:55:21 3313571 46
>>3313433
Ну как нету. Сказать, что их нету совсем, точно нельзя, лол.
Аноним 01/11/24 Птн 16:45:05 3313600 47
>>3313571
А какие? Разве что средствами ОС? Система мягко и заботливо пришлёт SEGSIGV )))
Аноним 02/11/24 Суб 04:22:58 3313893 48
>>3313387
Для каких практических задач такое может пригодиться?
Аноним 02/11/24 Суб 11:41:33 3314128 49
>>3313893
Для бареметал залупы на 10-центовых контроллерах. Ну в целом байтоёбство это эмбед.
Аноним 02/11/24 Суб 16:10:27 3314376 50
>>3313600
В стандарте же сказано UB, может быть, а может и не быть, ну.
Аноним 02/11/24 Суб 17:39:58 3314444 51
>>3313600
Это если у тебя есть ОС
Аноним 03/11/24 Вск 10:33:56 3314762 52
>>3314444
Да один хуй бус еррор приедет, только голый от железа.
Аноним 03/11/24 Вск 16:15:36 3314968 53
>>3314444
>>3314762
Просто берёшь и катаешься еблом по клавиатуре с адрес санитайзером.
Аноним 03/11/24 Вск 17:51:32 3315054 54
Подскажите пожалуйста или хотяб направте, что самое необходимое в си? Ну там я хз даже, я прост представляю си как промышленый язык, контроллеры, драйверы, ос. Его еще где то используют кроме перечисленного?
Аноним 03/11/24 Вск 18:49:15 3315108 55
>>3315054
Где-то спустя 4 стандарта плюсы станут абсолютно неюзабельным говнищем и сишка останется единственной не-хипстерской альтернативой.
Аноним 03/11/24 Вск 20:10:38 3315154 56
>>3315054
не, наврядли где-то еще используют
Аноним 04/11/24 Пнд 00:08:38 3315211 57
>>3315154
К примеру, PostgreSQL написана на C.
Аноним 04/11/24 Пнд 00:16:46 3315216 58
>>3315054
Ядра разных нагруженных систем и приложений, не только ОС. Производительные либы, в том числе для других языков. Когда ты на питончике пользуешься numpy − ты пользуешься кодом, написанным на си. Это всё ещё один из самых популярных языков и никуда не денется в обозримой перспективе.
Аноним 04/11/24 Пнд 02:11:05 3315253 59
>>3315216
Вот, я о чем то таком имел ввиду, у меня интерес только в плане контролеров, но явно этим ограничиваться нельзя, системное пограмировоне незнаю насколько это вообще сложно, никогда не интересовался

>>3315211
И это, верная тема, спасибо
Аноним 04/11/24 Пнд 08:51:29 3315319 60
>>3315216
Я напишу свой кросспайлер типа Vala, но с синтаксимом go и инструментом сборки типа cargo и все перейдут на мой язык
Аноним 04/11/24 Пнд 16:24:41 3315713 61
>>3315054
>что самое необходимое в си
Не писать на нём, если не знаешь, зачем он тебе нужен.
Аноним 04/11/24 Пнд 16:38:26 3315730 62
>>3315713
Только для контроллеров, пока что, а потом еще подумаю. Ты чего такой злой? Если не знаешь то как напишешь то, пьяный штоли?
Аноним 04/11/24 Пнд 16:47:48 3315739 63
>>3315730
>Только для контроллеров
Тогда даташит своего контроллера читай.
>Ты чего такой злой?
Я не злой, а токсичный.
Аноним 04/11/24 Пнд 17:38:19 3315780 64
>>3315739
Не хочу даташиты читать, чего-то другое надо
Аноним 04/11/24 Пнд 17:49:43 3315791 65
>>3315054
Везде, лол. Ты же понимаешь, что из большинства современных разноцветных языков так или иначе можно дёргать сишный код?
Аноним 05/11/24 Втр 09:32:39 3316244 66
image.png 28Кб, 426x520
426x520
по этому адресу хранится номер последнего введённого символа? а что за цифры выскакивают? почему они разные, если я перед запуском программы нажимаю одно и тоже
Аноним 05/11/24 Втр 10:16:38 3316297 67
>>3316244
>почему они разные
Баг.
Аноним 05/11/24 Втр 10:44:35 3316323 68
>>3316244
Что такое stdin? Поставь себе уже IDEшку и начни компилировать с флагами.
stdin это структура типа FILE, как ты её напечатаешь принтфом, ещё и с %d?
Если ты хотел посмотреть адрес stdin, то это делается так: printf("%p\n", stdin);
И он будет каждый раз рандомный, чтобы мамкиным хакерам было труднее жить. Это называется ASLR, рандомизация адресного пространства.
Аноним 05/11/24 Втр 11:03:52 3316359 69
image.png 23Кб, 684x262
684x262
Аноним 05/11/24 Втр 11:23:34 3316401 70
>>3316359
а если так сделаешь?
printf("%d", *stdin);
Аноним 05/11/24 Втр 12:22:20 3316460 71
image.png 37Кб, 651x647
651x647
объясните?
Аноним 05/11/24 Втр 13:51:25 3316596 72
>>3316359
Ну это значит какая-то виндопараша. Гугл говорит, что она поддерживает ASLR начиная с Висты, но судя по твоему скрину всё как обычно.

>>3316460
А тут дебаггером смотри, что он вообще прочёл из терминала.
Аноним 05/11/24 Втр 15:51:53 3316730 73
Почему этот чел раскритиковал книгу Сикорда Эффективный Си? Книга же хорошая. По крайней мере лучше из нового ничего нет. Есть только протухшие и неактуальные книги по стандартам 80-90 годов.
https://rutube.ru/video/db9d6a57bb49ed316d0b60186de0dba2/
Аноним 05/11/24 Втр 15:56:19 3316738 74
>>3316730
он же буквально в самом видео говорит о том, почему он её критикует, у тебя на ютубе только превьюшки грузит?
Аноним 05/11/24 Втр 16:12:56 3316762 75
>>3316738
На мой взгляд он тупо захейтил книгу. Она как раз рассчитана на человека, который уже изучил какой-то язык программирования и хочет изучить си. А он рассматривает только два типа читателей: кто вообще программировать не умеет и профессионалов с кучей лет опыта.
Ютуб у меня не работает совсем.
Аноним 05/11/24 Втр 17:01:01 3316819 76
image.png 69Кб, 471x463
471x463
>>3316730
>Почему этот чел раскритиковал книгу Сикорда Эффективный Си?
Потому что он долбоёб. Книга обзорная про большое количество вопросов связанных с языком (всего 200 страниц), но автор не упускает важных вещей про подводные камни, про тулинг. После прочтения новичок в Си получит более широкое представление о языке, но не глубокое понимание каких-то может быть вещей, но просто будет знать хотя бы базовые вещи и что такие-то штуки (санитайзеры например) присутствуют в языке и тп.
Второе издание: https://ipfs.io/ipfs/bafykbzacec4olm3nwzqh5blgmlkltg6ln36saclqf3rx6yvumarp5pmcvxdky?filename=Robert%20C.%20Seacord%20-%20EFFECTIVE%20C-No%20Starch%20Press%20%282024%29.pdf
Аноним 05/11/24 Втр 17:54:03 3316870 77
>>3316762
>>3316819

Приём таблеток пропускать нельзя. Может и норм книга, но хули с ней так трястись-то, будто священное писание открыл.
Аноним 05/11/24 Втр 18:30:32 3316914 78
Какие вообще сейчас актуальные книги по си можно почитать?
Аноним 05/11/24 Втр 21:41:15 3317036 79
>>3316914
А тебе для чего? Для общего обзора в треде уже накидали советов, дальше всё узкоспециализированное.
Аноним 06/11/24 Срд 14:43:20 3317444 80
>>3316870
>РЯЯЯ ТАБЛЕТКИ УААА
Выше челик задал вопрос, я ему ответил, причина тряски?
Аноним 06/11/24 Срд 16:23:45 3317496 81
>>3316762
В 2000 книги были там Си и Си плюс в 100 страниц описывались, оба языка, стандарт 99, много бывает книжек где написано много лишнего, конкретно эту не читал, но правда добавлю что в тех книжках отдельно были задачки всякие, в 100 страниц описание двух языков с поверхностными примерами
Так что я даже хз, кто очень хочет – тот научится
Аноним 06/11/24 Срд 16:31:12 3317501 82
>>3309099 ардуина для рывка норм покатит. Просто немного разберись что такое такое эта ембедед электроникс. Пойми что на них нет операционной системы, которая будет вытириать за тебя жопу. Потом ты поймёшь что ардуина это кастрированный AVR. для удобства школьников, чтобы не забивать им голову лишней информацией. Пиздюк потеряет интерес если от начала курса до мигания светодиодом пройдёт слишком много времени. Возможно потом перекатишься на ARM архитектурные камни, которые в разы лучше, и сука дешевле, ёбаного ардуино. Ещё немного погодя вдоволь наигравшись с внутренней машинерией придёт осознание что нахуй его, каждый раз писать велосипед чтобы накручивать ШИМ. И придёшь к RTOS, райлтайм операционным системам для встраиваемых систем.
Из всех шагов единственное рекомендую перешагнуть ардуину. Она выращивает в человеке плохие привычки. Помнится у AVR конторы есть свя нормальная IDE с вменяемыми либами а не ардуиновским позором. ну и скачай даташит на свои камни.
Сразу прыгать на stm32 - порежешь жопу, чтобы запустить это блядсвто надо со старта в шапку ассемблерный код присирать, в ней намного больше возможностей но и геморроя на порядок выше.
Аноним 06/11/24 Срд 16:43:06 3317508 83
image.png 116Кб, 1386x842
1386x842
подскажите пожалуйста, что я делаю не так?... цель просто напечатать код кириллических символов. и у терминала и у блокнота одинаковая кодировка. знаю что у буквы А код 0xD090
Аноним 06/11/24 Срд 17:22:15 3317535 84
>>3317036
Мне нужна хорошая книга для профессионалов, чтобы раскрывала всякие тонкие моменты. В универе что-то писал на си, но никогда его в полном объёме не знал.
Аноним 06/11/24 Срд 19:42:31 3317629 85
>>3317535
Тогда Стивен Прата. Там подробно и глубоко.
Аноним 06/11/24 Срд 19:51:22 3317631 86
>>3317508
Ты пользуешься функциями для работы с ASCII. Тебе нужно wprintf. И на винде ещё наверное выставить локаль, setlocale(LC_ALL, "en_US.utf8");
Аноним 07/11/24 Чтв 09:53:12 3317925 87
Аноним 07/11/24 Чтв 11:21:20 3318007 88
>>3317629
Проблема, что последнее 6 издание в плачевном качестве, там буквы как будто моль поела, после долгого чтения глаза начинают болеть. С книгами, где нормальный шрифт, такого не происходит.
Аноним 07/11/24 Чтв 12:11:09 3318073 89
>>3317925
Как у тебя ютуб работает?
Аноним 07/11/24 Чтв 12:57:41 3318113 90
>>3318073
Я скачал плагин для браузера типа какого-то ускорителя ютуба, скорей всего впн, но только для ютуба.
Вот знал бы си и сам мог писать такие штуки.
Аноним 07/11/24 Чтв 16:57:46 3318308 91
>>3318007
На английском есть нормальное.
https://jmp.sh/Py71Gt7U
И русское 5е издание в нормальном качестве, там кажется раздела про многопоточку не хватает.
https://jmp.sh/apthuwE8
Аноним 07/11/24 Чтв 18:31:09 3318373 92
>>3318308
5е издание совсем допотопное, его в 99 или 2000-м писали, это наши только в 2013 перевели.
Аноним 07/11/24 Чтв 19:35:35 3318436 93
>>3318113
>Вот знал бы си и сам мог писать такие штуки.
Дак выучи и пиши, кто мешает то?
Аноним 07/11/24 Чтв 19:40:57 3318439 94
>>3318373
Дак а в чем проблемы то? Синтаксис поменяешь и библиотеки добавишь, если этот код не сработает, то сработает другой, ещё что то добавь или измени, я вообще в книге видел, там было написано что процентов 80 времени нужно искать ошибки ебать код до совершенства, это как бы и есть начало учёбы, ты почему то решил что есть волшебная книжка где все будет рафинированным и чистым, ты напишешь и оно заработает сразу, не смеши а
Аноним 07/11/24 Чтв 19:46:36 3318442 95
>>3318439
В чём проблемы старых учебников? Пролистает он его от корки до корки, придёт на работу устраиваться, а там его спросят про корутины и многопоточку в целом, про потокобезопасность. А в дедушкином талмуде этого не было. Как и epoll/kqueue, вагона ключевых слов и ещё дохуя всего. В мелких книгах на 300 страниц этого всего тоже нет тащемта, они не для тех, кто собирается искать работу на Си.
Аноним 07/11/24 Чтв 20:15:00 3318451 96
>>3318442
>В чём проблемы старых учебников? Пролистает он его от корки до корки, придёт на работу устраиваться, а там его спросят про корутины и многопоточку в целом, про потокобезопасность. А в дедушкином талмуде этого не было. Как и epoll/kqueue, вагона ключевых слов и ещё дохуя всего.
Если есть базис, то остальное уже можно найти в других источниках не? К тому же это язык Си или не Си?
Аноним 08/11/24 Птн 11:57:42 3318717 97
>>3317629
Честно говоря, выглядит как учебник для начинающих. Положим в переменную a значение 2, в переменную b значение 3, что же даст a + b? И всё в таком духе.
Аноним 08/11/24 Птн 14:55:29 3318888 98
>>3318717
Там просто есть всё. Многие прогеры на си например не знают, что такое сиквенс поинты, что значит "всё в си это выражение" и побочные эффекты. А это основа, после которой сишный код гораздо легче читается и понимается. У Прата это есть.
Или например что символьный литерал это валидная строка на три элемента.
int x = 'kek';
printf("%s\n", (char*)&x);
Это очень подробный учебник для тех, кому нужно разобраться даже в ненужной хуйне.
Аноним 08/11/24 Птн 16:27:45 3318939 99
Подскажите, почему не создается нормально большой двумерный массив чаров

char arr[1000][2048]; //Или любое другое большое число больше 1к

Компилятор компилирует, но программа перестает выполняться.
Где курить почему? И какое ограничение тут роляет?
Аноним 08/11/24 Птн 16:32:40 3318943 100
>>3318939
Не влезает на стек. Сделай глобальный static
Аноним 08/11/24 Птн 16:33:08 3318944 101
Аноним 08/11/24 Птн 16:35:03 3318945 102
>>3318943
Что сделать понял, спасибо.
>Не влезает на стек.
А где допустимый размер стека посмотреть, чтобы предел возможностей знать?
Аноним 08/11/24 Птн 16:40:11 3318946 103
>>3318943
А всё. Нашел тред на тему. Дальше сам додумкаю. Спасибо ещё раз.
Аноним 08/11/24 Птн 16:40:22 3318947 104
>>3318308
>многопоточку
Си тут каким боком?
Аноним 08/11/24 Птн 17:48:38 3318999 105
>>3318947
Сразу видно читателя K&R.
Аноним 08/11/24 Птн 17:51:51 3319003 106
>>3318999
Сразу видно вебмакаку.
Аноним 08/11/24 Птн 18:27:00 3319026 107
>>3318947
Так у Си есть многопоточка, ты о чём?
Аноним 11/11/24 Пнд 08:53:15 3320162 108
>>3318947
Функция fork() что для тебя шутка?
Аноним 11/11/24 Пнд 09:08:19 3320179 109
>>3320162
форк ето же вроди мультипроцессинг, а не мультитрединг
но мультитрединг вроде то же был в сишке
мимо
Аноним 11/11/24 Пнд 09:21:14 3320185 110
>>3320179
Да, прав. Для потоков pthread.h
Короче в си обмазываться параллелизмом можно по полной программе.
Аноним 11/11/24 Пнд 09:38:46 3320195 111
как считать число, если я не знаю, сколько байтов оно будет занимать? типа, для любой функции записи, нужен адрес, куда записывать данные, но как мне создать переменную с этим адресом, если я не знаю размер считываемого числа?
Аноним 11/11/24 Пнд 09:41:08 3320199 112
>>3320195
Прикинуть максимальное число и выделить с запасом
Уверен, что твое число будет длиннее long long?
Аноним 11/11/24 Пнд 09:44:37 3320200 113
>>3320199
вопрос в том, как определять именно столько, сколько нужно
Аноним 11/11/24 Пнд 09:44:52 3320201 114
>>3320195
>как считать число, если я не знаю, сколько байтов оно будет занимать?
звучит как задача для лиспа
реализовывай длинную арифметику тогда я хз
возможно на базе векторов/динмассивов
Аноним 11/11/24 Пнд 09:45:44 3320202 115
>>3320200
а сколько цифор в числе ты знаешь?
Аноним 11/11/24 Пнд 09:47:04 3320203 116
>>3320200
Никак. В общем случае сначала создаёшь какого-то фиксированного размера, потом при надобности аллоцируешь область, допустим, размером в 2 раза больше, и копируешь в неё старые данные.
Аноним 11/11/24 Пнд 09:51:46 3320204 117
>>3320202
а в какой момент нужно реаллоцировать? допустим я попросил 8 байт, ввёл число, которое в 8 байт не засунешь, что дальше? как программа поймёт что надо просить больше?
Аноним 11/11/24 Пнд 09:52:12 3320206 118
Аноним 11/11/24 Пнд 09:54:29 3320209 119
>>3320204

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

узнали? согласны?
Аноним 11/11/24 Пнд 09:59:23 3320211 120
>>3320209
С другой стороны тогда уже можно не си для этого брать, а на что-то поудобнее и привычнее пересесть.
Аноним 11/11/24 Пнд 10:00:59 3320215 121
>>3320211
ты мог не ебать мозги и сразу в лиспе написать одну строчку
тут ситред и решения для си, а си это язык велосипедов
Аноним 11/11/24 Пнд 10:02:56 3320216 122
>>3320215
Я не тот анон, который кидал реквест. Просто задача, ИМХО, неподходящая и надуманная. Исключительно поебать мозги.
Аноним 11/11/24 Пнд 10:07:21 3320220 123
>>3320216
определить количество байт, занимаемых числом, капец надуманно и неестественно
Аноним 11/11/24 Пнд 10:08:28 3320222 124
>>3320195
Тебе понадобится ресайзабл контейнер, вот и всё. Делаешь байтовый массив. Если число считываешь двоичное, то по 8 бит на ячейку, затем увеличиваешь размер контейнера и продолжаешь. Если десятичное, то проще по одному числу в ячейку. Считаешь записанное тобой мантиссой, сам массив заворачиваешь в структуру, где лежит ещё экспонента. Всё, у тебя получился безразмерный тип данных. Неэффективный по памяти, зато сделался на коленке за пять минут, и всю арифметику к нему можно написать ещё за 15, тупо в столбик.
Аноним 11/11/24 Пнд 10:08:54 3320223 125
>>3320220
Ты часто в си гоняешь числа превышающие long long и long double?
Нахуя?
Аноним 11/11/24 Пнд 10:23:47 3320229 126
>>3320223
Я сотрудник ателье, куда твоя маман за одеждой захаживает.
Аноним 11/11/24 Пнд 10:26:10 3320230 127
>>3320229
так, тут опять за меня отвечают
Аноним 11/11/24 Пнд 10:32:24 3320235 128
>>3320229
Пока ты больше похож на сотрудника родильного отделения для инвалидов.
Аноним 11/11/24 Пнд 10:49:21 3320249 129
>>3320235
Ладно, раскусил, ложись уже на коечку, будем сейчас из тебя ОПа доставать.
Аноним 11/11/24 Пнд 10:55:53 3320255 130
>>3320249
Так где в реальной жизни тебе, программируя на си, пришлось столкнуться с такими числами на инпуте разом? И почему ты предпочел си другому языку для решения этой задачи? И почему тебе надо ебашить всю колбасу целиком и никак иначе?
Аноним 11/11/24 Пнд 11:12:55 3320279 131
>>3320249
И еще тебе вдогонку пара вопросов. Каким образом ты поймешь, что та область памяти, которую ты собрался читать, идентифицирует себя как число? И как выявишь, что оно закончилось и началась другая область, не относящаяся к нему? Да и вообще, как и нахрена оно вообще оказалось у тебя в памяти в таком виде?
Аноним 11/11/24 Пнд 11:30:04 3320290 132
>>3320279
разве области памяти себя как то идентифицируют? я думал это мы их идентифицируем
Аноним 11/11/24 Пнд 11:34:02 3320295 133
как говорится your type is my choice
Аноним 11/11/24 Пнд 11:53:33 3320304 134
>>3320290
Мы. Но мы же в треде говорим о внезапно появившемся шматке байтов произвольного размера, о котором почему-то нихуя не знаем даже примерно, кроме того, что это число.
Аноним 11/11/24 Пнд 12:01:20 3320308 135
>>3320304
задача по оцифровке дикпика
Аноним 11/11/24 Пнд 12:03:37 3320310 136
>>3320195
Для начала нужно определиться откуда считать? Если из стандартного ввода, то это текстовые данные и считывать нужно посимвольно. Чтобы хранить эти данные можно выделить буфер на N байт. Если при чтении оказалось данных больше N байт, то выделить новый участок памяти на N*2 байт, скопировать туда из старого участка данные, продолжить чтение. Повторить пока не прочитаешь все данные.
Аноним 11/11/24 Пнд 12:06:28 3320311 137
>>3320308
Тогда тебе нужен массив из char, шизло.
Аноним 11/11/24 Пнд 12:08:58 3320312 138
>>3320310
> скопировать туда из старого участка данные
да можно ангетч просто ебануть обратно в поток ввода и начать сначала

>>3320311
>бабах
причина fire в твоем ass?
Аноним 11/11/24 Пнд 12:13:15 3320315 139
>>3320312
>причина fire в твоем ass?
Как ты определил, что тебе в потоке ввода будет передаваться число, шиз?
Аноним 11/11/24 Пнд 12:18:49 3320318 140
>>3320315
считываем с клавиатуры посимвольно, записываем в массив, с общим размером 1 байт. если код введённого символа не соответствует цифре, завершаем программу.
после каждый введённой цифры просим у компьютера ещё 1 байт для записи новой цифры (реалоцируем крч), так до условного завершающего символа. получаем массив, каждый байт которого хранит разряд нашей программы. задача выполнена на 90 процентов
Аноним 11/11/24 Пнд 12:19:57 3320320 141
>>3320318
*хранит значение разряда нашего числа
Аноним 11/11/24 Пнд 12:20:03 3320321 142
>>3320315
мы кодим на цифровой технике
причина баха, говно?
Аноним 11/11/24 Пнд 12:48:17 3320337 143
>>3320321
Хуя себе, шизло. А число целое или дробное? А может массив стрингов твоей мамаши?
Аноним 11/11/24 Пнд 12:53:36 3320339 144
>>3320337
набор парусов твоей мамаши это то же числа, и джипег это числа и даже буквы твои обосранные, которые ты тут с горелой сракой высираешь - числа
возвращайся в свою кнопкокрасочную, говно, а тут тред сишников
Аноним 11/11/24 Пнд 12:55:41 3320341 145
>>3320339
И как ты их между собой различаешь в потоке, большой мальчик?
Аноним 11/11/24 Пнд 13:31:21 3320365 146
>>3320341
по тз, маленький
тебе анон озвучил что на воде число хули ты тут серишь биля
Аноним 11/11/24 Пнд 13:43:57 3320381 147
>>3320365
>по тз, маленький
Отлично, шизик. В итоге у нас всё таки существует некое тз, следуя которому тебе передают именно некое число, которое может превышать размер стандартного типа в Си.

Объясни мне теперь, ебланушка, раз уж разработчик любезно извещает тебя, что отдает некое число, сам инициализирует и завершает передачу данных, то прикрутит ли он в реальной жизни, зная, что отдает какой-то огромный нестандартный тип и при этом заодно заранее зная его размер, заголовок с размером этого числа или будет, как ты, весь день заниматься охуительными велосипедами?
Аноним 11/11/24 Пнд 13:51:36 3320387 148
>>3320381
не прикрутит, раз не прикрутил
мозги включи, школяр и пойми, раз никто не обернул твой любимый джесончик, значит никто не обернул и не обернет, значит это просто число, поплачь теперь
Аноним 11/11/24 Пнд 13:53:46 3320389 149
>>3320387
>не прикрутит, раз не прикрутил
Ты когда-нибудь программировал за деньги вообще?
Как раз изначальный реквест - это реквест школяра.
А всё остальное - это маневры. Когда тебе удобно, есть ТЗ, а когда тебе неудобно, то нет ТЗ. Давай-ка определяйся.
Аноним 11/11/24 Пнд 13:58:55 3320394 150
>>3320389
изначальный реквест анона и есть тз
кто мы такие чтобы по первоначальному реквесту анона сразу бросаться на него ссаными тряпками и называть пиздаболом? а ну да мы это ты - пиздлявый эникейщик, неспособный в решение элементарных задачек, твой удел джейсончики перекладыва, ну вот и перекладывай, не трать время на этот тред
Аноним 11/11/24 Пнд 14:18:11 3320411 151
>>3320394
В изначальном реквесте нет ни ху я. "Хочу заебашить динамическое число нестандартного размера и выполнять с ним те же операции, как со стандартными числами". Зачем-почему, нахуя для этого си и как в такой ситуации вообще возможно оказаться - хуй его знает.

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

>решение элементарных задачек, твой удел джейсончики перекладыва
В чем разница между этой задачкой и перекладыванием джейсочиков, шиз?
Аноним 11/11/24 Пнд 14:27:00 3320417 152
>>3320411
тебе, тупому ослу скозали
>Хочу заебашить динамическое число нестандартного размера и выполнять с ним те же операции, как со стандартными числами
вот с этим и работай, хватит мочу из моего хуя пить, выдумывая причины как не решать эту задачу
не хочешь решать задачку анона - вали нахуй, завайпал блять тред своей тупостью, гандонио ебливый

>В чем разница между этой задачкой и перекладыванием джейсочиков, шиз?
в том, что ты порвался
Аноним 11/11/24 Пнд 14:29:14 3320419 153
>>3320417
>вот с этим и работай
Да с хуя ли?

>в том, что ты порвался
Но порвался-то ты, ебнутый, на простейшем вопросе: нахуй оно вообще надо городить ирл?
Аноним 11/11/24 Пнд 14:32:29 3320423 154
>>3320419
на этот вопрос тебя другой анон подъебнул
красиво вышло, я поржекал
а тебе сраку разнесло в клочья
угомонись, керниганом и ритчи прошу
Аноним 11/11/24 Пнд 14:34:32 3320426 155
>>3320423
Ну вот и выходит, что пиздабол тут ты и тот другой анон.
Аноним 11/11/24 Пнд 14:36:59 3320427 156
>>3320426
пруфы будут, пиздабол?
Аноним 11/11/24 Пнд 14:41:55 3320428 157
>>3320427
Что ты в ответ на простой вопрос выдумываешь хуету на ходу? Двумя постами выше, пиздабол.
Аноним 11/11/24 Пнд 14:49:14 3320439 158
>>3320428
да тебя ебать не должно для чего это используется
тебе дали это понять шуточкой про твою мамашку
пиздец пориджи пошли, уже очевидные вещи надо разжевывать
Аноним 11/11/24 Пнд 14:52:23 3320443 159
>>3320439
Заебись. Тогда надо положить в джейсон и помолиться, ебать. Гарантирую твоим мертвым батей, что будет работать.
Аноним 11/11/24 Пнд 14:56:33 3320448 160
>>3320443
потише реви в этом итт треде
сишник слезам не верит
Аноним 11/11/24 Пнд 14:57:34 3320450 161
капец вы тут наследили, простой же вопрос был
Аноним 11/11/24 Пнд 17:33:56 3320579 162
>>3318888
>Или например что символьный литерал это валидная строка на три элемента.
Это вроде implementation defined вещь, и про это надо читать в мануале твоего конпелятора, а не у праты.
Аноним 11/11/24 Пнд 23:01:09 3320803 163
>>3320579
Ну по стандарту это int, так что формально ты прав и надо смотреть на платформу, но двухбайтовый инт я только в музее видел.
Аноним 12/11/24 Втр 10:58:47 3320927 164
image.png 35Кб, 948x724
948x724
image.png 17Кб, 797x227
797x227
научите великовозрастного дебила пользоваться сайтом, почему он не принимает ответ?
Аноним 12/11/24 Втр 11:46:33 3320965 165
>>3317501
Спасибо, бро. Я немного знаю ассемблер, понимаю что такое даташит, но ничего более-менее серьезного не делал.
Аноним 12/11/24 Втр 12:02:17 3320970 166
>>3320927
значит в кейсе вернулся NULL
вона у тибя аутпут пустой

я как то решал эту хуйню на литкоде, сайт пизда неудобный, так что тестил своим тулчейном и потом просто копипасту прогонял на сайте а то мало ли у них индусский конпелятор с припиздонью какой
Аноним 12/11/24 Втр 12:04:46 3320971 167
Аноним 12/11/24 Втр 12:06:11 3320974 168
>>3320927
Наверное надо ещё написать ⚹returnSize = 2;
Аноним 12/11/24 Втр 12:10:30 3320979 169
>>3320974
где? зачем? вообще не понимаю нафига там эта переменная
Аноним 12/11/24 Втр 12:13:25 3320982 170
>>3320979
Чтобы проверялка поняла длину массива, который ты возвращаешь. Правильнее было бы возвращать что-то типа струтуры { int *, int }, но так тоже можно.
Аноним 12/11/24 Втр 12:16:59 3320983 171
>>3320982
ну так в задачке указано что у нас длина всегда 2, типо просто переменная ради переменной?
Аноним 12/11/24 Втр 12:20:23 3320984 172
а чо ваще просят сделать? вроде изи кейс а вижу какой то брутфорс по матрице
пиривидити с нахрюка пж самому лень
Аноним 12/11/24 Втр 12:30:39 3320991 173
>>3320983
У более сложных задач будет такой же интерфейс, и у тебя тренируют павловский рефлекс.
Аноним 12/11/24 Втр 12:43:57 3321007 174
Аноним 12/11/24 Втр 18:40:27 3321345 175
>>3321007
покажи что там в итоге получилось
Аноним 13/11/24 Срд 06:56:53 3321516 176
trapc.png 107Кб, 633x773
633x773
trapc.jpg 101Кб, 1919x1079
1919x1079
Аноним 13/11/24 Срд 08:39:33 3321526 177
image.png 38Кб, 662x723
662x723
>>3321345
эм, а чего там показывать?
Аноним 13/11/24 Срд 12:47:34 3321641 178
>>3321516
Чел пишет код, про который в литературе по C для начинающих пишут: не пишите так код. В итоге получает хуйню в виде переполнений буферов и бесконечных циклов.

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

Вот так это и работает.

Например, в первой программе чел говорит про небезопасность strcpy(), которая позволяет по адресу массива въебать строку, выходящую за его пределы. Перезаписать область памяти переменной success, которая становится из-за этого ненулевой. И что это проблема.

Открыв же учебник для начинающих мы можем прочитать следующее:
Функции strcpy () присуща та ж е проблема, что и strcat () — ни одна из них не проверяет, умещается ли на самом деле исходная строка в целевую строку. Более безопасный способ копирования строк предусматривает применение функции strncpy ().
Эта функция принимает третий аргумент, в котором указывается максимальное количество копируемых символов.


Возможно предлагаемый диалект важен и нужен кому-то, но по текущим примерам я не очень понимаю чем это лучше зигов, растов и еще кучи всего, что пытается быть безопасным си.
Аноним 13/11/24 Срд 13:47:08 3321671 179
ЗДРАСТВУЙТЕ, можно два тупых вопроса?
быстрее ли switch case чем if else
быстрее ли ? : чем if else
или буквально это одно и тоже
Аноним 13/11/24 Срд 13:53:09 3321675 180
>>3321516
TrapC для трапов что ли?
Аноним 13/11/24 Срд 14:15:05 3321692 181
>>3321671
Зависит от того, как твой код оптимизирует компилятор. После оптимизаций вполне может быть одним и тем же.
Аноним 13/11/24 Срд 15:37:12 3321755 182
image.png 45Кб, 761x754
761x754
написал, пользуйтесь
Аноним 13/11/24 Срд 15:39:42 3321759 183
image.png 44Кб, 743x744
743x744
поправочки
Аноним 13/11/24 Срд 16:11:16 3321781 184
image.png 37Кб, 645x871
645x871
ещё поправочки (теперь работает, честно!)
Аноним 13/11/24 Срд 17:05:06 3321825 185
Я не понял, компилятор выбросит ошибку во время исполнения кода или на этапе компиляции? Если во время исполнения, то следует ожидать, что это не будет сообщение "ой" с неизвестной причиной, и он будет выдавать строчку с лажей. Или я должен буду расставлять маркеры по всему коду, выведывая, где протекло?

>>3321641
Но это же профессор. Ты возражаешь профессору?

>>3321675
Там была шутка, что надо было назвать TrumpC, дополнив слоганом "make C great again!". Хотя бы посмеялись.
Аноним 13/11/24 Срд 17:14:17 3321832 186
Тут ещё вопрос, что лучше - программа работает, но где-то мимасит слегка, или программа вылетает нафиг. Допустим, памяти освобождается 16 байт для 9 целевых, из-за выраванивания. Ну промажет он на пару байт иногда, но работать будет. А тут гакнется. Лучше, если это будет опционально всё-таки...
Аноним 13/11/24 Срд 17:22:15 3321838 187
Ещё там пишут, что вся память будет обнуляться... Ну, мягко говоря, сомнительная возможность. Очень часто нафиг не нужно - дрючить РАМу 2 раза вместо 1, каждый раз.
Аноним 13/11/24 Срд 22:48:28 3322007 188
>>3320423
>керниганом и ритчи прошу
Поржал и помолился
Аноним 13/11/24 Срд 22:58:49 3322010 189
173152705919665[...].jpg 144Кб, 1080x2160
1080x2160
173152760779375[...].jpg 10Кб, 355x335
355x335
Ребята проблема такова, домики деревянные, набегают солдаты дворца и злодеи
Обновил андроид и у меня перестал мобильный компилятор работать, и работал ли? Я имею ввиду адекватно работал ли.

Есть какой-то заменитель?
Аноним 13/11/24 Срд 23:25:09 3322018 190
173152896936761[...].jpg 76Кб, 752x967
752x967
А вообще вроде работает. Но вопрос остаётся, вдруг кто чего хорошее подскажет
Аноним 14/11/24 Чтв 06:00:00 3322062 191
Аноним 14/11/24 Чтв 09:04:13 3322128 192
image.png 49Кб, 852x838
852x838
>>3322062
ясно, что никакого практического смысла в этом нет, просто пытался написать функцию суммирования без знака +

Думал, что из за little-endian будет какая то фигня при битовом сдвиге, оказывается нет, всё работает как и должно, можно и адресную арифметику выкинуть
Аноним 14/11/24 Чтв 09:25:17 3322138 193
>>3322128
>Думал, что из за little-endian будет какая то фигня при битовом сдвиге
а почему ты так думал? эндианы прикованы к хранению данных, а байтсдвиги это операции над данными. между ними нет связи, эти процессы поисходят в разных местах
Аноним 14/11/24 Чтв 12:18:35 3322221 194
>>3321825
Я так понимаю, что на этапе компиляции.

>Ты возражаешь профессору?
Я ему еще и пойти и отсосать предложу, если он мне такую хуйню без веских пояснений, как и зачем он в таком положении оказался, расскажет.
Аноним 14/11/24 Чтв 14:17:27 3322317 195
Сап. Что пишут на C? Возможно ли найти работу на C джуну?
Аноним 14/11/24 Чтв 14:54:10 3322327 196
>>3322317
В основном прошивки, драйвера, микроконтроллеры, ядро UNIX-подобных ОС. Реже работа с сетью (файерволлы и т.д.), СУБД (PostgreSQL написана на C).

Без опыта обычно берут студентов/выпускников всякие НИИ, ФГУПы и заводы.
14/11/24 Чтв 17:01:28 3322399 197
>>3322327
>ядро UNIX-подобных ОС
Ядро для других ОС пишут сразу в двоичном коде?
Аноним 14/11/24 Чтв 17:15:03 3322414 198
>>3322399
На вижуал бейсике же.
Аноним 15/11/24 Птн 04:07:27 3322689 199
Аноним 15/11/24 Птн 09:25:18 3322763 200
image.png 37Кб, 618x718
618x718
а списки вот так делаются?
Аноним 15/11/24 Птн 09:39:33 3322768 201
Аноним 15/11/24 Птн 09:40:51 3322770 202
>>3322763
У тебя при добавлении элемента выход за пределы массива.
Аноним 15/11/24 Птн 09:53:06 3322784 203
image.png 823Кб, 1280x720
1280x720
Аноним 15/11/24 Птн 09:54:32 3322787 204
>>3322763
я наверное что то пропустил, но схуяли ты функции внутри структуры описываешь? это плюсы штоле?
Аноним 15/11/24 Птн 09:59:33 3322797 205
>>3322787
меня алиса убедила что так можно
Аноним 15/11/24 Птн 10:00:33 3322799 206
но компилятор пока не согласен такое принимать
Аноним 15/11/24 Птн 10:09:13 3322803 207
>>3322797
поколение жэпэтэдебилов....
Аноним 15/11/24 Птн 10:18:22 3322812 208
Почему в си не хотят добавить пространство имён, чтобы можно было писать типа:
mylib::calc(a, b);
stdio::printf("hi!\n");
Аноним 15/11/24 Птн 10:28:24 3322815 209
Вот по логике тип int должен представлять естественный размер данных для конкретной машины. Но при этом его ограничили, чтобы он был не меньше 16 бит. Но что если нужно реализовать компилятор си на 8-битной машине, где естественный размер данных - это 8 бит. К примеру, на Z80A регистр аккумулятора 8-битный и получается, что int там должен быть тоже 8 битный. Но это не будет соответствовать стандарту.
Аноним 15/11/24 Птн 10:55:42 3322826 210
>>3322812
зачем? чтобы больше писать приходилось?
Аноним 15/11/24 Птн 10:58:09 3322828 211
>>3322815
int типизируется под один жмых шины данных, чтобы за один жмых машина всосала один word, а не под размер регистров
под Z80F своя сдлиба со своим интом, как и на любой другой машине (уверен в этом но не проверял)
Аноним 15/11/24 Птн 10:59:45 3322831 212
>>3322826
Вдруг мне надо определить свой printf и просто пишу:
mylib::printf("my out!\n");
и это ни как не будет конфликтовать со стандартным:
stdio::printf("std out!\n");
Если лень много писать, то можно добавить ещё оператор use или import
Аноним 15/11/24 Птн 11:02:50 3322834 213
>>3322831
в чем проблема определить свой принтф и не линковать принтф из стд либы?
или например в чем проблема определить свой принтф без этих пространств?
myprintf()
printf()

vs

huyzalupa228::printf()
stdlib::printf()

зачем блять? чтобы больше писать пришлось?
Аноним 15/11/24 Птн 11:18:15 3322846 214
>>3322803
получается наоборот, типа не вызываешь функцию структуры, а вызываешь функцию, и передаёшь ей указатель на структуру?
Аноним 15/11/24 Птн 11:40:44 3322856 215
>>3322846
может тебе стоит почитать какой нибудь учебника по си а не высеры ии хуиты? в си можно и так и эдаки вообще как хочешь, лучший язык эвар
Аноним 15/11/24 Птн 12:51:03 3322914 216
Аноны, а _Атомик, регистр, рестрикт, волатил есть смысла нарабатывать или ими не пользуются и компилятор может без них?
Аноним 15/11/24 Птн 12:58:08 3322922 217
>>3322914
> рестрикт, волатил
Есть
> регистр
Нет
> _Атомик
Вообще не знаю что это, хуйня какая-то, на цппреференс написано что компиляторы вообще не обязаны это поддерживать.
Аноним 15/11/24 Птн 13:00:11 3322924 218
>>3322914
>регистр
спорная хуйня
надо вырубать все оптимизейшон флаги, чтобы управлять фетчем в регистр, что в свою очередь спорное решение, так как компилер (а с некоторых пор и сама железка) зачастую лучше оптимизирует, чем макака это делает руками
Аноним 15/11/24 Птн 13:02:35 3322926 219
>>3322922
>Вообще не знаю что это
У Пратта вычитал. Там написано, что из C11 пришло. Тоже не очень понял зачем.

>>3322922
>Нет
>>3322924
>спорная хуйня
Спасибо, принял. По регистру примерно так и думал, но решил у вас проконсультироваться, т.к. мб что-то упустил.
Аноним 15/11/24 Птн 13:06:02 3322930 220
атомики это вроде для мультитрединга что промисами не срать
не силен в этом, краем уха слышал на конфе яндекса по крестам
Аноним 15/11/24 Птн 13:09:51 3322931 221
>>3322930
>атомики это вроде для мультитрединга что промисами не срать
Записал, спасибо. Значит мне туда пока рано лезть.
Аноним 15/11/24 Птн 13:18:38 3322942 222
А вообще существуют вакансии по си на удалёнку? Или это онли офис, где будешь ещё и паять.
Аноним 15/11/24 Птн 13:25:33 3322954 223
>>3310006
первые две - говнище, лучше k&r ничего пока не написали и не напишут
третья - норм
Аноним 15/11/24 Птн 13:27:13 3322958 224
>>3322942
Наверняка какая-нибудь хуйня, связанная с блокчейном, распределенными сетями и протоколами есть.
Только зачем тебе си, если тебе кровь из носу надо зарабатывать? Садись на фронт на JS и не еби голову.
Аноним 15/11/24 Птн 13:39:07 3322980 225
>>3322958
Не хочу на фронт, хочу в тыл бэкенд
Аноним 15/11/24 Птн 13:40:20 3322985 226
>>3322954
Почему это Прата - говнище?
Аноним 15/11/24 Птн 14:01:10 3323003 227
>>3322980
>бэкенд
Всё ещё не нужен си. Ты просто пойми, что для заработка это хуевый язык.
Си нужен для клевых вещей в свободное время или за миску риса(в среднем по рынку). Либо застартапить, если у тебя кубышка батька позволяет.
Аноним 15/11/24 Птн 14:47:00 3323051 228
>>3323003
А если создать свой язык типа homoC и на нём как-то зарабатывать?
Аноним 15/11/24 Птн 14:53:35 3323059 229
>>3323051
круто, когда начнёшь?
Аноним 15/11/24 Птн 14:55:16 3323063 230
>>3323051
>А если создать свой язык типа homoC и на нём как-то зарабатывать?
Вопрос не мальчика, но первокурсника.
Аноним 15/11/24 Птн 16:11:17 3323117 231
prata-scanf.jpg 37Кб, 1067x65
1067x65
Вот читаю Прату, дошёл до того момента, где он объясняет scanf и почему надо аргумент функции передавать через &, и какую же ересь я читаю (см. пикрил). И это лучшая книга по С?
Аноним 15/11/24 Птн 16:15:15 3323123 232
>>3323117
прата - в голове насрато
Аноним 15/11/24 Птн 16:17:24 3323127 233
>>3323123
а чо, надо сразу вывалить из штанов указатели, адресацию и адресную арифметику, что бы напугать читателя?
Аноним 15/11/24 Птн 16:19:21 3323129 234
>>3323127
Да, он хочет этого. То что Прата постепенно объясняет он не дочитал. Я сначала тоже горел с этого, а на середине книги понял, что способ изложения неплохой для новисов.
Аноним 15/11/24 Птн 16:21:57 3323130 235
>>3323127
нет, ну давайте будем завуалированно объяснять, чтобы читатель нидай бох не испугался
высрем код и скажем имаджинируйте как он делает магию
ну а регистры адресацию кучу и стек оставьте пердунам на ассемблерах, у нас тут клуб современных чтецов гомогеев на homoC
Аноним 15/11/24 Птн 16:23:13 3323132 236
>>3323130
Либо ты затерпиш 4 главы и про магию тебе объяснят там.
Аноним 15/11/24 Птн 16:30:11 3323136 237
терпеть!
Аноним 15/11/24 Птн 16:30:50 3323137 238
>>3323136
Ну по твоей логике изучение Си надо начинать с инструкции по сборке PDP-11.
Аноним 15/11/24 Птн 16:32:52 3323140 239
>>3323130
ну значит из тебя хреновый преподаватель. объяснять темы надо там, где это уместно. Рассказывать человеку, который пять минут назад радовался тому, что вывел строку в терминал, про смысл & это просто неуместно.
Аноним 15/11/24 Птн 16:36:49 3323143 240
>>3323140
ну да, у меня то же был хуевый препод по крестам, так как еще до лаб где мы впервые высирали хуйню в консоль, объяснял указатели на указатели на указатели
а еще помню на дискретке рекурсии в тетрадке писали и имаджинировали стек

но ты конечно умнее всех, ты бы рассказал как оно курсе на четвертом, когда все уже затерпели
Аноним 15/11/24 Птн 16:42:58 3323146 241
>>3323143
Сдается мне ты пиздишь на своего препода, старый, и наверняка он перед указателями на указатели сперва нехуйственный пласт инфы на вас вылил.
Аноним 15/11/24 Птн 16:52:10 3323151 242
>>3323127
Можно просто написать, что смысл будет объясняться в такой-то главе, а сейчас просто пишите &. Но вместо этого он начинает выдумывать ложные объяснения.
Аноним 15/11/24 Птн 16:55:37 3323152 243
>>3323151
И создать дополнительное давление на новичка, что он выучил какую-то залупу и до 4 главы ему будут ссать в глаза.
Аноним 15/11/24 Птн 16:58:41 3323154 244
>>3323146
да обычный пласт, точки с запятой, декларативность, признаки императивности, основные типы данных, всю эту хуйню вкатунскую, и указатели
поинтеры это база, их надо сразу ебашить, чем раньше тем лучше
я понимаю это больно для питономакак, но что поделать, так работает машина
Аноним 15/11/24 Птн 17:06:08 3323159 245
>>3323154
Ну хотя бы выражения тебе раньше поинтеров показали.

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

Странный у тебя доеб.

Эта книга написана так, что если ты в каком-то моменте затупил, то тебе это последовательно разжуют и в конце дадут упражнения, соответствующие твоему текущему уровню, для закрепления, а также вопросы с ответами. Она не идеальная, но достаточно хороша для самообучения основам. Зря ты мандишь на неё.
Аноним 15/11/24 Птн 17:12:00 3323161 246
Аноним 15/11/24 Птн 17:15:09 3323162 247
>>3322812
>Почему в си не хотят добавить пространство имён
Судя по тому, куда идёт стандарт, добавят в си30.
Аноним 15/11/24 Птн 17:16:42 3323164 248
Аноним 15/11/24 Птн 17:37:50 3323178 249
>>3323159
>Так а хули не с автоматических выключателей-то начали и сборки щитков?
потому что это другой факультет другого института
устройство эвм на базе х86 дают на вмк, там и логические вентили и самореплицирующие автоматы, а у нас пм - то бишь матмодели, глубже в машину нет смысла погружаться
Аноним 17/11/24 Вск 12:50:42 3324133 250
Может кодик какой то скинете, подумаем посидим
Аноним 17/11/24 Вск 16:36:52 3324268 251
Ещё один безопасный клон си подвезли.
https://www.opennet.ru/opennews/art.shtml?num=62241
>На текущем этапе развития, собираемые в Fil-C программы медленнее примерно в 1.5-5 раз, по сравнению со сборкой обычными компиляторами.
Как будто и не удивительно. Как же иначе?
>При помощи Fil-C без внесения изменений могут быть собраны проекты bzip2, zip, pcre и ncurses. С незначительными модификациями поддерживается сборка OpenSSH, OpenSSL, CPython, SQLite, Lua, Curl, Lynx, jpeg6b, zsh, xzutils и simdutf.
>В случае ошибок при работе с памятью приложение сразу аварийно завершается, что не позволяет эксплуатировать возможные уязвимости.
Ну вот фиг его знает. Мне видится это прежде всего как инструмент отладки. Допустим, запускаем утиль сначала через этот компиль, тестим по-всякому. А если в результате всё гладко - бинарим уже по-классике, без защитных механизмов.
Аноним 17/11/24 Вск 17:09:20 3324279 252
>>3324133
могу чо нито скинуть из старого
давеча вот пришла идея как по честному допилить задачку и каэр, а то моя версия кривенькая

>>3324268
даже как отладчик не котируется
на холодном старте все гладко, а на рантайме 75д крашнуло
ну и сколько тогда тестировать? откуда взять время на тесты? хуита
клоны си нинужны, кроме крестов, но кресты это коммерческий си чтобы тяпляп и в продакшин
Аноним 17/11/24 Вск 17:24:37 3324289 253
image 229Кб, 1090x1326
1090x1326
>>3324133
суть: выставляет биты по номерам, понадобилось когда писал не помню чо памятезависимое, там была куча флагов и я решил их "упаковать" в пару чаров, так родился этот хидер можно было бы конечно сделать таблицу девайнов, но я не очень люблю такой подход

вопрос по пику будет такой - в типовой форме этот алгоритм временами багует и не выставляет нужные биты, поэтому была написана безтиповая версия (макро) и она не багует для типов любой размерности

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

хидер не прогонял никакими тестами, просто влепил в живой проект и закоммитил так как усё работало
Аноним 17/11/24 Вск 17:40:43 3324299 254
>>3324279
>из старого
>давеча вот пришла идея как по честному допилить задачку и каэр, а то моя версия кривенькая
Кидай, тут хз, а так яндексдиск или ещё чего, я прост хз что такое каэр
Сам думаю чем заняться, или вообще начать библиотеки под себя писать. На будущее
Аноним 17/11/24 Вск 17:48:35 3324304 255
Аноним 17/11/24 Вск 18:44:36 3324340 256
Аноним 18/11/24 Пнд 08:43:19 3324590 257
image.png 40Кб, 1156x536
1156x536
>>3324289
я биты меняю так, никогда ничего не ломалось (вроде бы)
Аноним 18/11/24 Пнд 12:16:47 3324744 258
>>3324590
Почему не написать восемь масок в макросах и не заставлять процессор тратить циклы?
Аноним 18/11/24 Пнд 12:27:26 3324766 259
>>3324744
не уверен, что понимаю, что это значит
Аноним 18/11/24 Пнд 12:32:40 3324780 260
>>3324340
Да, это макросы ебаные.
Аноним 18/11/24 Пнд 12:37:16 3324785 261
>>3324590
Глобальные автоматом обнуляются. Можно равно не писать = {0}.
Аноним 18/11/24 Пнд 12:38:52 3324789 262
Аноним 19/11/24 Втр 03:43:23 3325287 263
Может кто знает где книжку прата от 2015 года можно скачать?
Аноним 19/11/24 Втр 03:48:41 3325288 264
>>3325287
Не в пдф само собой. А в формате fb2
Аноним 19/11/24 Втр 07:22:58 3325309 265
Аноним 19/11/24 Втр 09:51:38 3325336 266
>>3325288
Есть только скан, а сканы не могут быть в fb2
Аноним 19/11/24 Втр 09:55:22 3325338 267
>>3322954
k&r не актуальна же, там древний стандарт и на первом же примере хеллоу ворлда современный компилятор выдаст если не ошибку, то предупреждение. К тому же авторы ограничились сугубо языком си, а всё остальное типа библиотек и каких-то практик к нему не относящимся, но по факту эту инфу тоже надо знать. Так что книга имеет скорее историческое значение и не подходит в качестве учебника.
Аноним 19/11/24 Втр 10:48:58 3325359 268
почему функция возвращает 0 при любых отрицательных значениях x?

https://pastebin.com/d305yGq0
Аноним 19/11/24 Втр 11:07:08 3325369 269
догнал, функция power дурная была
Аноним 19/11/24 Втр 13:12:52 3325457 270
>>3325336
В том и проблема.
Читаю с телефона, сканы с него не очень читать.
Бумажную книгу тоже неудобно читать - она приличного размера.
Аноним 19/11/24 Втр 14:09:09 3325515 271
>>3325457
А чем пдф-то плох? Спокойно на шестом размере читал. Глаза не выламывало.
Аноним 19/11/24 Втр 14:40:54 3325544 272
>>3325457
Читай 5-е издание, оно было в электронном формате, а различия с 6-м изданием там минимальные.
Аноним 19/11/24 Втр 15:12:18 3325567 273
krhello.jpg 59Кб, 711x427
711x427
>>3325338
Проверил, действительно выдаёт предупреждения, потому что старый стандарт. Хотя написано, что это ANSI.
Аноним 19/11/24 Втр 15:13:43 3325573 274
>>3325338
Я просто код меняю частично и всё работает
Аноним 19/11/24 Втр 15:14:49 3325574 275
>>3324289
Ща я ещё дня на джва занят, дела по работе, потом опять вернусь к обдумываниям
Аноним 19/11/24 Втр 15:23:09 3325581 276
>>3325573
Как узнать что менять?
Аноним 19/11/24 Втр 15:36:52 3325591 277
>>3325567
>Хотя написано, что это ANSI.
какой смысл ты вложил в это "хотя"?
Аноним 19/11/24 Втр 15:42:17 3325596 278
image 866Кб, 2004x1394
2004x1394
>>3325567
у тебя кстати то же старый стандарт в компилере
патамушта типерь ета еррор
Аноним 19/11/24 Втр 15:42:49 3325598 279
>>3325591
Прата пишет, что стандарт требует писать int main(void), а K&R пишут на своём стандарте 70-х годов, хотя второе издание они писали по стандарту ANSI, но на деле ему не соответствует.
Аноним 19/11/24 Втр 15:44:40 3325601 280
>>3325598
все стандарты си это стандарты анси, ведь без американ нэйшинал стандарт инститьют невозможно записать очередную редакцию языка как стандарт билять
что за дырявая логика у тебя
Аноним 19/11/24 Втр 15:45:56 3325602 281
>>3325601
Не было в 70-е ни каких стандартов. Первый только в 89 году появился. Сразу видно, что Прату не читал.
Аноним 19/11/24 Втр 15:47:55 3325606 282
>>3325602
у праты в голове насрато
Аноним 19/11/24 Втр 16:00:22 3325619 283
>>3325596
Это только на макпуках так
Аноним 19/11/24 Втр 16:05:48 3325630 284
>>3325619
щас бы кодить не на макпуке
Аноним 19/11/24 Втр 16:19:01 3325645 285
>>3325596
Как будто бы дело не в стандарте, а в кланге.
Аноним 19/11/24 Втр 17:00:55 3325691 286
>>3325645
да не
думаю дело в стандарте
там же хотели закрыть потенциальные дыры в безопасности этими явными объявлениями сигнатур
а кланг то же тупенький, даже ворнинги не бросает за отсутствие описания параметров
Аноним 19/11/24 Втр 21:13:56 3325808 287
>>3325581
Жонглируют библиотеками, добавляю разные слова, и иногда код работает, процентов 90, это и есть задача научиться программировать, понять неработающий код и запустить
Аноним 19/11/24 Втр 21:17:48 3325811 288
>>3325808
Дополню, там ещё бывают разные версии компиляторов, ну иногда изменить, дописать, убавить в сумме является решить задачку, но это простой уровень, вот написать код чтоб удовлетворял условиям задачи, следующий уровень, я поэтому то и попросил каких-нибудь вариантов чужих кодов, вместо кроссвордов или игр телефонных, ну крч как хобби, сидеть и ебать себе мозги
Аноним 19/11/24 Втр 22:14:52 3325829 289
>>3325544
>а различия с 6-м изданием там минимальные.
Различия огромные, например в 5м издании нет многопоточки. Которую спросят везде, если пытаться устроиться на работу на си.
Аноним 19/11/24 Втр 22:20:42 3325832 290
>>3325829
Так в шестом тоже нет многопоточки. Там просто упоминается, что на есть и какие слова под неё зарезервированы в стандарте.
Аноним 19/11/24 Втр 23:05:32 3325844 291
>>3325811
>сидеть и ебать себе мозги
K&R порешай
13 задачу так никто и не решил в этом итт тредие или какая там была холиварная я уже забыл
Аноним 20/11/24 Срд 01:59:55 3325884 292
>>3325844
Надеюсь речь не про 1.13 гистограмму?
Аноним 20/11/24 Срд 10:21:43 3325962 293
image.png 14Кб, 493x443
493x443
а почему long long не может сохранить все 8 значений?
Аноним 20/11/24 Срд 10:29:47 3325966 294
>>3325962
Лонг лонг может, а символьный литерал − нет. Что такое '12345678', какой это тип? А у Прата написано.
Аноним 20/11/24 Срд 11:38:08 3326019 295
>>3325966
>А у Прата написано
Да тут и без праты понятно, что символьный литерал промоутится до инта, который потом представляется в long long.
Причём промоушен символьного литерала до инта это - implementation defined behavior, а про это читать в доке конпелятора.
Аноним 20/11/24 Срд 11:52:10 3326034 296
>>3326019
>промоутится
что делает?
Аноним 20/11/24 Срд 12:03:45 3326051 297
>>3326034
Гугли C стандарт, integer promotion. "Короткие" типы повышаются до signed int/unsigned int, но представление символьного литерала из нескольких символов не описано в стандарте, конкретно в гцц это число по основанию 256.
Аноним 20/11/24 Срд 12:30:34 3326081 298
>>3326051
> повышаются
спасибо, что не высрал портянку вместо русского слова
Аноним 20/11/24 Срд 12:45:43 3326093 299
>>3326081
И это тоже есть у Праты
Аноним 20/11/24 Срд 12:53:10 3326099 300
>>3326093
пратасимп захватил тред
Аноним 20/11/24 Срд 13:00:36 3326103 301
>>3326099
Я другой анон. Просто недавно пролистывал его и решил тебя еще раз им подъебать.

Что про Клеменса "C 21 века" скажешь?
Аноним 20/11/24 Срд 15:45:28 3326194 302
>>3325962
Да хоть 16.
>0123456789ABCDEF
typedef struct { char v[16]; } anytype;
anytype x= ✴(anytype ✴)("0123456789ABCDEF");
fwrite(&x, sizeof(anytype), 1, stdout); puts("");
Аноним 21/11/24 Чтв 08:46:56 3326511 303
>>3326194
не понял, зачем создавать отдельную структуру, что бы просто напечатать строку. и вопрос ведь не про строки был
Аноним 21/11/24 Чтв 16:57:31 3326839 304
>>3326511
тебе слово anytype ни о чём не говорит?
long long x= ✴(long long ✴)("12345678");
ну вот тебе твои 8 значений, символами; все в x, как ты и хотел; зачем - мне не ведомо... )
Аноним 21/11/24 Чтв 16:57:44 3326840 305
Аноним 21/11/24 Чтв 22:28:53 3326982 306
173221712850067[...].jpg 346Кб, 1080x2400
1080x2400
Аноним 21/11/24 Чтв 22:29:56 3326983 307
Ну йуу меня покрайнейй мере доктор веб норм отнёсся к файлу
Аноним 22/11/24 Птн 12:30:58 3327219 308
talkbackprata.jpg 150Кб, 866x804
866x804
Почему имя состоит из 16 букв, а не из 8?
Аноним 22/11/24 Птн 12:49:53 3327241 309
>>3327219
кодировка мейби? например в UTF-16 каждый символ это два байта, возможно strlen из за этого как то криво читает

попробуй напечатать каждый элемент массива через %d
Аноним 22/11/24 Птн 12:50:34 3327243 310
>>3327241
> каждый символ это два байта
*минимум два байта
Аноним 22/11/24 Птн 12:52:38 3327247 311
>>3327241
99%, что кодировка. Прогнал этот код у себя на пк ради интереса. Всё нормально показывает.
Аноним 22/11/24 Птн 13:53:31 3327299 312
>>3327219
тут надо бы сделать нормальный разбор потому что я ебу был бы ответ на твою хуйню
закладывай защиту от дурака
Аноним 22/11/24 Птн 14:03:51 3327308 313
image 154Кб, 1048x98
1048x98
Аноним 22/11/24 Птн 14:47:39 3327344 314
>>3327299
Это пример из книжки. Условия и циклы Прата ещё не рассказывал.
Аноним 22/11/24 Птн 16:11:53 3327407 315
гении цэ
Аноним 22/11/24 Птн 19:48:49 3327542 316
>>3327219
В UTF-8 кириллица 2 байта.
Аноним 22/11/24 Птн 19:52:07 3327546 317
>>3327542
И вообще, дополню, что многие базовые функции и принципы работы со строками рассчитаны только на ASCII/Extended ASCII. Для широких символов есть другие стандартные либы и другие функции.
Аноним 23/11/24 Суб 13:43:28 3327756 318
Аноним 23/11/24 Суб 13:47:57 3327759 319
>>3326982
>Вот эта без вирусов 18 метров правда, и без меню

Я не понял.
Там каждый раз когда открываешь одну и ту же ссылку - вес у файлов меняется. Чо за хрень.
Аноним 23/11/24 Суб 14:10:57 3327762 320
Аноним 23/11/24 Суб 20:34:28 3327984 321
>>3327759
Ну да вес немного другой, 17 с чём-то, я тоже обратил внимание, но объяснить причину не могу, иногда кстати такое бывает, округляет может? У меня доктор веб или пускает или нет, вроде так, мне кажется меня б на сайт даже не пустило если б там была хуета говна, но иногда при скачке бракует и просто не пускает, так что придётся поверить на слово, или потом перепроверять
Аноним 23/11/24 Суб 20:35:55 3327989 322
Один фиг подозрительно, вдруг файлы подменивают, и кому то 50 на 50 может хуета говна залететь
Аноним 25/11/24 Пнд 14:51:35 3329011 323
Что-то по си совсем как-то туго с книгами. Вот по С++ дофига всего, причём много крутых книг от именитых авторов и рассматривают не только синтаксис, а как правильно писать программы, избегая типовых ошибок.
Аноним 25/11/24 Пнд 16:48:48 3329097 324
>>3329011
>Что-то по си совсем как-то туго с книгами.
Да потому что он нахуй никому не всрался. Си использует узкая прослоечка системщиков и программистов микроконтроллеров. Но на модулях ядра сильно не заработаешь. Это интересно только энтузиастам и ценителям "чистого программирования".
Аноним 25/11/24 Пнд 17:25:52 3329124 325
>>3329097
Получается лучше учить С++?
Аноним 25/11/24 Пнд 18:08:03 3329156 326
>>3329124
Ну никаких других же языков на свете нет. Си. Си плюс плюс. Таненбаум. Сикп. Чистый код. И книг других тоже нету. Если сделаешь шаг вправо, шаг влево - расстрел.

>лучше учить
Лучше иметь свежие идеи. А не обсасывать одно и то же по миллиону раз.
Аноним 25/11/24 Пнд 19:07:26 3329205 327
>>3329156
>Ну никаких других же языков на свете нет
Неиронично, это так. Конечно, если считать сделанные на ллвм обёртки для дёрганья сисколов за языки, то тут можно поспорить.
Аноним 25/11/24 Пнд 19:18:49 3329216 328
>>3329205
Почему не сделают обёртку в стиле го, чтобы не было сборщика мусора и тяжёловесного рантайма, чтобы можно было писать такие же минималистичные программы, а также со встроенным менеджером больших проектов, а не как сейчас всякие make?
Аноним 25/11/24 Пнд 19:30:49 3329231 329
Аноним 25/11/24 Пнд 19:38:34 3329239 330
>>3329231
Точки с запятой
Скобки вокруг условий
Нет сборщиков проектов (также предлагают дрочить make)
Вечно какая-то хрень в стиле С++, а не С
Аноним 25/11/24 Пнд 19:59:25 3329251 331
>>3329216
потому что... получится Си.
Аноним 25/11/24 Пнд 20:48:55 3329267 332
так мейк ахуенен в чем претензия
Аноним 26/11/24 Втр 00:04:06 3329375 333
>>3329124
Я тебе неделю назад написал, что учи Джаву и ДжавуСкрипт. Тебе легаси с долларовыми зарплатами хватит до конца жизни. Люди всё ещё зарплату за код на Дельфи получают.

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

Зачем тебе дрочить мозг си и плюсами, если цель - исключительно зарабатывать деньги в качестве гребца на галере? Полно же более оптимальных путей.
Аноним 26/11/24 Втр 07:45:12 3329429 334
>>3329267
Я вот тут уже набросал концепт будущего сборщика homo. Будет конфиг файл, но его ковырять руками не обязательно, всё делается через команды: homo new [project_name], homo build, homo run.
По сути ничего сложного. Нужно рекурсивно пройтись по дереву каталогов и сформировать список файлов исходников. Затем для каждого сформировать объектный файл. Затем всё это скомпоновать и на выходе получил бинарник.
Почему эта простая идея до сих пор не реализована в си-сообществе - не понятно.
Аноним 26/11/24 Втр 08:53:34 3329456 335
>>3329429
манют трехколесный лисапед изобретает?
Аноним 26/11/24 Втр 10:05:24 3329511 336
8479406.jpg 935Кб, 1721x1469
1721x1469
>>3329456
Ну пока все сборщики напоминают пикрил
Аноним 26/11/24 Втр 10:15:25 3329519 337
>>3329239
Проблема Си не в в точках с запятой и отсутствии свистелок и перделок.
Аноним 26/11/24 Втр 10:43:49 3329530 338
>>3329519
Прогрессивным разработчикам нужны новые веяния
Аноним 26/11/24 Втр 10:52:05 3329534 339
>>3329429
Чел, твоя идея реализуется в мейке в несколько строк. Если кому-то нужно.
Но мне например нет − часть каталогов это модули, которые подключаются в бинарь в зависимости от того под какую систему/с какой периферией он собирается, а половина это вообще юнит-тесты.
Аноним 26/11/24 Втр 10:59:13 3329536 340
>>3329429
так это то, чем смак занимается, не?
Аноним 26/11/24 Втр 11:00:40 3329539 341
>>3329534
Это невозможно сделать в мейке. Там жесткие пути до файлов и надо каждый файл прописывать. В итоге на один файл у тебя будет по 10 строчек конфига мейка. Когда проект на сотни файлов, то задолбаешься писать и где-то обязательно ошибёшься.
Аноним 26/11/24 Втр 11:25:03 3329554 342
>>3329530
Это ты про раст и лгбт? бггг))

>>3329539
CMake через include_directory обходит дерево проекта и генерит соотв. make-файлы, для очень больших проектов, например, для огнелиса используется другой тул Ninja. Если нужна кастомизация мэйкфалов "извне", то так повелось, что их обычно генерят из шаблонов, либо тулы сами их выплёвывают.
Аноним 26/11/24 Втр 11:46:48 3329567 343
>>3329511
>все
Назови хотя бы 5
Аноним 26/11/24 Втр 11:47:07 3329568 344
>>3329554
И чем это ковыряние конфигов лучше, чем написать команду homo build?
Аноним 26/11/24 Втр 11:52:13 3329572 345
>>3329568
Х3, контроля больше, кастомизации больше. В растоговне же тоже можно скрипты ебануть на расте, которые будут при сборке запускаться.
Аноним 26/11/24 Втр 11:57:34 3329576 346
Аноним 26/11/24 Втр 12:12:27 3329585 347
CodeRa6m9i27uJ.png 7Кб, 870x62
870x62
CodelW2zIr1UaE.png 17Кб, 1024x235
1024x235
>>3329539
> Там жесткие пути до файлов и надо каждый файл прописывать
С $(shell find и $(wildcard и прочим? Чел, ты хоть раз нормальный мейк видел?
Аноним 26/11/24 Втр 12:24:57 3329600 348
>>3329576
>Autotools, Make
Дед, привет
Аноним 26/11/24 Втр 12:29:38 3329609 349
>>3329600
Привет, пердеж.
>>3329267
Отмотал нить в начало для тебя.
Аноним 26/11/24 Втр 14:36:13 3329713 350
>>3329585
дополню этого оратора
еще можно переменные окружения юзать и в разных шеллах запускаться
а еще можно запускать сторонние сценарии мейка
и вообще хуячить рекурсивно мультипоточную хуергу
мейк буквально полный по тьюрингу и может всё

я вот автотесты мейком запускал с линтерами перед ребилдом
и где то лежал мейк нью для автозапила дерева проекта
Аноним 26/11/24 Втр 14:55:52 3329739 351
>>3329585
Ни в одной книге не пишется, как писать такие макефайлы. Есть только игрушечные примеры. А подавляющие количество книг вообще обходит тему сборки проектов стороной. Тот же Прата ни слова про это не говорит вообще.
Аноним 26/11/24 Втр 14:58:27 3329741 352
>>3329739
>Тот же Прата ни слова про это не говорит вообще.

>В Unix имеется команда make, которая автоматизирует управление многофайловыми программами, но эта тема выходит за рамки настоящей книги.

Извинись
Аноним 26/11/24 Втр 15:00:03 3329743 353
>>3329267
Ну какой мейк, ребят, у вас пробелы вместо таба поставить нельзя, и кроссплатформенность в жопе
Аноним 26/11/24 Втр 15:02:02 3329744 354
>>3329743
>пробелы вместо таба поставить нельзя, и кроссплатформенность в жопе
Теперь это питонотред?
Аноним 26/11/24 Втр 17:17:04 3329861 355
>>3329744
в мейкфайле управляющая строка начинается с имвола табуляции наверное он про это
и что и чиво? поставь таб да и все в чем проблема
Аноним 26/11/24 Втр 19:09:09 3329947 356
>>3329861
В душе не ебу. Мб под виндой мейк не смог написать/нагуглить.
Просто кому еще в голову придет написать про пробелЫ вместо табов?
Аноним 26/11/24 Втр 19:22:02 3329962 357
image.png 93Кб, 943x578
943x578
image.png 19Кб, 367x303
367x303
image.png 28Кб, 523x271
523x271
Сап! Как выкачать либу с гита, так что бы можно было использовать так же как, если это было из своей же папки include/x/*.h?
Аноним 26/11/24 Втр 20:33:51 3330004 358
>>3329962
качаешь файлик.h
кладешь в папку
пишешь
#include "файлик.h"
профит???
Аноним 26/11/24 Втр 21:03:06 3330019 359
>>3330004
Классно, а если мне нужно скачать не просто файлик, а целый репозиторий с кучей подпапок? Как здесь github.com/tlsa/libcyaml
Аноним 26/11/24 Втр 21:12:24 3330026 360
image 17Кб, 406x396
406x396
image 1378Кб, 1332x1276
1332x1276
Аноним 26/11/24 Втр 21:55:08 3330055 361
image.png 267Кб, 1689x1234
1689x1234
>>3330026
Я скачал репозиторий, разместил его в lib. Хэдер скопировал туда, где лежат мои собственные. Как мне это дело теперь прилинковать то?
Аноним 26/11/24 Втр 22:43:41 3330084 362
>>3330055
ударь себя ладошкой по лицу
Аноним 27/11/24 Срд 00:15:14 3330119 363
>>3330055
Бля, чел, 90% что оно скорее всего собирается стандартным make/make install, да и там же в ридми сто проц есть инструкция. На крайняк собираешь ручками и кидаешь либы в /usr/local/lib, а хедеры в /usr/local/include.
Аноним 27/11/24 Срд 00:31:13 3330126 364
>>3330119
>сто проц есть инструкция
Она там есть.
>оно скорее всего собирается стандартным make/make install
Там именно это и написано.

>>3330055
Читай Прату.
Аноним 27/11/24 Срд 08:25:42 3330208 365
>>3330119
А был бы сборщик homo, то достаточно было бы написать homo build
Аноним 27/11/24 Срд 09:17:37 3330230 366
>>3330208
>достаточно написать homo build
>вместо make install
оптимизация уровня б
Аноним 27/11/24 Срд 10:05:40 3330262 367
image.png 160Кб, 935x1240
935x1240
image.png 169Кб, 1243x1231
1243x1231
>>3330126
Вот он Прата. make упоминается всего 1(!) раз. Где можно найти инфу про сборку с внешними зависимостями?
Аноним 27/11/24 Срд 10:18:32 3330274 368
image.png 21Кб, 614x358
614x358
А как вообще с юникодом (UTF-8 например) в си работать? типо вместо char создавать строки wchar_t? и перед строками везде ставить L?
Аноним 27/11/24 Срд 12:29:33 3330377 369
>>3329429
Твой homoвелосипед уже несколько раз изобрели. На вскидку - xmake, meson, basel, ya.make, buck scons

Сборка проекта это вообще наименьшая из проблем сборочных систем. Проблема в том что тебе хочется в сборке ещё иметь менеджер пакетов и запуск автотестов, а в языке очень хуёвые инструменты и для того, и для того.
Аноним 27/11/24 Срд 12:32:07 3330380 370
>>3330262
Да хуй его знает, браток. В интернете, например. Позаебывай нейронку, прочитай гайдик на опеннете, глянь видосик на ютубе.

Но похоже в твоём случае остается только читать Прату до просветления.
Аноним 27/11/24 Срд 12:47:09 3330398 371
>>3330274
> А как вообще с юникодом (UTF-8 например)
> типо вместо char создавать строки wchar_t?
Чтобы успешно работать с чем-то, надо сначала знать, что это такое.
Аноним 27/11/24 Срд 13:40:29 3330461 372
Аноним 27/11/24 Срд 14:21:02 3330497 373
>>3330398
Двачая. Я помню у дж спольского был прекрасный блог-пост про тупых кодерков и юникод, тут как раз этот случай.
Аноним 29/11/24 Птн 16:13:53 3331958 374
Аноним 29/11/24 Птн 23:33:16 3332229 375
Почему в конструкции
k; someshit; main() {continue shitting}

1) Необъявленная k не дает ошибку и компиляторы послушно компилируют код?

2) Правильно ли, что ; напрочь забивает на свои подвязки с операторством, не отсекает нихуя и вся портянка до мейна считается его типом? Если да, то почему так, а не ошибка компиляции?
Аноним 29/11/24 Птн 23:55:06 3332239 376
>>3332229
А почему он должен давать ошибку? Ты не указываешь флаги, а компилятор С по умолчанию доверяет программисту. Видя такой код, он подразумевает, что его автор не долбоёб, а просто пишет на языке времён Ритчи-Кернигана, где для таких объявлений по дефолту подразумевался тип инт. То есть он скомпилил на ANSI C или C89 и создал две глобальные переменные типа int.
И вообще почитай, что такое ; в Си. Что такое сиквенс поинт и как устроен язык.
И компилируй свои поделия с флагами как минимум -Wall -Wextra -g -std=c11 (или другой стандарт, но явно указывай).
Аноним 30/11/24 Суб 00:43:48 3332245 377
>>3332239
>А почему он должен давать ошибку?
Я воспринимал всегда ; как конец оператора и то, что после неё, условно, начало следующего оператора. Ведь есть еще блоки с фигурными скобками
Тем более учитывая, что перед мейном могут быть как сами функции, так и их прототипы, помимо макросов.

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

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

>И компилируй свои поделия с флагами как минимум -Wall -Wextra -g -std=c11 (или другой стандарт, но явно указывай)
Записал. Свои поделия я пока пишу правильно и не хардкожу ничего, в т.ч. даже бегло еще не читал стандарты. Поэтому и был удивлен такому эффекту.
Аноним 03/12/24 Втр 21:35:37 3334360 378
(читать голосом Лапенко) Да, я чего то просел совсем, хотел на неделю отлучиться, а видимо на месяц или джва, не получается нифига, и вы чего то попритихли
Аноним 04/12/24 Срд 12:13:31 3334611 379
image.png 1Кб, 225x29
225x29
image.png 3Кб, 111x84
111x84
image.png 41Кб, 1145x378
1145x378
Аноны, сап. Решил озадачиться вопросом о том, можно ли читать файл и писать в него одновременно через режим "r+" и "rb+".
Вот небольшой кусок говно-года, который написал -> https://pastebin.com/QM8E6R7A
Пароль: puts("pass");
Точка с запятой часть пароля


Первый вопрос — по поводу строчки 52, функция fseek, раньше в 52 было

if ( ( position != -1 ) && !fseek(f, -(int)readed_bytes, position) ) {

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

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

Пик1 - размер файла в байтах, Пик2 - его содержимое, Пик3 - состояние переменных, по идее feof_flag должен иметь ненулевое значение, ибо конец файла был достигнут, но он почему-то его не отлавливает, да и он откуда-то нули считал, хотя должен был только 2 байта, собственно, в readed_bytes значение 8, хотя должно быть 2, по идее.

OS - win10, но это и так понятно по блокноту.
Аноним 04/12/24 Срд 12:18:27 3334615 380
>>3334611
ПЕРВЫЙ ВОПРОС НЕМНОГО МОДИФИЦИРУЕТСЯ, Я ДЕБИЛ

я забыл, что можно указывать SEEK_CUR, что будет аналогичным тому, что я хотел написать изначально в 52 строчке, но мне всё равно непонятно почему то, что я хочу написать не работает.
Аноним 04/12/24 Срд 12:28:34 3334625 381
Аноним 04/12/24 Срд 12:32:09 3334630 382
>>3334625
Это ответ на какой вопрос или сразу на оба? Спасибо
Аноним 04/12/24 Срд 12:39:08 3334637 383
>>3334625
>>3334630
Окей, эта статья чуть ответила на вопрос как система оперирует с файлами посредством RAM. Но у меня файл крайне мал и мне всё ещё непонятно почему fread не возвращает 2, ибо он как раз успешно смог бы прочитать только 2 единицы данных, далее уже конец файла.

Самое странное, что если размер файла меньше 8 байт, то программа прекрасна работает и видит конец файла...
Аноним 04/12/24 Срд 12:55:11 3334656 384
>>3334637
Хотел сказать, забудь что в stdlib есть работа с файлами и пользуйся мемори маппингом.

Ну и кстати, чтобы писать в файл, нужно открывать через "rw".
Аноним 04/12/24 Срд 13:11:22 3334674 385
>>3334656
> мемори маппингом
В первый раз об этом от тебя услышал, анон, спасибо, буду знать, а это с какого стандарта появилось?

> "rw"
Насколько понял, то rb+/r+ режим так же позволяет писать в файл, отличительная особенность в том, что если указанного файла/пути не существует, то он будет создан.
Аноним 04/12/24 Срд 13:26:52 3334679 386
>>3334674
>В первый раз об этом от тебя услышал, анон, спасибо, буду знать, а это с какого стандарта появилось?
>
Это появилось еще в первой версии Windows NT, и еще раньше на Юниксах, но в стандартной либе до сих по нет. Хер знает почему.

>Насколько понял, то rb+/r+ режим так же позволяет писать в файл, отличительная особенность в том, что если указанного файла/пути не существует, то он будет создан.

r означает чтение. w в любом случае создаст файл, но w затрет старый файл, а w+ начнет писать в конец.
Аноним 04/12/24 Срд 15:28:07 3334759 387
>>3334611
не откывал твои коды
но судя по пирилам ты пытаешься навелосипедить FEOF
а раз так - велосипедь уж по классике
FEOF = тру только если ты попытался прочитать байты из файла и не смог
Аноним 04/12/24 Срд 15:34:35 3334766 388
image.png 7Кб, 378x143
378x143
>>3334759
А зря не открывал, feof там есть...

Погоди, feof возвращает ненулевое только в том случае, если мы достигли конца файла, разве нет?

У меня скорее вопрос в том, почему fread возвращает не то значение успешно прочитанных единиц данных.
Аноним 04/12/24 Срд 15:52:28 3334777 389
1000018452.mp4 2435Кб, 576x736, 00:00:09
576x736
>>3334766
>Погоди, feof возвращает ненулевое только в том случае, если мы достигли конца файла, разве нет?
да, но механизм понимания конца файла заложен в попытке чтения и ловле сегфолта
все равно что пытаться глубину стека через оверфлоу

этот пикрил я уже видел, держи вот такой для разнообразия
Аноним 04/12/24 Срд 15:53:30 3334778 390
>>3334777
>пытаться
пытаться понять
самосделал
Аноним 04/12/24 Срд 15:57:23 3334780 391
>>3334777
Тогда можешь объяснить пик3 отсюда -> >>3334611?

Файл имеет размер 10 байт, откуда fread взял ещё 6 байт успешно прочитанных?
Аноним 04/12/24 Срд 16:22:03 3334806 392
вторая итерация цикла где ты сделал фрид 1 8
Аноним 04/12/24 Срд 16:27:04 3334809 393
>>3334806
Да, но в файле больше не осталось байт для чтения, откуда он взял 6 успешно прочитанных нулей?

Хотя тут какая-то хуйня с fwrite замешана, я изменил размер буфера на 1 байт и тут пошли свестопляски с чтением символов.
Аноним 04/12/24 Срд 16:44:43 3334820 394
image.png 20Кб, 628x266
628x266
image.png 33Кб, 640x420
640x420
>>3334611
https://pastebin.com/zct3dQVe

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

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

Пик2 - запуск программы, скомпилированной на основе содержащегося в пастбине, но строчки с 74 по 79 закомментированы, программа вошла в бесконечный цикл.
Аноним 04/12/24 Срд 16:51:06 3334823 395
а может это преколы венды?
Аноним 04/12/24 Срд 16:53:14 3334825 396
>>3334823
Возможно, попробую на Убунте на ВМ запустить
Аноним 04/12/24 Срд 17:03:20 3334830 397
image.png 34Кб, 491x288
491x288
>>3334823
Да, анон, ты прав. Приколы винды, а почему так-то ебать? Вроде никакая логика не нарушена, указатель буквально в одном и том же месте, какой-то кринж пиздец, ненавижу программирование, блять, из-за какой-то пиздец неочевидной хуйни проебал 5 часов
Аноним 04/12/24 Срд 17:12:42 3334839 398
>>3334830
ну винда известная коляска
за ответами заходи в десктоп тред а тут мы лучший язык в мире обсуждаем
Аноним 04/12/24 Срд 17:30:15 3334853 399
>>3334839
Не, мне просто непонятно в чём причина, это магия для меня, я никогда об этой ошибке или жалобе на винду не слышал, мне просто совсем-совсем непонятно, указатель файла буквально в одном и том же месте, логика программы не нарушена, логика работы с файлом не нарушена, но в бесконечный цикл она вошла...
Аноним 05/12/24 Чтв 00:33:36 3335134 400
>>3310110
База, он себе пока обе ноги не отстрелит не поймёт с чем имеет дело, вообще забавно, что сейчас свой код с сишки или плюсов не ревёрсят в ассемблер, чтоб ахуеть сколько там лишнего говна компилятор загнал, плюс ассемблер уже единицы понимают, эх во в нулевые были времена
Аноним 05/12/24 Чтв 01:17:35 3335152 401
>>3332229
>не дает ошибку и компиляторы послушно компилируют код?
Боится, деды в 80ых зашугали.
Аноним 05/12/24 Чтв 20:30:31 3335643 402
Есть ли тут опытные сишники, которые считают, что на языке go не стоит ничего писать? Можете привести технические аргументы по этому поводу?
Аноним 06/12/24 Птн 00:06:39 3335756 403
Аноним 06/12/24 Птн 00:37:42 3335773 404
>>3335756
Повзрослевшие на двачах не зависают.
Ладно, если сами не можете технически грамотно сформулировать претензии к go, то может у других видели? Мне нужно именно мнение опытных сишников, а не жабо-шарпо-макак.
Аноним 06/12/24 Птн 01:33:20 3335787 405
>>3335773
Ни почему. Все зависит всегда от прокладки между креслом и клавиатурой.

Критика от программистов C/C++ современных ЯП всегда одна и та же: ради того, чтобы подтереть тебе жопу и недопустить всяких переполнений-утечек, создатели режут тебе возможность говнокодить, но из-за этого сами программы жрут больше системных ресурсов, чем программы на C/C++.

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

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

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

Ну и главное: если пишешь код за деньги, то пиши на том, чем сказали, и не выебывайся.
Аноним 06/12/24 Птн 02:05:39 3335789 406
>>3335643
>ничего
Чё там в говно уже завезли ффай, как в петушином?
Аноним 06/12/24 Птн 03:04:35 3335792 407
>>3335773
>технически грамотно сформулировать претензии к go
Название больше 1 символа, избыточное потребление памяти.
Аноним 06/12/24 Птн 03:07:36 3335793 408
Аноним 06/12/24 Птн 06:38:45 3335815 409
>>3335787
В Пиструне также можно выйти за границы массива, только вместо SF - он ошибку выкинет, да и по факту ОС тоже много от чего Си/Си++ программистов спасает. Да и по сути под капотом библиотек Питона очень много сишного и плюсового кода, а Питон это просто инструмент для математиков/инженеров, которые, собственно, не обязаны учить ЯП, а просто хотят получать результаты вычислений.
Аноним 06/12/24 Птн 09:35:05 3335869 410
>>3335787
>Писать же можешь хоть на го, хоть на си, хоть на расте, хоть на брейнфаке. Если же знаешь и понимаешь подводные камни этих языков, то еще и применять будешь их эффективно.
Ой, а что ж этих профессионалов даже Валгринд не спасает от дыр?
Аноним 06/12/24 Птн 10:07:53 3335886 411
>>3335792
сокрушительный панч, смогут ли госимпы парировать?
Аноним 06/12/24 Птн 10:15:45 3335893 412
>>3334679
Мне просто интересно, много ли в профессиональном коде односимвольных имён переменных дай Бог в циклах и может некоторые указатели в заголовках функций, больше придумать не могу
Аноним 06/12/24 Птн 10:27:34 3335901 413
>>3335893
в профессиональном коде нет имен переменных
Аноним 06/12/24 Птн 13:05:34 3336082 414
>>3335893
Если ты умножаешь две матрицы или что-то тупое делаешь со строчкой, то что-то кроме a, b, c и не нужно ничего выдумывать. Глобальную переменную, которая отвечает за коннект в базе данных, называть P не стоит.
Аноним 06/12/24 Птн 21:39:53 3336444 415
>>3335893
В nginx в каждой функции r.
Аноним 08/12/24 Вск 10:09:56 3337131 416
Стандарт си вообще описывает работу с каталогами файловой системы? Или получается стандартно я могу только работать с отдельным файлом, а если надо манипулировать папками, то для каждой ОС своя специфика?
Аноним 08/12/24 Вск 10:32:26 3337141 417
>>3337131
А типо можно манипулировать с каталогами не использую windows.h и команду " system("mkdir %new_path%"); " ?
Аноним 08/12/24 Вск 11:31:44 3337149 418
Аноним 08/12/24 Вск 13:16:26 3337213 419
>>3337141
>>3337149
Точно надо делать современную версию си с кроссплатформенной библиотекой и сборщиком проектов
Аноним 08/12/24 Вск 13:17:42 3337217 420
>>3337131
>Стандарт си вообще описывает работу с каталогами файловой системы?
а схуяли должен? это слой операционки а не языка
Аноним 08/12/24 Вск 14:24:02 3337277 421
>>3337217
Слой операционки - это системные вызовы, а у нас библиотека libc, которая должна давать кроссплатформенные обёртки.
Аноним 08/12/24 Вск 16:34:33 3337375 422
>>3337277
ничего она тебе не должна
Аноним 08/12/24 Вск 16:43:16 3337380 423
>>3337213
Было бы неплохо! Типо зига?

>>3337141
Да, на джаббе
Аноним 08/12/24 Вск 17:49:58 3337401 424
>>3337380
Типа го, но без сборщика мусора
Аноним 08/12/24 Вск 19:07:37 3337434 425
Аноним 08/12/24 Вск 19:50:20 3337449 426
>>3337434
В зиге точки с запятой и ещё куча всякой бесполезной шизы
Аноним 09/12/24 Пнд 03:15:10 3337568 427
>>3312965
Если бы там везде были проверки на ошибки, ты пока играл бы в какого нибудь ведьмака, ОС говорила бы: падажжи, куда кадр новый грузить, давай я сейчас сначала проверю, вот у меня тут пол миллиона строк кода, нет ли там где-то ошибки которую не заметили разрабы ОС, тогда и отобразим следующий кадр, а пока жди, ёпта
Аноним 09/12/24 Пнд 11:44:30 3337757 428
>>3337277
Напомни, где обертка наносекундного времени.
Аноним 09/12/24 Пнд 19:18:18 3338169 429
>>3337568
> пока играл бы в какого нибудь ведьмака, ОС говорила бы: падажжи, куда кадр новый

Ведьмак на Юнити/C# написан, там все эти проверки есть, дальше что?
Аноним 09/12/24 Пнд 21:36:09 3338239 430
Аноним 10/12/24 Втр 00:35:28 3338358 431
>>3338169
Графические либы-то все на си. Да и не только графические, да и .net либы небось тоже. И любые системные вызовы тоже сишный код дёргают.
Аноним 10/12/24 Втр 01:54:33 3338375 432
>>3313387
Для пирсинга реинтерпретом или си-стайл кастом как здесь любых сырых байт, которые тебе высрали по сети или любым иным способом, лол. Вкатуны нынче вообще недалёкие.
Аноним 10/12/24 Втр 01:56:53 3338376 433
Аноним 10/12/24 Втр 06:12:12 3338417 434
>>3338375
А что такое пирсинг? Пробивание дырки?
Аноним 10/12/24 Втр 08:32:23 3338437 435
Аноним 11/12/24 Срд 10:17:44 3339215 436
Дедушка вам расскажет, шо не так с С:

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

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

- нихуя нет, базовых вещей нет, туалетной бумаги. Списков нет (sys/queue нестандарт). Условной компиляции если ЛОНГ ШИРЕ ИНТ - нельзя. Атомарные операции только из __билтынов или __асм.

- встроенные типы нефиксированной ширины, чар неизвестной знаковости, битовые поля неизвестного направления, приколы в сдвигах, приколы в преобразованиях, приколы в сравнения.
Аноним 11/12/24 Срд 10:34:49 3339220 437
Аноним 11/12/24 Срд 10:46:18 3339229 438
>>3339215
>Атомарные операции только из __билтынов или __асм.
Появились в С11. Или ты из тех, кто не признаёт что-то кроме ANSI C?
Аноним 11/12/24 Срд 10:53:55 3339233 439
>>3339215

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

> - какая-то мразь то и дело портит память.
Привидите пример, пожалуйста, а то я только знаю, что в винде какая-то ебень с работой с файлами в режиме чтения и записи

> Атомарные операции только из __билтынов или __асм.
Раскройте темы, с понятием знаком, но думал, что это скорее про язык ассемблера.

А для чего вообще нужны битовые поля? Про приколы в сдвигах и сравнениях не понял, если про вещественные, то во всех языках с ними проблемы же, в Си же нет циклических сдвигов битов, насколько помню.
Аноним 11/12/24 Срд 12:27:34 3339298 440
>>3339229
Во многих проектах не вижу их.
>>3339233
>А это плохо разве?
Когда ты написал йобу, а потом тебе говорят, что йоба заебись, надо бы йобу еще добавить в пуку (в трех разных местах), а пука использует другие типы данных. В плюсах для этого есть хотя бы есть темплайты.
>Вроде говорят, что в каждой компании каждая СД допиливается напильником под свои нужды в целях оптимизации.
Даже когда Аптимизация не нужна (часто), абстрактных СД в С нет, там нельзя без жвачки и напильника
var t1: red_black_tree of mystruct;
> что такое?
Гугли container_of
>Раскройте темы, с понятием знаком, но думал, что это скорее про язык ассемблера.
В многопоточке нужно то, шо в 86 ассемблере делается xchg или xadd или mfence.
>А для чего вообще нужны битовые поля?
Чтобы не определять флажки через дефайн.
> Про приколы в сдвигах и сравнениях не понял.
-1 << 1 непортируемо
-1 > 1u !!!
Аноним 11/12/24 Срд 12:52:20 3339313 441
>>3339215
>- встроенные типы нефиксированной ширины, чар неизвестной знаковости, битовые поля неизвестного направления, приколы в сдвигах, приколы в преобразованиях, приколы в сравнения.

Пердикс, ты? Вроде все по логике сделано, не вижу проблем.
Главная проблема Си - это то что нет денежных вакансий.
Аноним 11/12/24 Срд 13:18:41 3339345 442
image 2Кб, 444x84
444x84
image 1Кб, 192x26
192x26
>>3339298
Сравнение нужно дополнительно дизассмеблировать, чтобы посмотреть, что на выходе будет. Хотя понятное дело, что UB, но cppcheck не ругался почему-то
Аноним 11/12/24 Срд 13:55:19 3339362 443
image 56Кб, 1763x456
1763x456
image 6Кб, 677x82
677x82
image 38Кб, 1376x379
1376x379
>>3339345
Да, всё в ассемблер скатывается, а он всё воспринимает как число со знаком, поэтому будут приколы, как на 2ом скрине.
Аноним 11/12/24 Срд 14:05:18 3339371 444
>>3339362
В пиструне то понятное дело по-другому будет, но у них там целое каких-то гиганских размеров, байтов 16, возможно, что на основе GMP, но не проверял и не вникал, если честно
Аноним 11/12/24 Срд 14:45:11 3339394 445
Аноним 11/12/24 Срд 14:50:49 3339399 446
>>3339394
Я действительно пердикс, но автор поста не, как запруфать это хз, ибо мог и код-страницы отредактировать, и с телефона первый пост писать.

Я вот этот анон >>3339233.

И вот этот >>3334820

Си нравится, но он очень сложный и боюсь, что никогда не смогу его понять :(
Аноним 11/12/24 Срд 15:01:28 3339407 447
image 28Кб, 464x481
464x481
image 29Кб, 977x395
977x395
>>3339394
Ты если знаток Си и ОСей, то помогит >>3339399, пожалуйста, я выделил память в первом процессе и хочу получить доступ к этой памяти во втором процессе, но мне сыпет SF даже, если через sudo второй процесс запускать, всё делал под Убунтой, ибо до нормального дистрибутива не дорос ещё, хотя дядя взрослый, пусть и пердикс, просто тупой

Пик1 - первый процесс, пик2 - второй процесс
Аноним 11/12/24 Срд 15:09:17 3339424 448
>>3339407
>хочу получить доступ к этой памяти во втором процессе
соснешь, нужна специально разлеляемая память
Аноним 11/12/24 Срд 15:12:30 3339427 449
>>3339424
да по SF даже через sudo понял, что сосну.

А как тогда крутые хакеры получают доступ к памяти процесса через другой процесс?

Я просто быдло тупое, про разделяемую память впервые слышу
Аноним 11/12/24 Срд 15:18:56 3339434 450
>>3339215
Всё ещё хуже, чем этот типо дед описал.
>>3339233
>А что это такое?
https://github.com/torvalds/linux/blob/master/include/linux/container_of.h
>>3339399
>Си нравится, но он очень сложный и боюсь, что никогда не смогу его понять :(
Не нужен он тебе, пердикс.
>>3339427
>А как тогда крутые хакеры получают доступ к памяти процесса через другой процесс?
Например, подменяешь динамический символ.
Аноним 11/12/24 Срд 15:23:41 3339435 451
>>3339434
Да что ты сразу обижаешь, мне правда Си нравится и очень хочу вкатиться в обратную разработку...

>динамический символ
Как всё сложно то :(
Аноним 11/12/24 Срд 15:32:47 3339443 452
>>3339434
Слушай, я пересмотрел свои сообщения и не совсем понял, а почему ты меня в совсем слабоумные-то записал? Самые-самые азы Си и программирования я знаю, вроде бы.
Аноним 11/12/24 Срд 15:35:32 3339446 453
>>3339443
>почему ты меня в совсем слабоумные-то записал?
Нейросеть поломалась?
Аноним 11/12/24 Срд 15:37:23 3339449 454
>>3339446
> Не нужен он тебе, пердикс.
> пердежоникс познает мир
Аноним 11/12/24 Срд 15:41:36 3339452 455
>>3339449
Про пержоникса писал не я. Зачем конкретно нужен тебе Си?
Аноним 11/12/24 Срд 15:49:00 3339462 456
>>3339452
Обратная разработка, любовь к языку, ибо очень сильно люблю, после Паскаля всё будет мёдом, с восприятием ООП проблемы, поэтому плюсы, Джава и шарпы отпадают.
Аноним 11/12/24 Срд 15:55:06 3339470 457
>>3339462
>Обратная разработка
Це шо?
>с восприятием ООП проблемы, поэтому плюсы, Джава и шарпы отпадают
У тебя список с инструментами для разных задач.
Аноним 11/12/24 Срд 16:21:10 3339488 458
>>3339470
Реверс инжиниринг на пендоском, он, конечно, больше на ассемблер нацелен, но и Си необходим.

Джава, плюсы и шарпы строятся полностью на ООП, в джаве всё объект, в плюсах тоже, судя по всему, ибо при инициализации базовой переменой автоматом вызывается конструктор, который ей нуль присваивает.
Аноним 11/12/24 Срд 16:30:29 3339501 459
>>3339488
А ну норм тогда, главное, чтобы на Си не надо писать бгг)). В принципе въезжать в обучение подводных камный и мин не очень и нужно тогда.
Джава и шарпы для цуи-кодомакакинга, плюсы для всего остального, короче нахуй не нужны тебе они.
У тебя вообще задачи больше не в обучении языку, а скорее про предметную область, какие форматы файлов бывают, выше там словосочетание динсимвол тебя поставил в тупик, как ОС загружает в память эти файлы и тп.
Аноним 11/12/24 Срд 16:46:16 3339506 460
>>3339313
Та не, вот например чар. Он сначала был знаковый, потому что в pdp-11 байты грузились со знаковым расширением. А с первыми портируемыми кумпиляторами решили перестраховаться и сделали хз как.
>>3339345
Аахах, дизазм покажет тебе особенность одной архитектуры на одном кумпиляторе с одним набором опций.
>>3339394
10 лет коммерческой разработки на сях и асемблерах тащем-то. От сегфолтов не спасает.
Аноним 11/12/24 Срд 17:01:07 3339512 461
>>3339506
>От сегфолтов не спасает.
Просто чтобы понимать, имаджинируйте ебало гуглеров, которые фузят хром ночами и годами на своих мейнфреймах.
Аноним 11/12/24 Срд 18:59:30 3339574 462
>>3339215
>надо пилить на своей коленке и приклеивать жвачкой под конкретные случае
>нихуя нет, базовых вещей нет, туалетной бумаги
Разве не в этом смысл? Взять только то, что надо, и запилить под конкретную железку, чтобы быстро летало?
Аноним 11/12/24 Срд 19:29:19 3339589 463
>>3339574
Он наверное имеет в виду, что этого нету в стандарте.

А так да, в этом особенность Си, что даже для вывода в консоль надо подключать бибилиотеку, что в питоне из-под коробки доступно, никакие пакеты не нужны
Аноним 11/12/24 Срд 20:46:33 3339618 464
>>3339215
>Всякие деревья, хэши, массивы надо пилить на своей коленке и приклеивать жвачкой под конкретные случае. Естественно, всюду лезут войд указатели, contaneirof и макросы.
это не проблема языка, пилить либы могут все, проблема комьюнити что они не сошлись на какой-то стандартной либе, потому что в си каждый - кулибин, а стандартизация - для лошков двигающих джейсоны, поэтому каждый норовит изъебнуться, ведь он же не лох. Ну да, написал полностью свою стандартную либу, но ведь зато сэкономил 200 байт!
>>3339215
>чар неизвестной знаковости
шо? вообще не знал о такое, что это?
Аноним 11/12/24 Срд 23:20:17 3339693 465
>>3339506
>10 лет коммерческой разработки на сях и асемблерах тащем-то.

Чо платят? В какой сфере разработка?
Аноним 11/12/24 Срд 23:23:26 3339695 466
>>3339313
>Главная проблема Си - это то что нет денежных вакансий.
Вот это. Люблю байтоёбить, просто обожаю сеги дебажить. Но за крудошлёпство платят наполовину больше, плюс работаешь два часа в день, так что увы.
Аноним 12/12/24 Чтв 09:43:03 3339801 467
Аноним 12/12/24 Чтв 12:50:34 3339931 468
>>3339801
Ну у меня 2 вопроса:
Причем здесь С++?
Разве анордеред мап - часть стандарта С++?
Аноним 12/12/24 Чтв 12:57:51 3339938 469
>>3339931
> std::unordered_map
>Разве анордеред мап - часть стандарта С++?
Аноним 12/12/24 Чтв 17:42:58 3340139 470
>>3339313
>Главная проблема Си - это то что нет денежных вакансий.

А почему так? Ведь рынок встраиваемых устройств за последнее десятилетие превзошел традиционный ПКашный. А на встраиваемых Си же доминирует. Или если создают новое железо с архитектурой, то туда, как правило, первым делом сишный компилятор портируют.
Аноним 12/12/24 Чтв 17:49:50 3340140 471
>>3340139
Ебмедед пертровичам всегда платили сильно ниже рынка.
Аноним 12/12/24 Чтв 18:12:13 3340157 472
>>3340139
>А почему так
В машиностроении и электронике зарплаты всегда были ниже чем в банках например, ну или в рекламе. Просто потому что маржинальность бизнеса ниже и деньги из воздуха ты не сделаешь.
Аноним 12/12/24 Чтв 19:37:29 3340187 473
>>3340157
В боенге за миску риса работают, ясно.
Аноним 12/12/24 Чтв 20:30:03 3340209 474
>>3340187
В боенге и зарплаты значительно меньше чем в гугле или citadel например.
Аноним 12/12/24 Чтв 21:52:44 3340253 475
>>3339938
да, это часть стандартной библиотеки, а не часть языка
Аноним 12/12/24 Чтв 22:49:50 3340275 476
∗ * ∗
Аноним 13/12/24 Птн 03:15:56 3340329 477
>>3340253
По такой логике и работа с потоками ввода/вывода не часть языка, но простите
В таком случае большая часть языков не многим отличается от языка ассесблера
Аноним 13/12/24 Птн 05:11:29 3340339 478
>>3340329
Все языки - это абстракции (синтаксический сахар, если удачные) азмы. Тот же прототип сишной функции - это макрос, например.
Аноним 13/12/24 Птн 12:05:52 3340474 479
>>3340339
> Все языки - это абстракции (синтаксический сахар, если удачные) азмы.
Да знаю, Более того, даже цикл for сахар, его не было до стандрта с90даже питон можно дизассемблировать, правда так какие-то странные конструкции для переменных, а-ля store и подобное.
> Тот же прототип сишной функции - это макрос, например.
Разве? А для чего тогда всякие fastcall, stdcall? Макрос в Си прямо в текст программы же вставляется при препроцессинге.
Аноним 13/12/24 Птн 16:01:54 3340632 480
>>3322812
Добавить ещё возможность нормально объявлять функции в структурах, и вот уже плюсы
Аноним 13/12/24 Птн 16:10:01 3340642 481
>>3340632
Указатель на функции для кого придумали, солнышко?
Аноним 13/12/24 Птн 17:23:26 3340677 482
>>3340642
Солнышко, мне не в кайф писать
struct hui {
void (function)(hui , int, int);
}
void zalupa(hui
this, int, int);

hui var;
var.function = zalupa;

Я хочу
struct hui {
void function(int, int) {
print this->value;
do smth;
}
}
Аноним 13/12/24 Птн 17:51:27 3340700 483
>>3340632
>нормально объявлять функции
Свеклушин положил портфель на колени, улыбаясь, вздохнул:

- Да, Серега, Серега. Морщины вон у тебя. Надо же.

- Ну и чего странного? Нормально.

- Чего ж нормального? Мастер спорта по самбо, тридцать пять лет.

- Да у тебя тоже, кстати, морщин хватает. Так что не расстраивайся шибко на мой счет. Береги нервные клетки.

Засмеялись. Свеклушин шлепнул Трофименко по коленке:

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

Он встал, но вдруг вспомнил:

-Только вот погоди-ка. Норму сжую щас, чтоб домой не тащить. Хорошо, что вспомнил.

Он сел, раскрыл портфель. Трофименко курил, стряхивая пепел на асфальт.

- Где она... ага вот.

Свеклушин вытащил упакованную в целлофан норму.

- Ух ты, - Трофименко потянулся к аккуратному пакетику. - Смотри, какие у вас... А у нас просто в бумажных упаковках таких. И бумага грубая. И надпись такая оттиснутая плохо, криво. Синяя такая. А у вас смотри-ка, во как аккуратненько. Шрифт такой красивый...

- Столица, чего ж ты хочешь, - Свеклушин разорвал пакет, вытряхнул норму на ладонь, отщипнул кусок и сунул в рот. Трофименко потрогал норму:

- И свежая... во, мягкая какая. А у нас засохшая. Крошится вся... организаторы, бля. Не могут организовать...

- А вы написали бы куда надо, - Свеклушин жевал, периодически отщипывая.

- Написали, бля! - Трофименко швырнул папиросу, придавил ногой. - Не смеши, Саша.

- Не помогает?

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

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

- Дай мне, не выкидывай. Жене покажу.

Он разгладил пакетик, спрятал в карман.
Аноним 13/12/24 Птн 17:57:35 3340702 484
>>3340677
Приходится мириться, сладенький :3
Да и зачем Си превращаться в Си++?
Аноним 13/12/24 Птн 23:07:50 3340856 485
>>3340677
зачем тебе псевдо объекты в Си? Пиши на плюсах
Аноним 14/12/24 Суб 15:24:05 3341173 486
>>3340856
Потому что это удобно, а плюсы пиздец перегруженны всяким дерьмецом
Аноним 14/12/24 Суб 16:31:42 3341202 487
>>3341173
Ну так и зачем ты опять тащишь это дерьмецо в мои плюсы?
Аноним 14/12/24 Суб 16:32:17 3341203 488
Аноним 14/12/24 Суб 21:17:35 3341378 489
пишите на минусах заебали ныть
Аноним 14/12/24 Суб 21:24:00 3341380 490
Аноним 17/12/24 Втр 03:53:22 3342858 491
>>3340677
>hui var;
>var.function = zalupa;
hui (ЗВЕДЗДОЧКА) var = hui_new(ТВОЯ, ХУЙНЯ);
hui var = hui_new(ТВОЯ, ХУЙНЯ);

Формат:
hui var;
var.призыв_хуйни(1, 2);
Идет нахуй. Потому что объекты без инициализации идут нахуй.
Аноним 18/12/24 Срд 05:59:51 3343621 492
>>3340677
Структура не функция. У меня всё.
Аноним 18/12/24 Срд 06:00:32 3343622 493
>>3340677
И да отпустит Прата тебе грехи.
Аноним 22/12/24 Вск 20:35:00 3347460 494
>>3339506
Не уверен, тут скорее от компилятора зависит, в gcc если есть хотя бы один signed, то делает SETB byte; после инструкции сравнения, если оба unsigned, то SETG byte;
Аноним 26/12/24 Чтв 22:36:38 3350649 495
А я люблю обмазываться санитайзерами и фаззить. Каждую неделю я хожу по инфре и выпрашиваю хосты для фаззинга. В среднем 80% сру мой код тратит на проверки границ, ассерты, валидацию указателей. У меня свой отладочный маллок, отладочные функции str и mem, обертки для десятков сисколов. Блюющий пони и странное поделие svace проверяют даже мой код, написанный для проверки тестов для одноразовой тулзы.
Аноним 28/12/24 Суб 04:07:48 3351286 496
image.png 21Кб, 495x332
495x332
FizzBuzz уложился в 16 строк лол.
Аноним 28/12/24 Суб 09:56:18 3351359 497
>>3351286
Эээ, ты в школе учишься?
Аноним 28/12/24 Суб 10:30:39 3351395 498
>>3351286
#include <stdio.h>
#include <string.h>

int main()
{
char str[1024];
char buffer[5];

str[0] = '\0';

for (int i = 1; i < 101; i++) {

if ( !(i % 3) ) {
strcat(str, "Fizz ");
}
else if ( !(i % 5) ) {
strcat(str, "Buzz ");
}
else {
sprintf(buffer, " %d ", i);
strcat(str, buffer);
}

}

puts(str);

return 0;
}

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

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

Добра тебе, учись и всё у тебя в жизни будет хорошо, иначе вырастешь таким мудаком, как я, и в жизни счастья тебе не видать.
Аноним 28/12/24 Суб 11:15:30 3351428 499
image.png 7Кб, 852x92
852x92
>>3351395

> Если число кратно и 3, и 5, то программа должна выводить слово FizzBuzz
Аноним 28/12/24 Суб 11:16:57 3351429 500
>>3351395
>если бы в школе Си учил
Столяров считает, что надо с Паскаля начинать. Си деформирует мозги новичкам.
Аноним 28/12/24 Суб 11:21:10 3351432 501
image.png 1075Кб, 1200x793
1200x793
Аноним 28/12/24 Суб 12:19:39 3351488 502
image.png 30Кб, 423x666
423x666
>>3351429
>>3351432
А, проебался по условию и по сути, я думал, что надо сохранить результат в str, а оно эво как...
>>3351429
Паскаль противный, там надо прописывать что передаёшь функции, значение переменной, саму переменную(её) адрес ( var name_var: type ). Чем Си может испортить людей - не понимаю, но Столяров всё таки старая школа, когда он учился программировать ещё наверное Фортран учили, не то что Паскаль. Единственный плюс Паскаля в том, что он как бы показывает, что у нас вот в начале главного цикла программа идёт объявление переменных, хотя перед функциями и процедурами тоже надо было, если не ошибаюсь, которые потом в стэк занесутся, в Си же так тоже делать надо было, до с90 стандарта. Ещё в Паскале неудобная работа с кучей и с файлами.
Аноним 28/12/24 Суб 12:42:50 3351508 503
>>3351488
Фортран в нашей стране никогда не учили. В 1985 году ввели информатику и учили в основном Бейсик, потому что он был вшит в ПЗУ в большинство тогдашних ЭВМ. В бедных школах вообще учились на программируемых калькуляторах или просто блок-схемы на доске рисовали.
Аноним 28/12/24 Суб 16:15:08 3351665 504
>>3351286
>>3351286
Уместил в две строки
#include <stdio.h>
int main(){int i=1,mod3,mod5;while(i<101){m3=i%3;m5=i%5;if(!m3)printf("Fizz");if(!m5)printf("Buzz");if(m3&&m5)printf("%d",i);putchar(' ');i++;}return 0;}
Аноним 28/12/24 Суб 18:38:24 3351788 505
>>3351665
А на доске какие правила переката, а то забыл уже? Просто в некоторых разделах, например, ai, тред перекатывают не после бамплимита, а после 1000 постов.
Аноним 28/12/24 Суб 18:53:13 3351804 506
Вот шапка

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

Пожалуйста, пользуйтесь https://ideone.com/ https://wandbox.org/ или 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 (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2479.pdf (февраль 2020, с диффами)
- Последний черновик ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf (декабрь 2020)

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

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

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

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

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

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

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

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

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

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

https://github.com/kozross/awesome-c
Аноним 28/12/24 Суб 22:40:55 3351939 507
>>3351804
>содержит или ∗.
Юникод птши
Аноним 29/12/24 Вск 00:07:53 3351953 508
>>3351488
>>3351665
Я бы выкинул ретерн и либу стринг. А принтф заменил на путсы.
Аноним 29/12/24 Вск 08:12:12 3352036 509
>>3339407
>free(p);
Этот сегмент памяти забыт навсегда.
Аноним 29/12/24 Вск 08:17:28 3352039 510
>>3351359
Уже лет двадцать как нет.
Аноним 29/12/24 Вск 13:08:54 3352165 511
>>3351804
Хуёвая шапка нету про санитайзеры, нету про фазеры, это точно шапка про язык си?
Аноним 29/12/24 Вск 18:03:15 3352359 512
>>3352036
Там перед этим getchar() стоит и процесс всё ещё активным остаётся и до освобождения памяти не дошёл.
Аноним 29/12/24 Вск 18:03:40 3352360 513
>>3352165
Что такое санитайзеры и фазеры?
Аноним 29/12/24 Вск 23:39:40 3352604 514
>>3352359
Ты про виртуальную адресацию почитал? Всё понятно стало, почему так не работает?
Аноним 30/12/24 Пнд 00:04:12 3352611 515
>>3339407
Если ты не пшешь под микроконтроллеры или древние ОС, то у ОС с CPU реализовано разделение памяти, где каждый процесс получает своё виртуальное адреcное пространство.
>>3339427
> А как тогда крутые хакеры получают доступ к памяти процесса через другой процесс?
Или через права на отладку, или через ядро ОС. Или это не через другой процесс, а как-то иначе.
Аноним 30/12/24 Пнд 03:51:24 3352655 516
>>3352604
Нет, если честно, но мне очень хороший человек и по совместительству няшный кунчик пояснил, что процесс создаёт своё виртуальное адресное пространство, с которым и оперирует...
Аноним 30/12/24 Пнд 03:58:11 3352656 517
>>3351286
.686

option casemap: none

include c:\masm32\include\masm32rt.inc

.data
str1 DB "Fizz", 0
str2 DB "Buzz", 0
str_format_out DB "%d", 0

.code
main:
MOV EBX, 1
SUB ESP, 8
PUSH EBP
MOV EBP, ESP
LOOP1:
CMP EBX, 101
JGE LOOP1_OUT
MOV EAX, EBX
CDQ
MOV ECX, 3
IDIV ECX
MOV [EBP + 4], EDX
CMP EDX, 0
JNE T1
PUSH offset str1
call crt_printf
ADD ESP, 4
T1:
MOV EAX, EBX
CDQ
MOV ECX, 5
IDIV ECX
MOV [EBP + 8], EDX
CMP EDX, 0
JNE T2
PUSH offset str2
call crt_printf
ADD ESP, 4
T2:
CMP DWORD PTR [EBP + 4], 0
JZ T3
CMP DWORD PTR [EBP + 8], 0
JZ T3
PUSH EBX
PUSH offset str_format_out
call crt_printf
ADD ESP, 8
T3:
PUSH 32d
call crt_putchar
ADD ESP, 4
INC EBX
JMP LOOP1
LOOP1_OUT:
POP EBP
XOR EAX, EAX
ret
end main

Уложил в 61 строку на MASM32, пусть и с говнокодом, но да похуй, кто меньше сможет?
Аноним 30/12/24 Пнд 18:49:24 3353088 518
extern printf
global main
section .data
fizz db "Fizz", 10, 0
buzz db "Buzz", 10, 0
fizzbuzz db "FizzBuzz", 10, 0
num db "%d", 10, 0
section .text
main:
mov ebx, 1
.loop:
xor rdi, rdi
mov eax, ebx
mov ecx, 15
cdq
div ecx
test edx, edx
jz .set_fizzbuzz
mov ecx, 3
mov eax, ebx
cdq
div ecx
test edx, edx
jz .set_fizz
mov ecx, 5
mov eax, ebx
cdq
div ecx
test edx, edx
jz .set_buzz
lea rdi, [num]
jmp .print
.set_fizzbuzz:
lea rdi, [fizzbuzz]
jmp .print
.set_fizz:
lea rdi, [fizz]
jmp .print
.set_buzz:
lea rdi, [buzz]
.print:
mov rsi, rbx
mov rax, 0
call printf
inc ebx
cmp ebx, 101
jne .loop
xor eax, eax
ret

49 строк на NASM Linux-amd64. Тоже говнокод, конечно.
Аноним 30/12/24 Пнд 19:09:17 3353097 519
>>3352656
>include c:\masm32\include\masm32rt.inc

Но вообще, если подумать, то есть и такое решение:

global main
%include "fizzbuzz.inc"
section .text
main:
call fb
ret
Аноним 31/12/24 Втр 06:39:18 3353255 520
>>3353088
.686
include c:\masm32\include\masm32rt.inc
.data
str1 DB "Fizz", 0, "Buzz", 0, "%d", 0
.code
main:
MOV EBX, 1
LOOP1:
MOV EAX, EBX
CDQ
MOV ECX, 3
IDIV ECX
MOV EBP, EDX
TEST EDX, EDX
JNZ T1
PUSH offset str1
call crt_printf
ADD ESP, 4
T1:
MOV EAX, EBX
CDQ
MOV ECX, 5
IDIV ECX
MOV ESI, EDX
TEST EDX, EDX
JNZ T2
PUSH offset str1 + 5
call crt_printf
ADD ESP, 4
JMP T3
T2:
TEST EBP, EBP
JE T3
TEST ESI, ESI
JE T3
PUSH EBX
PUSH offset str1 + 10
call crt_printf
ADD ESP, 8
T3:
PUSH 32d
call crt_putchar
ADD ESP, 4
INC EBX
CMP EBX, 101
JNE LOOP1
XOR EAX, EAX
RET
end main

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

>>3353097
Ну, это победа.
Аноним 31/12/24 Втр 19:15:56 3353620 521
С Новым Годом, товарищи! Извините за тупые вопросы в этом году, удачи вам.
Аноним 03/01/25 Птн 03:02:42 3354805 522
>>3312211
cmake, make, yocto.
обычно в больших проектах что-то из этого используется. вполне нормальная штука.
я пишу под openWrt и там как раз такая штука.
Аноним 04/01/25 Суб 01:43:18 3355406 523
>>3351665
Мой метот от Тсаря Ссей:

#include <stdio.h> main(){int (*p)()=printf;for(int i=1;i<101;i++)!(i%15)?p("FizzBuzz\n"):!(i%3)?p("Fizz\n"):!(i%5)?p("Buzz\n"):p("%d\n",i);return 0;}
Аноним 04/01/25 Суб 02:03:50 3355419 524
>>3355406
Почему звёздочку не скушало?
Аноним 04/01/25 Суб 12:55:49 3355567 525
>>3355406
Уверен, что одна ошибка будет на всех компиляторах, а вот вторая - не знаю.
>>3355419
Потому что она только одна, анончик.
Аноним 04/01/25 Суб 22:55:22 3355825 526
>>3355406
Опытные аноны, я правильно понимаю, что из-за отсутствия скобок операции с вопросами будут разбираться отпизды компиляторами, т.е. поведение неопределено или я не прав?
Аноним 05/01/25 Вск 00:59:56 3355859 527
>>3355567
Чем оно у тебя вообще компилится в одну строку? gcc и clang не видят код после инклюда. Если перенести main, то gcc таки компилит с варнингами, а clang эти варнинги рассматривает как ошибки и отказывается. Плюс смешаны стандарты, например в С99 и новее нельзя объявить функцию без возвращаемого типа, а до С99 нельзя объявлять счётчик в цикле.

>>3355825
У тернарного оператора могут быть проблемы с отсутствием скобок, но компилятор кинет варнинг на двусмысленный код. Всегда пользуйся дополнительными флагами как минимум -Wall -Wextra.
Аноним 05/01/25 Вск 04:28:36 3355878 528
>>3355859
>но компилятор кинет варнинг на двусмысленный код
Понял. А имеет смысл в 2к25 предпочитать его для сложных составных выражений вместо if-else иили case, кроме йоба обфускации? Или бустов от его использования компилятор уже не даст?
Аноним 05/01/25 Вск 17:32:19 3356127 529
>>3355878
Если компилишь с оптимизациями, то не даст. Дадут ключевые слова, атрибуты, выравнивание структур. Но в 99% случаев это бессмысленный дроч ради дроча, а на работе нужно писать читабельный код, а не быстрый. За три вложенных тернарника уволят сразу нахуй.
Аноним 05/01/25 Вск 18:19:53 3356155 530
>>3356127
Здравствуйте, я другой анон, но ведь тернарные операции это синтаксический сахар, они же в коде будут теми же самыми cmp, test и последующими j[] TAG.
И использование Си и означает, что нам нужно байтоёбить и это будет делать опытный человек за много деняк.
Аноним 05/01/25 Вск 19:50:35 3356195 531
>>3356155
>Здравствуйте, я другой анон, но ведь тернарные операции это синтаксический сахар
Не-а, они имплементированы отдельно, и далеко не любое выражение с тернарником можно заменить на if/else, не переписывая окружающий код.
>И использование Си и означает, что нам нужно байтоёбить и это будет делать опытный человек за много деняк.
Да нет, обычно это означает, что нужно копаться в очень тухлом говне, которое едва компилится с триллионом варнингов, или переведённой промтом документации на китайский контроллер, а заниматься этим за миску риса будет лошпед, ещё не перекатившийся в веб. Ничего личного, но зп у сишников реально хуёвые, при этом требования выше, чем в вебе. Хотя конечно дела всё ещё лучше, чем у плюсовиков.
Аноним 06/01/25 Пнд 10:22:42 3356445 532
Почему в большинстве книг или учебных материалов пытаются накидывать кучу знаний по си: всякие указатели, структуры, работа с файлами. Но не объясняют как это всё компилировать?
Аноним 06/01/25 Пнд 14:45:55 3356593 533
>>3356445
>кучу
>указатели, структуры, работа с файлами
Аноним 06/01/25 Пнд 16:01:30 3356713 534
>>3356445
Что ты имеешь в виду анон, ты имеешь в виду ключи компиляции или что? Или ты про байтоёбское расмещение данных, попадание их в кэш и прочее? Или про то, как это компилируется в язык асемблера?
Аноним 06/01/25 Пнд 16:02:45 3356716 535
>>3356593
Главу про указатели можно спокойно растянуть на страниц 100 и всё по делу будет. А про работу с потоками в пору писать отдельную книгу, на самом деле.
Аноним 06/01/25 Пнд 16:51:57 3356757 536
>>3356445
Потому что это описано в толстой книге Компиляторы?
Аноним 06/01/25 Пнд 18:12:21 3356802 537
Аноним 06/01/25 Пнд 20:32:58 3356899 538
>>3356802
А, это описано в толстой книге Managing Projects with GNU Make.
Аноним 07/01/25 Втр 08:22:06 3357060 539
Вот пишут, что эти make можно описать более обощенно, но при этом не избавляет нас от необходимости прописывать каждый новый c-файл в список в Makefile. Почему нет инструмента, который бы автоматически сканировал папку ./src на наличие всех вложенных папок с c-файлами?
Аноним 07/01/25 Втр 12:17:56 3357156 540
Друзья у нас перекатик намечается после 500 или после 1000?
Аноним 07/01/25 Втр 12:44:06 3357181 541
>>3357156
После 1000 треды исчезают, а не перекатываются
Аноним 07/01/25 Втр 15:15:18 3357309 542
>>3357060
>Почему нет
Си тред 2025 итоги.
Аноним 07/01/25 Втр 19:55:38 3357586 543
maker.jpg 60Кб, 757x426
757x426
>>3357309
И как сделать? Все примеры, какие я нашёл в интернете, предлагают ручками прописывать каждый файл в Makefile. Универсального решения нет, хотя за 50 лет наверно можно было додуматься, что людям не нужна всякая эта хрень с гибкостью, а нужно чтобы просто собрались все файлы из папки.
Почему в других языках пишут: cargo build и всё собирается без изучение отдельного языка для сборщика?
Аноним 07/01/25 Втр 21:15:02 3357663 544
>>3357181
Эх печаль, надо шапку скопировать и доправить
Аноним 07/01/25 Втр 21:18:07 3357669 545
>>3357663
Бля, а шляпы треда нет, давайте сделаем хотяб это, полезные ссылки, кого читать, компиляторы и онлайн компиляторы, ну и остальное, а то у нас нитка как будто случайная, не надо так
Аноним 08/01/25 Срд 13:08:20 3357750 546
Аноним 08/01/25 Срд 14:27:14 3357799 547
>>3357750
О, спасибо, надо засейвить
Аноним 08/01/25 Срд 18:04:02 3357968 548
изображение.png 86Кб, 1182x425
1182x425
изображение.png 117Кб, 1175x462
1175x462
Кто с sdl работал? Пытаюсь сделать освещение и почему то с SDL_BLENDMODE_ADD текстура перестаёт рендерится. С другими режимами он вообще рендерится одиннакого. Походу это проблема вообще только у меня.

Геты если что возвращают обычные указатели.
Весь день уже голову ломаю и понять не могу что за хуйня
Аноним 08/01/25 Срд 18:11:13 3357972 549
Блин, я тут такое заметил, подвязал с си на пару месяцев, и теперь как заново в него вкатываю, голова неслушается, всё чужое, видимо нельзя бросать
Аноним 08/01/25 Срд 20:05:12 3358066 550
>>3357586
Есть базовый пример:
```
# Define the compiler
CC = gcc

# Define the compiler flags (e.g., -Wall for all warnings)
CFLAGS = -Wall

# Define the source file and the output executable
SRC = main.c
OUT = main

# The default target
all: $(OUT)

# Rule to build the executable from the source file
$(OUT): $(SRC)
$(CC) $(CFLAGS) -o $(OUT) $(SRC)

# Clean up generated files
clean:
rm -f $(OUT)

```
Почитай об использовании %.c, %.o, $@ и прочих штуках
https://stackoverflow.com/questions/54854128/use-of-o-c-in-makefile

Дальше дефайнишь каждый таргет отдельно, если нужно.
Ну например, у тебя еще надо бы прогнать тесты перед тем как, то пишешь таргет test, ставишь зависимость
all: test
#Other build actions

Вот у этого персонажа классно сделан мейкфайл и юнит-тестирование. есть чему поучиться.
https://github.com/zedshaw/liblcthw

-----
>за 50 лет наверно можно было додуматься
Додумались, но каждый суслик был сам себе агроном.Сначала чисто скриптами билдили, потом додумались написать make, кроме того не было систем контроля версий и они не были всем нужны и доступны.
Просто скидывали патчфайлы и все.
Плюс не было задачи сделать единую ЭКОСИСТЕМУ библиотек.Некому было следить за этим.
Это весьма минималистичный язык программирования, который дает базу. Нужны пакеты?ты решаешь это сам сам. хотя билд система openWRT в мейкфайле пакета позволяет указать пакет, вверсию, хеш архива с исходниками и превосходно тебе все соберет

> в других языках пишут
И что, что пишут? У раста нет стабильного ABI.
https://www.reddit.com/r/rust/comments/ss2p6c/what_does_it_mean_when_people_say_that_rust_does/?rdt=56074
Каждый язык имеет свои идиомы и проблемы. тут важно решать задачу, а это не всегда про твой личный комфорт.

можно прямо из-под N/Vim :make выполнить и оно соберет тебе твою программу.

>без изучение отдельного языка для сборщика
Можно кодить на С через Visual studio/Codeblocks/DevCpp, там эта система сборки под капотом и тебе не нужно будет заморачиваться с добавлением файлов.

Но.
В реальной вакансии там может быть какой-то эмбеддед и тебе нужно будет пользоваться make/cmake или другой системой сборки и иногда там что-то добавлять. К примеру, у тебя будет SDK вендора с уже собранными дровами и ты свое приложение с ним линкуешь.
Так что я ничего плохого не вижу в знаниях, анон.
Аноним 08/01/25 Срд 20:17:36 3358074 551
image.png 308Кб, 1366x741
1366x741
image.png 228Кб, 1366x741
1366x741
image.png 214Кб, 1366x741
1366x741
image.png 136Кб, 1366x741
1366x741
>>3356445
все там пишут. найди норм книгу.
Аноним 08/01/25 Срд 22:08:24 3358140 552
CodeUyImscr1m6.png 8Кб, 576x98
576x98
Code9jibDdCAbX.png 19Кб, 575x346
575x346
>>3357586
Всё очень просто сделать. А ещё есть CMake.
И даже если не хочешь учить − мы в 2025 году живём, кидаешь дерево репозитория в жпт, и она тебе нарисует мейк.
Аноним 09/01/25 Чтв 00:57:40 3358189 553
image.png 1689Кб, 1361x919
1361x919
>>3357586
>cargo build и всё собирается
Раньше нажимали make && make install и тоже всё собиралось.

>за 50 лет наверно можно было додуматься
ты сейчас спрашиваешь вопрос уровня : Почему в момет Большого Взрыва не появились сразу люди?

На момент создани Си и Юникса, не было Ничего. Были отдельно выполненные ОС на языке ассемблера какой-то
конкретной ЭВМ и люди трудились годами перед релизом.
Не было даже текстового редактора. Не было возможности сохранить данные, не было возможности поработать дома над проектом.
Потом появился Си и Юникс. Потом уже люди написали ed, sed, vi и так работали примерно до середины 80х.
Си УЖЕ был на тот момент прорывом.
даже в совке было большой крутизной получить Сишный компилятор на советские машины.
Аноним 09/01/25 Чтв 05:53:19 3358228 554
image.png 11Кб, 257x207
257x207
Аноним 09/01/25 Чтв 14:49:25 3358569 555
>>3358189
>написали ed, sed, vi
На этом этапе уже стоило задумать о сборке больших проектов с сотнями файлов. У меня почему-то такая мысль возникла сразу, как появились другие файлы, кроме main.c, а у них почему-то нет.
Аноним 09/01/25 Чтв 16:48:46 3358680 556
>>3358569
Это потому что ты умный, анон, а они дебилы конченые.
Аноним 10/01/25 Птн 14:42:32 3359212 557
>>3358074
Кочан даже поленился в конце нормальный Makefile привести, так и оставил игрушечный, где надо вручную прописывать .c и .o файлы.
Аноним 12/01/25 Вск 18:36:52 3360511 558
>>3358066
>Так что я ничего плохого не вижу в знаниях, анон.
Поддвачну немного, тоже сначала не понял а зачем так заморачиваться? Хотя у меня были проблемы с девси2плюс, и я не смог вспомнить пароль от антивируса и тут многое обдумал, и решил не возращаться к компилированию через консоль, так как это муторно и отбивает желание к хуям, просто установил кодеблок, с ним нет никаких проблем.
И я к тому что действительно важная тема, а я только щас подумал что это важно. Спасибо за пост и объяснение друг. Вот так вдруг задумался что будет если все-таки встретишься с такой вот проблемой. Спасибо друзья. Я пойду опять обдумывать весь сахар гениев
Аноним 13/01/25 Пнд 00:52:06 3360639 559
Аноны, подскажите в чем прикол структуру через typedef инициализировать?
Чтобы при объявлениях struct не писать(повысить читаемость) или как-то с обратной совместимостью связано?
Аноним 13/01/25 Пнд 05:55:50 3360715 560
>>3360639
>typedef
Бесполезное слово, дедам платили за новые слова в стандарте.
Аноним 13/01/25 Пнд 08:23:14 3360752 561
>>3360715
Ну с указателем на функцию вроде бы смотрится симпатично.

typedef void (V_FP_CHARP)(char );
V_FP_CHARP pfun;

И может иметь место.


Мув же со структурами я как не понимал, так и не понимаю.

typedef struct lens (
float foclen;
float fstop;
char brand[30];
) LENS;

Ведь тут LENS всего лишь заменяет struct lens.
Аноним 13/01/25 Пнд 08:25:06 3360753 562
>>3360752
Звезды проебались, но суть должна быть ясна.
Аноним 13/01/25 Пнд 10:34:02 3360823 563
Есть смысл учить плюсы после сей, для самообразования? С одной стороны в плюсах есть объекты и классы, с другой плюсы это такая говнина что пиздец.
Аноним 13/01/25 Пнд 13:55:24 3361055 564
>>3360823
Если не планируешь ничего писать на С++, то смысла учить нет. Лучше глубже погружайся в си, повышай экспертность в одном языке.
Аноним 13/01/25 Пнд 14:04:40 3361077 565
>>3361055
Я и в Си для продакшена ничего особенно не планировал. Мне просто понравилась вся эта тема с указателями и прочим "средним уровнем", тут дается понимание как устроена память, плюс мне нравится что язык не дает права на ошибку, оставаясь при этом минималистичным. Мне кажется что каждому программисту, вне зависимости от языка, полезно это все знать и уметь. Но вот именно плюсы кажутся потерей времени впринципе.
Аноним 13/01/25 Пнд 14:30:25 3361114 566
>>3361077
Что ты имеешь в виду под средним уровнем?
Аноним 13/01/25 Пнд 14:42:23 3361129 567
>>3361114
Работа с указателями, адресами, выделение и очистка памяти вручную и пр
Аноним 13/01/25 Пнд 14:46:17 3361138 568
>>3361129
Это всё ещё высокий уровень, если с головой уйти в реализация malloc и API взаимодействия с ОСью, можно обратно не выйти, это месяца 3 усердной работы. В плюсах также выделяется память через new, только нет проблем с преобразованием типа данных, ибо malloc войд* возвращает.
Аноним 13/01/25 Пнд 14:48:35 3361145 569
Сорри за может быть неактуальный/тупой вопрос, но кто-нибудь читал учебники Столярова? Есть смысл их читать для изучения CS?
Аноним 13/01/25 Пнд 15:24:25 3361189 570
>>3361145
Прямо сейчас читаю. Классная книжка. Но стоит учитывать, что автор на многие вещи смотрит через чур радикально, поэтому не стоит воспринимать близко к сердцу.
Аноним 13/01/25 Пнд 15:58:36 3361239 571
>>3361189
Ты про введенеие в профессию или какую-то другую книгу?
Аноним 13/01/25 Пнд 16:00:11 3361243 572
>>3360753
А у того чувака звезды не скушались
Аноним 13/01/25 Пнд 16:20:28 3361271 573
Аноним 13/01/25 Пнд 16:25:07 3361281 574
>>3361189
Вкрации посмотрел содержание всех книжек. Если заменить паскаль и tcl на что-то посвежее, то должно быть ок. Разделы введение, асм, си, плюсы и хаскель выглядят интересно.
Аноним 13/01/25 Пнд 16:36:37 3361300 575
>>3361281
>Если заменить паскаль
Сначала прочитай книгу. Автор своё решение обосновывает.
Аноним 13/01/25 Пнд 18:18:36 3361369 576
>>3360823
да, можно поучить. у тебя база есть.
Дальше учишь ООП, STL и будет нормально все.
На плюсах многие вещи уже есть искаропки, потому тебе легче будет освоить.

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

>>3361145
Читал Столярова. Неплохое чтиво, но лучше взять что-нибудь другое.
У Столярова своя методика преподавания - Паскаль, потом си и потом плюсы. Это его видение. Я не осуждаю, но считаю, что если уж ты сишник, то лучше найди в электронном виде Искусство программирования на С или Дейтел и Дейтел "как программировать на Си" что-то такое. У меня бумажная есть урвал.
Еще Язык Си в XXI веке и разные другие штуки, которые помогут тебе в разработке.

Просто по CS тебе было бы лучше поискать книгу Теоретический минимум по CS Владстона Фило. или взять талмуд:
https://is.ifmo.ru/books/2016/digital-design-and-computer-architecture-russian-translation_July16_2016.pdf

Потому что вопросы по архитектуре, прерываниям, MMU и прочее часто задают на собесах.
Аноним 13/01/25 Пнд 18:37:48 3361388 577
>>3361300
>Сначала прочитай книгу. Автор своё решение обосновывает.
Если ты уже знаешь какой-то высокоуровневый язык, то дрочить паскаль необязательно.
Аноним 13/01/25 Пнд 19:29:12 3361426 578
>>3361388
Многие, кто начинал с си, не понимают что такое побочный эффект и откровенные хаки, принятые в си, воспринимают естественными конструкциями. Представление о программировании у них деформированное.
Аноним 13/01/25 Пнд 19:37:58 3361432 579
>>3361426
О чем то подобном слышал, я ещё вспомнил как лет 10 назад нашёл учебник Семакина, там было не всё, но там и паскаль и си и си плюс, неслучайно паскаль обрисован в учебниках, язык это средство получения результата, ану хотя си это для души, в моём случае, я не спешу, занимаюсь когда есть время. Но паскаль явно не случайный выбор некоторых авторов
Аноним 13/01/25 Пнд 20:04:11 3361450 580
>>3361432
Паскаль был создан для изучения программирования
Аноним 13/01/25 Пнд 20:14:21 3361460 581
>>3361432
Неслучайно да, а потом паскаль выбросили на помойку и главным языком для обучения стал пистон. Тоже не случайно.
Аноним 13/01/25 Пнд 20:26:11 3361467 582
>>3361450
Да, спецом привить определённые навыки, и видимо сложит профессиональный характер. Да и язык очень уж благодушный.

>>3361460
Тик ток тоже появился случайно ли? И мышление клиповое появилось не спроста.
Я вот любитель, но есть ведь и профессионалы, пусть си занимаются увлечённые люди, случайные тут не нужны. Без оскорблений в сторону питухона и петухонщиков, я думаю и питонить грамотно надо уметь, но туда идут возможно из-за лёгкого вката не так ли?
Аноним 13/01/25 Пнд 20:35:18 3361472 583
>>3361467
Работа с кучей и с файлами в Паскале отвратительная.
Аноним 13/01/25 Пнд 20:39:30 3361473 584
>>3361472
Жизнь меня научила одному, деньги дают за то что сделать не могут или сами это делать не хотят, вывод: дело - грязная хуйня или сложная хуйня. Научись делать сложное и устанавливай свои ценники. Скажи спасибо себе за терпение и старание
Аноним 14/01/25 Втр 06:10:24 3361645 585
>>3361473
База
>>3361472
Не читал Столярова, но как будто в паскале ты просто привыкаешь к базовым конструкциям: что такое переменная, что такое функция, что такое аргументы функции, области видимости и т.д. И учишься учить язык программирования. Язык-то действительно небольшой.
>>3361460
Пистон учит форматировать свой код.
Пистон не учит программировать.
>>3361369
>Язык Си в XXI
Спрашивал мнение в прошлый раз. Никто в треде не ответил.
Не кажется тебе, что там перебор с рокенролом и черезмерная любовь к макросам? Или в реальном коде обязательно пол программы должно быть устряпано директивами препроцессора и дженериками и без этого сейчас никуда?
Аноним 14/01/25 Втр 09:37:47 3361708 586
>>3361473
>деньги дают за то что сделать не могут или сами это делать не хотят
Деньги дают прежде всего за то, на что есть спрос (что приносит деньги кабанычу), а потом уже сложность влияет на ценник. Приносит паскаль деньги кабанычу? Вопрос риторический.
Аноним 14/01/25 Втр 09:59:12 3361720 587
>>3361708
>Приносит паскаль деньги кабанычу? Вопрос риторический.
Да, приносит.
Рекомендую попутешествовать по областным заводам. Там много некоторого дерьмокода и интересных решений.
Аноним 14/01/25 Втр 11:26:45 3361765 588
>>3361645
>черезмерная любовь к макросам?
Имхо, макросы -важная часть Сишного кода.
можно написать некоторые вещи довольно просто используя макрос.
Да, не во всех проектах макросы уважают, но тот код, который я чинил, часто содержал логирование в виде вариадик макроса, манипуляции с очередью, проверки памяти на NULL или размерность массива (вариации на тему _countof от компании майкрософт)
https://stackoverflow.com/questions/4415524/common-array-length-macro-for-c
Аноним 14/01/25 Втр 12:11:30 3361799 589
>>3361708
>Деньги дают прежде всего за то, на что есть спрос (что приносит деньги кабанычу), а потом уже сложность влияет на ценник. Приносит паскаль деньги кабанычу? Вопрос риторический.
Ст из стандарта мэк, яп для плк на производстве. Вполне похож на паскаль.
Аноним 14/01/25 Втр 12:58:43 3361838 590
>>3361765
Не, у меня нет проблемы с макросами, как таковыми. Хороший инструмент и почему бы и да, когда он в тему.

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

Вот поэтому и созрел вопрос: мейнстрим это или нет?
Аноним 15/01/25 Срд 09:29:22 3362537 591
>>3361300
>Автор своё решение обосновывает.
Автори пишет, что Паскаль в обучении хорош тем, что он с одной стороны является высокоуровневым языком, с другой там есть указатели и для ньюфага это удобный вариант перед изучением в частности Си. Чем его не устроил Go, который тоже высокоуровневый и тоже с указателями и тоже быстро учится хз.
Аноним 15/01/25 Срд 09:38:04 3362547 592
>>3362537
В го полным полно побочных эффектов и подводных камней. Он унаследовал многие "плохие" практики из си, поэтому совсем не подходит в качестве первого языка. Когда я слышу, что рекомендуют учить го новичкам, мне всегда кажется, что это какой-то троллинг.
Ещё го довольно специфический в техническом плане и не позволяет писать многие программы общего назначения. Столяров же использует простые средства стандартной библиотеки Паскаля для работы с текстовой псевдографикой, чтобы заинтересовать новичков красивостями. А что на го? Нужно скачать какую-то "левую" библиотеку с гитхаба, которая работает через пень-колоду, а через пару лет автор может там всё поменять и она перестанет работать. Явно такой подход не для новичков.
Аноним 15/01/25 Срд 09:40:39 3362551 593
>>3362547
Я кстати так и не понял что Столяров понимает под побочными эффектами, на эту тему даже как-то срач был. Он например пишет что любой код на Си будет с побочным эффектам, но на Паскале - нет. Хз почему.
Аноним 15/01/25 Срд 09:49:10 3362564 594
>>3362551
Он про это много пишет вообще-то в своей книге. Там целые разделы посвященны побочным эффектам. В основном там про то, что в си функции вызываются не ради возвращаемого значения, а ради побочного эффекта. В Паскале же для этого используют процедуры. Также все присваивания - это операции, которые возвращают после себя результат присваивания, но их используют как правило ради побочного эффекта - присвоить новое значение переменной:
x = y = z;
Аноним 15/01/25 Срд 15:46:59 3362849 595
помогите?

муравей на нитке проползает на 1 см вперёд, после нить растягивается на 100 самнтиметров. Начальная длина нити 100 сантиметров, позиция муравья 0. Дойдёт ли муравей когда нибудь до конца?

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


https://pastebin.com/TjkWThba
Аноним 15/01/25 Срд 19:09:38 3363097 596
>>3362849
Какое условие ебанное, ты оригинал можешь скинуть? Если это оригинал, то шли автора задачи нахуй, ибо формулировки пиздец ебанные.
Аноним 15/01/25 Срд 20:05:49 3363142 597
image.png 13Кб, 803x516
803x516
>>3362849
Про растяжение пройденного пути не понял вообще, к задаче была приложена картинка или схема хотя бы с пятью первыми итерациями, а то из условия нихуя не понятно. Я буквально так понял задачу.
Аноним 15/01/25 Срд 22:33:54 3363225 598
Эм ладно кто не понял
1. муравью надо пройти 100 сантиметров по прямой, муравей двигается шагами (ходами) по 1 сантиметру, после кажого шага длина нити увеличивается на 100 сантиметров, нить растягивается равномерно, к примеру если муравей прошел 25 процентов пути, 75 сантиметров закинется вперед муравья, 25 назад

2. На первом ходу муравей двинулся вперед на 1 сантиметр, после чего ниь растянулась на 100 см.
Его положение было равно 1/100 относительно конечной точки, значит 99/100 закинется вперед, 1/100 закинется назад, в итоге муравей имеет 2 см позади себя и 198 впереди, очевидно отношение пройденного расстояния к общему после растяжки не меняется

На втором ходу он двинулся еще на 1см, тперь отстоит от края на 3 см и впереди него 197 сантимптров, растягмваем дальше... (Функция мап все делает)


Прогнал через десмос, там на миллиардной иьерации муравей проходит 20 процентов пути, значит скорее всего проблема именно в переполнении и была
Аноним 15/01/25 Срд 22:40:07 3363232 599
>>3363225
А тут разве не через обычную арифметическую прогрессию решать?
Аноним 16/01/25 Чтв 06:55:08 3363377 600
>>3362849
Вот и подросло поколение, которое не слышало про Ахиллеса и черепаху
Аноним 16/01/25 Чтв 08:50:45 3363414 601
image.png 95Кб, 1107x734
1107x734
>>3363377
f(x) = f(x-1) / 2
вот функция черепахи, а там немношко по другому.
Аноним 16/01/25 Чтв 12:24:43 3363546 602
image.png 48Кб, 695x533
695x533
Аноним 16/01/25 Чтв 12:50:30 3363576 603
image.png 52Кб, 713x578
713x578
>>3363546
Даже пусть так будет, а то Си-шные математики меня загнобят.
Аноним 16/01/25 Чтв 13:08:44 3363608 604
image.png 6Кб, 567x112
567x112
image.png 5Кб, 462x125
462x125
он посчитает? или просто зависнет?
Аноним 17/01/25 Птн 05:59:53 3364258 605
>>3363608
>1
У тебя переполнение всего стандарта в 5ой строке.
Аноним 17/01/25 Птн 08:36:58 3364299 606
Аноним 20/01/25 Пнд 16:10:00 3367272 607
Аноны, объясните пожалуйста.

У функции connect() второй параметр - это указатель на структуру struct sockaddr.

При этом фактически в примере я передаю указатель на адрес переменной структуры struct sockaddr_in.

При этом struct sockaddr_in состоит из 3х целочисленных элементов, а struct sockaddr из 2х: одного целочисленного и второго массива типа char.

При этом компилятору норм, функции норм, мануальщикам норм, компам норм, а я нихуя не понимаю, как это должно работать и почему оно так.

Только вычитал, что функция рассчитана, как универсальная для разных Address Family, но как она из sockaddr_in мутирует в sockaddr?
Аноним 20/01/25 Пнд 16:22:54 3367294 608
>>3367272
Дополню еще вопрос.
Нахуя хвост пакуют в массив именно чаров?
Почему просто не взяли понятный указатель на void?
Аноним 20/01/25 Пнд 20:19:56 3367589 609
>>3357586
У makefile есть собственные возможности к шаблонизации, но обычно для генерации конечных сборочных make-файлов используют meson/cmake/xmake/ninja.
Аноним 20/01/25 Пнд 20:25:33 3367593 610
>>3357586
>Почему в других языках пишут: cargo build и всё собирается без изучение отдельного языка для сборщика?
Потому что старые сборочные системы максимально гибкие в силу непонимая у их создателей что людям на самом деле нужно.
А максимальная гибкость достигается описанием сборки кодом.

Примерно с начала нулевых сборочные системы перешли к convention-over-configuration, где гибкость всю замели под коврик и сказали что для сборки ты должен раскладывать файлы проекта особым образом, иначе сборка не сработает.
Аноним 20/01/25 Пнд 21:07:07 3367603 611
image.png 75Кб, 652x750
652x750
image.png 61Кб, 1413x363
1413x363
>>3367272
У меня не компилируется, но вот cppcheck ошибку не выдаёт, очень странно.
Аноним 20/01/25 Пнд 21:30:06 3367607 612
image.png 43Кб, 1258x252
1258x252
image.png 9Кб, 334x287
334x287
>>3367603
>>3367272
А вот в онлайн компиляторе спокойно съел.

Причина есть, мы работает с указателем, адресом памяти, хотя типы данных не совпадают, но для машины, что то адрес памяти размером в длину машинного слова, что то, на уровне асемблера мы можем спокойно обрабатывать его содержимое, только если в неположенную область памяти не зайдём и процесс объявит SG fault.
Аноним 20/01/25 Пнд 22:00:13 3367622 613
image.png 85Кб, 1840x783
1840x783
>>3367272
Держи в дополнение код-приколюху. Плевать на тип, по факту мы работаем с областью памяти и с данными в ней, поэтому всё обработается одинаково.
Аноним 20/01/25 Пнд 22:45:10 3367645 614
>>3367272
Странно, что про void ты знаешь, про асемблер знаешь, про сети знаешь, а вот почему код скомпилировался не мог даже предположить что-ли? Это подозрительно, я считаю, что ты затролил тред и я попрошу модератора забанить твой IPv4(только по IPv6 тебя на двач не пустит, на хроме точно) на пару недель, ибо ты привлекаешь внимание на себя без повода.
Аноним 21/01/25 Втр 08:07:39 3367808 615
>>3367645
Ну чтобы это знать достаточно за пару недель книжку прочитать.
Про ассемблер в реквесте ни слова нет. Хотя на уровне игры Shenzhen I/O я понимаю как он работает. Но это не то.
>>3367603
>>3367607
>>3367622
Спасибо анончик.
Аноним 21/01/25 Втр 08:14:02 3367809 616
>>3367622
А есть предположение почему они именно в чар кладут?
Аноним 21/01/25 Втр 14:11:21 3368082 617
>>3367809
Я не видел реализацию кода, где бы использовался sockadrr_in, поэтому хз, но в теории можно вообще любой указатель передать и кастовать его до нужного тебе типа. char* удобно побайтово обрабатывать из-за специфик адресной арифметики.
>>3367808
Ну, ты силён, асемблер с сетями за пару недель, я до сих пор Си учу.
Аноним 21/01/25 Втр 14:41:06 3368119 618
>>3368082
>Ну, ты силён, асемблер с сетями за пару недель, я до сих пор Си учу.
Ну у меня программирование - это просто хобби. И си я точно также учу.

Сети я знаю по Таненбауму.
Это 2 месяца чтения его книги и этого достаточно, чтобы базово понимать концепцию адрес-порт-сокет.
Прату я читал тоже 2 месяца, потому что конспектировал и с перерывами на сериалы.
Еще месяц упражнения решал.
Всё это учится достаточно быстро, когда есть стремление и время.
Ассемблер я не знаю. Хз почему вы решили, что знаю.

Насчет sockaddr_in: я объебался, потому что приведение типов неправильно прочитал в примере. Там получается в параметр sockaddr передается структура sockaddr_in и она приводится к sockaddr. Короче то же, что ты сделал внутри функции, но на этапе передачи аргументов ей.

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

Такие дела.
Аноним 21/01/25 Втр 15:07:05 3368160 619
>>3368119
Молодость это классно, завидую.
Аноним 21/01/25 Втр 19:55:40 3368412 620
>>3368119
Тебе 16 лет? Достойный выбор литературы, далеко пойдёшь, удачи в начинаниях.
Аноним 22/01/25 Срд 09:06:30 3368703 621
>>3368412
Спасибо, анон. Приятно, что ты одобрил.
Аноним 22/01/25 Срд 14:27:03 3369009 622
Аноним 23/01/25 Чтв 09:44:57 3369706 623
>>3369009
Нигде. Я же написал, что это хобби.
Аноним 25/01/25 Суб 15:34:57 3371910 624
Sup /pr/.
Есть задачка по С. За деньги, уровня арканоида. Пишите фейкомылы, обсудим, если фрилансерам интересно.
Аноним 25/01/25 Суб 15:43:55 3371924 625
>>3371910
Или пишите на @deform91
26/01/25 Вск 20:06:18 3373105 626
Аноним 28/01/25 Втр 10:48:43 3374404 627
image.png 45Кб, 1170x705
1170x705
собой доволен
Аноним 30/01/25 Чтв 10:15:53 3376240 628
крч было так:
array = (array >> 1) | (0b10000000*carry_previous)

carry_previous либо 0 и бит не добавляется, либо 1 и бит соответственно меняется

но чат ГПТ не унимается, утверждая что умножение это не очень эффективно и правильнее делать так:
array = (array >> 1) | (0b10000000 & (carry_previous << 7) )

я как хороший мальчик всё привык делать правильно, но второй эстетически не очень, послушать чат или оставить как было?
Аноним 30/01/25 Чтв 12:07:16 3376332 629
>>3376240
>бит
Причина битоебства?
Аноним 30/01/25 Чтв 12:21:34 3376356 630
>>3376240
Ну можешь часть примера ГПТ завернуть в промежуточную переменную. Компилятор её потом всё равно оптимизирует, а читаемость сохранится, хоть и будет на строчку кода больше.
Аноним 30/01/25 Чтв 13:22:16 3376409 631
>>3376332
пишу игру, где можно направо и налево флексить характеристиками персонажа, закиданными в массив
Аноним 30/01/25 Чтв 14:01:11 3376430 632
>>3376240
Битовые операции быстрее умножения.
Только я бы вообще заменил на
array = ( array >> 1 ) | ( carry_previous << 7 )
Аноним 30/01/25 Чтв 14:04:47 3376437 633
>>3376430
> array = ( array >> 1 ) | ( carry_previous << 7 )
реально, чёто я затупил
Аноним 30/01/25 Чтв 14:08:20 3376440 634
>>3376437
Это ирония?
А тебе сколько лет? Почему с маленькой буквы пишешь? На бордах так не принято.
Аноним 30/01/25 Чтв 14:09:47 3376442 635
>>3376440
с большой буквы писать признак внутренних комплексов
Аноним 30/01/25 Чтв 14:11:04 3376445 636
>>3376442
Окей, но старайся равняться на остальных, мне неприятно читать сообщение, которое начинается с маленькой буквы.
Сколько лет то?
Аноним 30/01/25 Чтв 14:12:03 3376447 637
>>3376445
извиняюсь, больше конкретно вам писать не буду, мне 25
Аноним 30/01/25 Чтв 14:15:38 3376449 638
>>3376447
А по первому впечатлению — 15.
Удачи в изучение Си.
Аноним 30/01/25 Чтв 14:16:29 3376452 639
>>3376449
15 намного лучше чем 25
Аноним 30/01/25 Чтв 14:21:10 3376455 640
>>3376452
Да, но прийти к выводу, что
> array = ( array >> 1 ) | ( carry_previous << 7 )
очевидно лучше
> array = (array >> 1) | (0b10000000 & (carry_previous << 7) )
почему-то не способны.
Хотя неудивительно, использование трансформеров для написания кода в начале изучения языка уже говорит о многом.
Аноним 03/02/25 Пнд 10:37:17 3379473 641
какие библиотеки для удобной работы со строками в си считаются наилучшими?
Аноним 03/02/25 Пнд 12:23:37 3379542 642
>>3379473
А что тебе нужно? Обработка с использованием регулярных выражений или что?
Да не пиши ты с маленькой, пожалуйста.
Аноним 03/02/25 Пнд 20:23:31 3379970 643
Аноним 03/02/25 Пнд 20:33:35 3379983 644
>>3379970
И чтоб с юникодными строками можно было удобно работать.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов