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

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

Ответить в тред Ответить в тред
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 208 27 99
C Programming Language #73 /clang/ Аноним 08/07/22 Птн 12:50:30 2399452 1
TheCProgramming[...].jpeg 7Кб, 180x165
180x165
magnetic-core19[...].jpeg 124Кб, 1920x1080
1920x1080
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

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

Что читать:
- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)
- Стандарт ISO/IEC 9899:2011 (C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2479.pdf (февраль 2020, с диффами)
- Последний черновик 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

Онлайн-утилиты:
- №70: http://arhivach.net/thread/713839/
- №71: http://arhivach.net/thread/727405/
- №72: >>2245329 (OP) (OP)
- №73: >>2297526 (OP) (OP)
Аноним 08/07/22 Птн 23:08:52 2400221 2
Уронил дегенерату на голову ферритовый кубик. Номер треда старый.
Аноним 09/07/22 Суб 01:15:34 2400265 3
Блять, еще и с разметкой обосрался, ну пиздец просто
Аноним 09/07/22 Суб 06:11:53 2400317 4
есть видеокурсы нормальные какие-нибудь? собираюсь на торренте купить, а то из книжек с нуля даже хз что выбрать
Аноним 11/07/22 Пнд 13:04:57 2402453 5
Аноним 13/07/22 Срд 04:55:45 2404150 6
Что правильно (или лучше) делать, когда нужно получить несколько значений (в общем случае - разных типов) от функции? Запаковать в структуру на хипе и через указатель возвращать её с последующим высвобождением памяти в вызывающем коде? Звучит по-уебански, но ничего лучше я не придумол

репост из конкурирующего треда
Аноним 13/07/22 Срд 09:47:22 2404194 7
>>2404150
Я сварщик не настоящий, но почему бы не использовать глобальные переменные?
Аноним 13/07/22 Срд 10:35:17 2404207 8
Аноним 13/07/22 Срд 10:36:58 2404209 9
>>2404207
А стоп, это же си тред, тогда только структуру.
Аноним 14/07/22 Чтв 19:20:36 2405456 10
>>2404150
Почему не модернизировать переменную по указателю? Всю жизнь с си так делал и жив.
Аноним 17/07/22 Вск 15:13:06 2407847 11
Бля я не понимаю си.
Ну прочёл я Кернигана ебаного.

Че мне функции из головы что ли придумывать каждый раз?
Аноним 17/07/22 Вск 15:17:56 2407855 12
Ну хорошо придумал функции sumTwoFuckingaNumbers
сложил два числа блять
А как мне написать что-то годное?
Например типо снифера или кваки
Где этот промежуточный материал брать?
Из крс книги вообще ничему не научишься лол
Аноним 17/07/22 Вск 15:42:45 2407872 13
>>2407855
Из кода. Берешь хороший код и учишься. Неинтересно - встаешь на кассу.
Аноним 17/07/22 Вск 18:36:08 2408058 14
>>2407855
>>2407847
Поэтому вам и говорят, что нужно учить не язык, а программирование и конкретную предметную область. Чем тебе поможет знание языка, если ты не сможешь его применить по причине своего незнания? Для начала ты должен формализовать задачу, построить архитектуру приложения, найти/составить модели, которые будут решать твои проблемы, а только потом садиться за код. Т.е. написание кода в работе программиста - это 5-10% от его общей работы. Для начала все строится на бумаге.
Аноним 17/07/22 Вск 21:59:47 2408267 15
>>2400317
Есть норм челик какой-то, который пояснял на конфе про то, почему он пользует няшную + демонстрирует всякие свои трюки, например, про макросов на memalloc/dealloc, чтобы находить проблемные места с управлением памятью на этапе разработки. Курсы наверное нахуй не нужны раздобудь копию стандарта n1256.pdf и ещё читни на досуге книжку Ритчи и Peter Linden Deep C Secrets.
Аноним 17/07/22 Вск 22:21:59 2408282 16
>>2407847
>Че мне функции из головы что ли придумывать каждый раз?
Я в школе программировал 5 лет, написал кучу программ, игр, всяких опытов провел, но так и не понял зачем нужны функции, ни разу функции не использовал, какая-то мутная непонятная хуйня. А потом дошли руки до си и там сплошные эти функции, и вопроса не возникло, всё естественно как воздух. Так что функции лишь плод си-подобного синтаксиса, на самом деле нахуй не нужны для программирования, ведь это математическая концепция, а программирование не математика. Си заставляет лепить эту функцию main() (говно если честно, за такое надо бы по ебалу бить), так что от этого не уйти, но дальше функции не нужны, а если понадобятся, сам узнаешь, ведь понять их в си труда не составляет.
18/07/22 Пнд 06:14:46 2408556 17
>>2408282
>Си заставляет лепить эту функцию main() (говно если честно, за такое надо бы по ебалу бить)
на джаве только не пытайся писать, там тя вообще инсульт хлопнет
а вообще жырновато - даже в олимпиадном дрочении у меня без функций жепа скрипела поначалу да, тоже не сразу выучил, что меня выдало?
Аноним 18/07/22 Пнд 10:23:41 2408621 18
>>2408556
Джава, шарп и подобное это макакины языки, код абстрактный, плевать, да и они лишь скопированы с си.

А вот с си немного обидно, неплохой, реальный язык, но вот эта тяга автора в говноматематике там где она не нужна, раздражает. Напоминает хаскел, рак примерно схожей природы, насильное пихание математики. И не только форсом main(), но и вообще функций, даже подпрограммы (процедуры) выполнены в виде функций. Это особенно опасно для учебы, когда такое дают людям без представления о программировании, у них складывается впечатление, что программирование это сплошные функции, когда на самом деле наоборот, функции имеют весьма узкое применение, лишь в своей околоматематической области. Отсюда возникают дебильные, очень распространенные вопросы вроде "как вернуть несколько значений". Потому что к голову насрали чужеродной программированию парадигмой. Такое надо давать когда человек уже имеет правильное представление, а не с нуля шизу воспитывать.
Аноним 18/07/22 Пнд 12:33:28 2408745 19
>>2408621
Да, правильно, нахуй эти функции нужны,то все для ученых в говне моченых. Мы люди простые, просто копипастим код, когда нужно и пишем портянки.
Аноним 18/07/22 Пнд 12:44:52 2408755 20
Продублирую здесь.
Пишу свой двухколёсный дебаггер. Вот есть процесс, ему соответствует программа и слинкованные с ней в рантайме библиотеки (libc, ld и прочее); сегменты программы загружены в выделенную процессу память, библиотеки отображены и я всю эту красоту могу наблюдать в /proc/{pid}/maps.
Всё, что мне нужно сделать, это найти запись в таблице символов файла программы/библиотеки по адресу вызванной функции. Я парсю инфу о сегментах из /proc/{pid}/maps, смотрю, какой сегмент соответствует адресу функции и для соответствующего имени файла с помощью libelf подгружаю нужные мне заголовки.
Дальше это работает так:
https://pastebin.com/0rLUpUWF
(код сырой; на данном этапе нужно было, чтобы это просто работало)
data содержит маппинг файла программы/библиотеки, addr = адрес_функции - адрес_сегмента.
Для самого executable код вроде работает, но не для слинкованных с ним либ. Что я упускаю?
Аноним 18/07/22 Пнд 14:31:12 2408835 21
Аноним 18/07/22 Пнд 22:43:18 2409349 22
>>2408621
> А вот с си немного обидно, неплохой, реальный язык, но вот эта тяга автора в говноматематике там где она не нужна, раздражает. Напоминает хаскел, рак примерно схожей природы, насильное пихание математики. И не только форсом main(), но и вообще функций, даже подпрограммы (процедуры) выполнены в виде функций.
Не понял, кто в этом виноват: автор учебника или языка?
> Это особенно опасно для учебы, когда такое дают людям без представления о программировании, у них складывается впечатление, что программирование это сплошные функции, когда на самом деле наоборот, функции имеют весьма узкое применение, лишь в своей околоматематической области.
Любая подпрограмма - бесплатная функция. Это круто.
> Отсюда возникают дебильные, очень распространенные вопросы вроде "как вернуть несколько значений".
Это не дебильный вопрос. Это родовая травма языка, где нельзя fun x = (x,x)
Аноним 19/07/22 Втр 03:10:39 2409470 23
>>2409349
>Это не дебильный вопрос. Это родовая травма языка, где нельзя fun x = (x,x)
Почему сложно вернуть структуру, она будет один хуй у колера на стеке.
Аноним 19/07/22 Втр 07:51:21 2409501 24
>>2409470
В нормальных языках не нужно вводить для этого тип: ты просто возвращаешь N значений через values или (,,,).
Аноним 19/07/22 Втр 08:42:53 2409517 25
>>2409501
>В нормальных языках
Пиши на них, в чем проблема?
Аноним 19/07/22 Втр 09:45:51 2409552 26
>>2409349
>Не понял, кто в этом виноват: автор учебника или языка?
Виноват автор языка (частично) и авторы образовательных программ дающих си как учебный язык.
А так же виноваты их жертвы:
> функция. Это круто.
> fun x = (x,x)
вот такие промытые математутки головного мозга. Круто - не значит правильно.

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

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

Поэтому, по своему предназначению, си - подходящий язык для учебы, однако на практике это не так. Си - не является учебным языком, это утилитарный язык для работы, поэтому автор счел правильным достаточно серьезно исказить его парадигму (завязка на функциях) ради практического удобства применения. Но это искажение вредно для учебы, дает искаженное осознание что такое программирование, скрывает за собой парадигму компьютера, которую обучающийся должен знать в первую очередь, т.к. она является основой - реальна, в отличие от прочих виртуальных.
19/07/22 Втр 09:55:03 2409559 27
>>2409552
Ебать шиза. Хейтер функций. Пиздец сказали бы - не поверил что такие поехавшие существуют.
Аноним 19/07/22 Втр 11:58:45 2409661 28
>>2409552
>Си - не является учебным языком
В книжке Кнута учебным является MIXASM )) Кому ты пиздишь Кнуту, мне или Иисусу?
Аноним 19/07/22 Втр 12:58:21 2409708 29
>>2408282
>Я в школе программировал 5 лет, написал кучу программ, игр, всяких опытов провел, но так и не понял зачем нужны функции, ни разу функции не использовал
На GW-Basic что ли программировал?
19/07/22 Втр 14:08:29 2409770 30
Аноним 19/07/22 Втр 16:28:21 2409950 31
image.png 806Кб, 2608x1911
2608x1911
image.png 124Кб, 720x634
720x634
>>2409661
>В книжке Кнута учебным является MIXASM
Значит Кнут был не дураком как сейчас преподы задающие си и подобные языки. Ассемблер действительно то что нужно, почти. Недостаток его излишняя громоздкость и зависимость от железа и ОС, что делает его неприменимым на практике. А виртуальный еще хуже, оторванный от реальности теоретический самодроч, демотивирующий нормального человека. Нужен просто нормальный язык похожий по структуре на ассемблер. А вот когда человек допрет что такое нормальное программирование, потом можно давать эти фигурные блоки и прочую поебень, да хоть ФП давай, уже не критично, главное человек поймет, что это всё лишь рюшечки.

Но это лишь рассуждения базирующиеся на доброй воле. В реальности, рапример, правящие структуры могут быть заинтересованы плодить тупых макак, поэтому специально дают виртуальные языки, чтобы быдло оставалось в неведении о настоящем функционировании компьютера. Ограничение доступа, как говорится. Ну и тому подобное, вариантов много, не суть.
Аноним 19/07/22 Втр 16:37:22 2409960 32
>>2409950
Поэтому для обучения Паскаль используют. Мистер Столяров, вы?
Аноним 19/07/22 Втр 16:43:16 2409971 33
>>2409960
До сих пор? Слабо верится. Что-то не видно тредов по паскалю с домашкой, все на си.
Аноним 19/07/22 Втр 16:54:52 2409980 34
>>2409950
Узнаю тон общения, упрямство, тупость и неумение читать поехавшего борца с абстракциями из предыдущего треда. Ты, хуйня? Может примешь наконец таблетки и перестанешь засорять треды своими "оригинальными" идеями?
Аноним 19/07/22 Втр 16:55:54 2409982 35
>>2409960
Паскаль не о том вообще, он учит восе не программированию, паскаль учит высокоуровневому коду в стиле энтерпрайз, жестко форсит рамки "хорошего стиля". Это чисто прикладной аспект на более позднем этапе этапе обучения. А я говорил о первоначальном обучении именно основам программирования, они должны быть низкоуровневыми (в плане парадигмы), отсюда стиль ассемблера. Это не имеет ничего общего с энтерпрайз-кодом.
Аноним 19/07/22 Втр 18:35:57 2410064 36
>>2409982
>паскаль
>энтерпрайз
Мы точно про один и тот же паскаль говорим?
Аноним 19/07/22 Втр 18:57:01 2410085 37
>>2409950
>Оторован от реальности
Так и ассемблеры твои тоже оторваны от реальности нахуй.
Аноним 20/07/22 Срд 01:33:27 2410411 38
>>2410085
реальности вообще не сущесвтует
солипсист в треде все в симулякры
Аноним 20/07/22 Срд 09:44:25 2410529 39
>>2410411
>реальности вообще не сущесвтует
В 99.99% случаев так и есть, потому что большинство людей - идиоты, а значит живут в манямирке. Для идиотов реальности не существует, их реальность построена их шизой. А настоящую, реальную реальность, видят только мудрые люди, но таких очень-очень мало.
Аноним 20/07/22 Срд 14:17:48 2410759 40
>>2410411
Не знаешь матчасти
@
Начинаешь пиздобольствовать и философствовать
Аноним 20/07/22 Срд 18:36:25 2410966 41
>>2409552
Нуээ, если задача стоит обучить спецов программировать железо, то надо им давать какой-нибудь здравый ассемблер (мипс) и потом полировать это си как удобным макроассемблером. А если надо обучить решать задачи на компьютере, то незачем эти ассемблеры (1% сам придет к этому), пусть мыслят в терминах zip, join, регулярочки.
Аноним 20/07/22 Срд 19:06:53 2410990 42
>>2410966
>если задача стоит обучить спецов программировать железо
Нуээ, ты говоришь с позиции дрессировки жикотных на определенное занятие, айти-макакинг. В этом смысле ты говоришь верно - что нужно, тому и надрачивают, просто затачивают специализированный инструмент. И уже не важно чему конкретно учат, подход один.

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

Понимаешь, эти два подхода совсем разные. Если с нуля пичкать макакингом, коверкается разум и к нормальному программированию сложно будет прийти.
Аноним 20/07/22 Срд 19:28:00 2411002 43
>>2410990
> А я говорю с позиции давания правильного понимания программирования думающим людям с головой на плечах, так что это знание становится основой их дальнейшего развития, без особой привязки к направлению.
А что такое правильное понимание и зачем оно.
> Основание - предположение что язык си (данный тред) для такого существует, как техническая специальность, а не как офисный макакинг.
Язык не специальность.
> Понимаешь, эти два подхода совсем разные. Если с нуля пичкать макакингом, коверкается разум и к нормальному программированию сложно будет прийти.
Можно с тем же успехом исковеркать разум битоверчением.
> к нормальному
Ну вот опять. Умение решать задачи на ЯВУ (не си) оказалось макакингом и ненормальным программированием.
Аноним 20/07/22 Срд 22:02:56 2411155 44
>>2411002
>А что такое правильное понимание и зачем оно.
>>2409552
Всё исчерпывающе расписано, читай. Или если не можешь, не отвечай, это не диалог.
Аноним 21/07/22 Чтв 17:56:47 2412025 45
>>2405456
>>2405456
>не модернизировать переменную по указателю?

Т.е. сделать структуру с нужными значениями и передавать её по указателю? Хорошая идея, учитывая, что объект в моём случае будет на стэке. Точно лучше кучи и глобальных переменных.
Аноним 28/07/22 Чтв 02:36:49 2418169 46
Хелпаните по сокетам.
Есть несколько адресов и один порт. На все это дело шлется udp инфа с сервера, и есть клиент который читает данные с этих сокетов каждый в отдельном треде
Че я делаю: создаю для каждого треда отдельный сокет, ставлю setsockopt опцию реюза для порта, бинжу адрес INADDR_ANY и моим портом, потом ставлю setsockopt опцию с адресом уже конкретным
Собсно я че то не так делаю или в логике какая то проблема? Потому что у меня каждый тред читает все адреса вместо одного конкретного
Аноним 30/07/22 Суб 00:02:56 2419537 47
16567036063550.jpg 28Кб, 334x506
334x506
Аноним 30/07/22 Суб 11:33:42 2419734 48
>>2419537
А по раньше написать не мог? Странная хуйня вообще, я же в следующих строчках подписываюсь на разные мулькаст группы, он не должен ничего читать с any
По крайней мере поведение такое, что одиночный сокет не читает инфу с забинженнным адресом any или конкретным и не подписанным на группу, а два подписанных на конкретные группы с забинженным any читают все подряд
Довольно противоречиво устроено, не?
Аноним 31/07/22 Вск 06:28:41 2420569 49
Это тред про аниме? Не подскажете, хочу записывать события с устройства ввода, затем немного изменяя их отправлять окну программы, ах да, система X11. Смогу я это всё сделать средствами xlib? Или лучше записывать через usbmonitor и делоть драйвер, эмулирующий устройство ввода?
Аноним 02/08/22 Втр 21:03:31 2422929 50
char someArray[const]
Серьезно?
Аноним 02/08/22 Втр 21:33:48 2422954 51
>>2422929
>Серьезно?
Что не так?
Аноним 02/08/22 Втр 21:55:40 2422980 52
>>2399452 (OP)
Пердиксы дореволюционные, как оно пишется на этом древнем говне в 2022м году?
Аноним 02/08/22 Втр 22:03:31 2422991 53
>>2422980
На этом "древнем говне" до их пор пишутся драйвера и прошивки, чтобы ты своих гномиков мог по экрану гонять.
Аноним 02/08/22 Втр 22:26:44 2423013 54
Аноним 02/08/22 Втр 23:28:44 2423034 55
>>2422954
Даже при том, что я знаю про прикол a и [a]i, никогда бы не подумал, что именно там написано.
Аноним 02/08/22 Втр 23:31:05 2423035 56
Аноним 02/08/22 Втр 23:35:03 2423037 57
Аноним 02/08/22 Втр 23:39:18 2423041 58
>>2423035
Точнее так
void foo(char someArray[const])
Аноним 02/08/22 Втр 23:45:45 2423042 59
>>2423041
Хабр сегодня читал?
Аноним 02/08/22 Втр 23:46:12 2423043 60
>>2423041
>>2423037
Так, а возмущение в чем? Лично я ничего криминального не вижу.
Аноним 02/08/22 Втр 23:48:11 2423044 61
Аноним 02/08/22 Втр 23:52:36 2423046 62
image.png 80Кб, 251x201
251x201
Требую пикрил в шапку.
Аноним 03/08/22 Срд 00:05:04 2423051 63
>>2423044
Так, что понятно. Ты можешь человеческим языком обьяснить?
Аноним 03/08/22 Срд 00:08:34 2423054 64
Аноним 03/08/22 Срд 00:18:53 2423066 65
>>2423054
Бля, не пойму что не так. Или ты думаешь, что const к типу относится, лол? В данном примере const - это переменная, скорее всего, целочисленного типа. В Си констранты только через #define определяются. Замени const на любое другое название в своем примере и ничего не изменится.
Аноним 03/08/22 Срд 00:48:23 2423087 66
Аноним 03/08/22 Срд 00:51:54 2423092 67
>>2422929
Ты к нам с курсов яндекса пожаловал или че?
Аноним 03/08/22 Срд 02:17:59 2423103 68
dfdfff.png 12Кб, 798x498
798x498
Господа, проблема следующая: в коде под линух меня заебало под каждым вызовом linux api функции (read, write, send, recv, select и тп) вставлять проверку на errno == EINTR (прила юзает setitimer(), поэтому эти EINTR реально происходят)
Мне бы хотелось написать универсальную враппер-функцию, которая в качестве аргумента будет получать адрес адрес linux api функции, вызывать её с переданными параметрами (разное количество), проверять результат на -1 и если errno == EINTR то вызывать заново.
Трабла в том, что я не понимаю как неизвестное количество аргументов во враппере прокинуть в вызываемую api функцию
Это вообще реально сделать не используя макросы ?
Аноним 03/08/22 Срд 04:30:13 2423121 69
1523069502422.png 16Кб, 1235x109
1235x109
>>2423066
>Или ты думаешь, что const к типу относится, лол?
Представь себе, именно об этом и пост. Серьезно?
Аноним 03/08/22 Срд 08:28:47 2423167 70
>>2423103
Автор виснущего говна, ты?
Испольщуй маски и SA_RESTART
Аноним 03/08/22 Срд 12:44:26 2423323 71
>>2423121
Пиздец, никогда такой ебалой не пользовался. Век живи, век учись.
У тебя указатель на массив carray получается константным, а вот carray[] уже изменять можно.
Аноним 03/08/22 Срд 14:00:01 2423405 72
>>2423103
Я бы несколько inline функций сделол вида eintr_wrapper_n, где n - число параметров, или подобные макросы если <C99, и не ебал бы мозг с типо красивым решением. Просто и понятно.
Аноним 03/08/22 Срд 19:14:50 2423824 73
>>2423323
Это ведь кал из С99? Там еще можно char a[static 3]
Аноним 03/08/22 Срд 21:57:46 2424045 74
>>2423167
Забыл добавить, что этот враппер в случае выпадения из api по EINTR вызывает функцию, которая чекает флаги, устанавливаемые обработчиками сигналов и выполняет определенные действия, поэтому сигналы с SA_RESTART не катят. Мне нужно ловить эти моменты с EINTR и вызывать ProcessSignals()
>Автор виснущего говна
Причем тут "виснущего говна", хочешь сказать что вызов API может начать бесконечно нонстопом выкидывать EINTR ? Схуяли?
>>2423405
Мм, ну тогда уже проще один макрос с ##__VA_ARGS__ сделать
Аноним 04/08/22 Чтв 07:18:57 2424238 75
Анон, скажи, как в Си корректно без Undefined Behaviour прочитать данные по адресу 0?
Приведение нуля к указателю: int p = (int )0x0; приводит к тому, что такой указатель становится нулевым. По стандарту разыменование нулевого указателя вызовет Undefined Behaviour.
Я правильно понимаю, что средствами языка Си без Undefined Behaviour невозможно прочитать данные адресу 0x0000?
Если что, то по адресу 0x0000 находится таблица векторов прерываний.
Аноним 04/08/22 Чтв 08:26:32 2424244 76
>>2424238
По стандарту NULL не обязан физически состоять из одних нулевых бит, а что должно находиться по адресу 0 зависит от процессора и его режима работы.
А так можешь поиграться с mmap_min_addr
Аноним 04/08/22 Чтв 08:55:56 2424248 77
>>2424238
Это физический адрес. Смотри на /dev/mem
Аноним 04/08/22 Чтв 12:40:45 2424507 78
>>2424244
>По стандарту NULL не обязан физически состоять из одних нулевых бит
По стандарту присваивание указателю нуля делает его нулевым указателем. А нулевой указатель не может быть разыменован без ЮБ. Следовательно, невозможно написать корректную программу на Си для чтения данных по адресу 0.
Аноним 04/08/22 Чтв 20:25:09 2424869 79
>>2424507
>Следовательно, невозможно написать корректную программу на Си для чтения данных по адресу 0.
Можно.

int ∗v = ∗(int ∗)NULL;
и
int ∗v = ∗(int ∗)0;

Это 2 разных кода, которые делают разные вещи.
Аноним 05/08/22 Птн 03:29:51 2424927 80
>>2424869
>Это 2 разных кода, которые делают разные вещи.
Нет, одинаковые. В обоих случаях на выходе получаются нулевые указатели.
Аноним 05/08/22 Птн 13:00:03 2425122 81
>>2424927
>В обоих случаях на выходе получаются нулевые указатели.
NULL не является указателем на нулевой адрес.
Аноним 05/08/22 Птн 13:11:02 2425130 82
Capture.PNG 2Кб, 160x69
160x69
>>2424869
>Это 2 разных кода
Одинаковый код.

И проблемы нет. Если адрес 0 есть, он разыменуется, иначе будет ошибка доступа например.
Аноним 05/08/22 Птн 13:28:05 2425143 83
А вы можете решить задачку на палиндром?
Аноним 05/08/22 Птн 13:29:08 2425145 84
>>2425130
Ты наверное думаешь что и char везде 8 бит?
Аноним 05/08/22 Птн 13:30:04 2425146 85
>>2425143
Я уже решил на крестах, однострочник.
Аноним 05/08/22 Птн 13:48:24 2425162 86
>>2425146
Вы приняты, оставайтесь на линии.
Аноним 05/08/22 Птн 18:45:41 2425663 87
>>2425122
Не важно чем там является NULL.
Присваивание нуля значению указателя на выходе даёт нулевой указатель. У нас никак не может получиться нулевой адрес, потому что присваивание нуля на выходе всегда превращает указатель в нулевой.
>>2425130
Код одинаковый, но проблема есть: разыменовании нулевого указателя — это UB.
Аноним 05/08/22 Птн 19:06:13 2425696 88
>>2425663
>проблема есть: разыменовании нулевого указателя — это UB.
В чём заключается проблема?
Аноним 05/08/22 Птн 19:11:09 2425703 89
>>2425696
Я хочу написать программу программу на Си без UB, которая читает данные по нулевой адресу.
Однако средствами Си сделать это невозможно.
Аноним 05/08/22 Птн 19:31:08 2425717 90
>>2425663
>>2425696
>>2425703
Ситред август 2022 года, аноны не знают определение NULL и чем он отличается от 0.
Аноним 05/08/22 Птн 19:33:29 2425719 91
>>2425703
Я не спрашивал о желаниях, а спросил в чём заключается проблема.

Если что,
>"я захотел <что-то>, и невыполнение сего это проблема"
нет, это не проблема.
Аноним 05/08/22 Птн 22:44:18 2425866 92
>>2425717
Проиграл.

мимо 1сник
Аноним 10/08/22 Срд 12:31:00 2429602 93
Как правильно аллоцировать память для многомерного массива? Я конечно понимаю, что всё в общем случае есть смежный/разреженный одномерный массив, и потому можно взять n1 x n2 x .. x nk памяти. Но ведь нужно ещё куда-то указатели нижних порядков записывать.
Аноним 10/08/22 Срд 18:34:30 2429869 94
>>2429602
>Как правильно аллоцировать память для многомерного массива?
Для маленьких кусков памяти malloc(a b ... * z).
Для больших кусков памяти malloc(a) for (i < a) malloc(b) for (j < b) ...
Аноним 10/08/22 Срд 18:35:05 2429870 95
Аноним 10/08/22 Срд 19:07:17 2429887 96
Аноним 11/08/22 Чтв 09:11:31 2430260 97
>>2429887
Прверь пути в свойствах.
Аноним 11/08/22 Чтв 11:57:36 2430346 98
Объявляем матрицу 3х3 (к примеру)


int A[3][3] = {...};

main (){

/∗
передаём массив в функцию func (int∗∗, ...)
∗/
func (A,...);

}


Проблема: если в gdb просто вывести (int∗∗)A, то получим некоторый указатель. Если разыменовать как A[0],
то получим тот же (!!) указатель. А если ещё раз разыменовать A[0][0], то как и должно
быть получим нулевой элемент матрицы. Я нихуя не понял эти чудеса, лол.

Если уже в самой функции разыменовать A как (int∗)(A[0]), то получим невалидный указатель,
скастованный из элементов первого ряда матрица
Аноним 11/08/22 Чтв 12:11:20 2430361 99
>>2430346
Все вроде верно.
А[0] это первый указатель на массив из трёх интов.
Почему не валидный, там и должен быть первый ряд.
Аноним 11/08/22 Чтв 12:33:14 2430387 100
Screenshot(1).png 37Кб, 452x140
452x140
>>2430361
Непонятно то, что A в мэйне указывает сам на себя. Т.е. A указывает и на начало всего массива из девяти элементов, и сам на себя. Приэтом A[1], A[2] это указатели на два других ряда. Я наверное совсем не понял, как работают декларации многомерных массивов.
Аноним 11/08/22 Чтв 12:50:26 2430406 101
>>2430387
Да, наверное, всё так и есть. A[][n] это не тоже самое, что и ∗∗A.
В первом случае, как я и понял, это начало смежного одномерного массива, который компилятор рассматривает как n равноразмерных массивов; а во втором случае - указатель на массив указателей, которые в свою очередь указывают на одномерные массивы и необязательно смежные.
В чём я не прав?
Аноним 11/08/22 Чтв 14:34:55 2430509 102
>>2430361
Это одна из особенностей языка Си, что "матрицу", размещенную в стеке, надо в заголовке функции прописывать как A[][M], то есть количество столбцов должно быть константой, а вот на количество строк может быть любым, лишь бы памяти хватило. А вот если бы ты память аллоцировал для указателя int A, то подобное бы сработало, почему так, если честно не знаю, интересно бы было послушать экспертов
Аноним 11/08/22 Чтв 15:12:01 2430547 103
>>2430387
>Т.е. A указывает и на начало всего массива из девяти элементов
Из трёх. У тебя массив из трёх массивов. Т.е. реально у тебя в памяти 4 массива, три с интами, и один с указателями на эти три.
Аноним 11/08/22 Чтв 15:40:31 2430562 104
>>2430509
>надо в заголовке функции прописывать как A[][M], то есть количество столбцов должно быть константой,

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

>>2430547
>и на начало всего массива из девяти элементов

Я имею ввиду, что int A[][3] указывает на начало непрерывного массива из девяти целочисленных элеметов, а не указателей.

>Т.е. реально у тебя в памяти 4 массива, три с интами, и один с указателями на эти три.

Ну если верить отладчику, то нет. Только указатель и девять элементов int. А вот для int ∗∗, будет всё именно так, как ты описал.
Но декларировать матрицы таким образом не получится. Придётся брать память и хранить где-то размеры матрицы.
Вообщем как я понял A[][] это больше для компилятора, в рантайме никакого массива с указателями не ряды не будет.
Зато такой способ должен экономить память, поскольку есть только один массив и указатель на него, внезависимости от многомерности.
Аноним 11/08/22 Чтв 17:51:02 2430709 105
твиттер-6124395.jpeg 101Кб, 811x967
811x967
>>2430562
> Это же проблема или нет? Ведь тогда сигнатуру функции, работающий с матрицами нельзя сделать под параметризируемый размер

Но можно же передавать одномерный массив типа A и две переменные, n и m, а потом умножением соответствующих индексов получать место, которое занял бы элемент в двумерном массиве...
Аноним 11/08/22 Чтв 17:55:41 2430714 106
>>2430709
> а потом умножением соответствующих индексов получать место, которое занял бы элемент в двумерном массиве.
A[1][2] и A[2][1] будут на одну и ту же ячейку памяти указывать...
Аноним 12/08/22 Птн 12:39:22 2431447 107
>>2425717
Махровый сишник с бородой не знает что такое макросы и верит в разницу между нулевым указателем и нулевым указателем.
Аноним 12/08/22 Птн 19:00:42 2431942 108
Аноним 12/08/22 Птн 20:10:22 2432014 109
>>2425717
>не знают определение NULL

#define NULL 0
Аноним 13/08/22 Суб 11:14:22 2432358 110
>>2432014
> #define NULL 0
Вот именно
И этот сишник с чего‐то вдруг решил, что есть разница между:
int p = NULL
int
p = 0
И говорит, что второе — это нулевой адрес. В этих двух случаях на выходе возникает нулевой указатель.
На си мы в принципе не можем получить нулевой адрес.
Аноним 13/08/22 Суб 13:43:05 2432503 111
>>2432014
>>2432358
В стандарте есть строки, которые говорят о том, что NULL всегда является 0? Там есть строки, которые говорят о том, что чтение/запись именно по адресу 0 неопределено?
Аноним 14/08/22 Вск 16:31:02 2433796 112
>>2432503
Да не важно чем там является NULL.
Важно то, что при присваивании 0 указателю получается нулевой указатель, а не нулевой адрес.
Аноним 14/08/22 Вск 20:06:17 2434024 113
0 можно использовать везде, где можно NULL (о прототипах функций не забываем только).
Аноним 17/08/22 Срд 11:21:40 2436835 114
Для арифметики указателей есть только один способ в виде каста к uint_ptr?
Аноним 23/08/22 Втр 15:51:31 2443766 115
Это последний тред по си?
Аноним 24/08/22 Срд 16:49:38 2444579 116
16612361059620.png 77Кб, 1080x616
1080x616
Копаюсь в реализациях протоколов TCP/IP, и тут есть такой код, как на пике. Зачем так написано, я нюфак и у меня глаза ломаются от такой записи?
Мб я вообще не так понимаю эту запись?
Аноним 24/08/22 Срд 22:48:57 2444821 117
Посоветуйте библиотеку для реалтаймового отслеживания звуковых паттернов в создаваемом 3д парти программой аудиопотоке.
Проще говоря, хочу отслеживать аудиопоток на предмет определенных частотно-амплитудных характеристик (например превышение порога 70дб на частоте 10345Гц и 8212Гц одновременно), чтобы автоматически выявлять звук сирены, и использовать затем в качестве триггера
Понятно что это всё делается на фурье, но мб уже есть что-то годное и готовое
Аноним 25/08/22 Чтв 01:24:22 2444887 118
Аноним 25/08/22 Чтв 06:26:21 2444942 119
Аноним 25/08/22 Чтв 07:09:22 2444949 120
>>2444887
Почему? Синтаксически неправильно чтоли?
Я ведь в двух случаях указываю адрес первого элемента массива.
Аноним 25/08/22 Чтв 08:25:22 2444973 121
>>2444949
1. Передача первых 32 бит из массива.
2. Передача указателя на массив.
Аноним 25/08/22 Чтв 08:50:28 2444978 122
>>2444973
Бляя, я долбоеб, а ведь правда. Сук, до этого вообще таких записей не видел, в учебнике Праты нет раздела, где объясняется как читать такое?
25/08/22 Чтв 18:30:19 2445378 123
На мейлаче кто-то вообще работает на сишке не за мамкины борщи и не у с дедами в нии за рыбную котлету?
Аноним 25/08/22 Чтв 21:04:57 2445481 124
25/08/22 Чтв 23:09:13 2445566 125
Аноним 29/08/22 Пнд 06:45:44 2448982 126
У компилятора есть возможность, подобно флагу -D, но наоборот, передать информацию из кода - компилятору? Например, флаги компиляции.
Аноним 29/08/22 Пнд 06:56:28 2448985 127
Нужно дать префикс подключаемым библиотекам, в путях -
#define MY"../path/to/"
#define MYINCLUDEMY"file.c"
#include MYINCLUDE
Компилятор ругается -
1. warning: extra tokens at end of #include directive
2. fatal error: ../path/to/: No such file or directory
Аноним 29/08/22 Пнд 08:03:39 2448991 128
Как перейти от K&R в написание драйвера?
Ну то есть я могу в циклы и в структуры
Аноним 29/08/22 Пнд 08:05:09 2448992 129
>>2445378
>На мейлаче кто-то вообще работает на сишке не за мамкины борщи и не у с дедами в нии за рыбную котлету?
У программиста си зарплата как у продавца одежды
Аноним 30/08/22 Втр 08:17:29 2449868 130
Screenshot20220[...].png 97Кб, 880x773
880x773
>>2448991
Прочитать один драйвер и одно описание устройства.
Аноним 30/08/22 Втр 12:42:50 2450034 131
image.png 31Кб, 894x184
894x184
>>2444579
Неси сразу соурс код, долбоёб. На пике у тебя непонятно нихуя чё ты скопировал.
Аноним 30/08/22 Втр 12:46:00 2450036 132
15682022204070.png 65Кб, 414x368
414x368
>>2409950
>>2409950
>Нужен просто нормальный язык похожий по структуре на ассемблер
Уже есть smalltalk, но он наебнулся от виртуальности и контора его запилившая пошла по миру. Хотя спустя 50 лет до сих пор не могут допилить программинг до ТОГО уровня. Жаль что он пиздец медленный. А так да, C++/С это то ещё донное говно, но выбора нет, жрать приходится в три горла.

За ФП вообще убивать надо. Я бы анально запретил ФП программирование вне прототайпинга. Но это лишь рассуждения.
Аноним 30/08/22 Втр 14:39:05 2450148 133
image.png 181Кб, 1584x941
1584x941
Замутил себе локальную документацию на STL кек.
Аноним 30/08/22 Втр 19:47:18 2450423 134
Хочется задать вопрос, но тред плавает между мирами. За что наказан СИ, что его нету в каталоге программача? Адепты раста зловредствуют?
Аноним 30/08/22 Втр 19:50:59 2450425 135
изображение.png 160Кб, 699x687
699x687
Аноним 30/08/22 Втр 20:04:28 2450443 136
Bwer43gko4nb0ad[...].jpg 92Кб, 750x522
750x522
>>2450425
А у меня пустая страница, когда тыкаю на СИ в списке. При этом остальные страницы работают правильно. Скрин пустой страницы не стал делать. Ну просто без таких табличек, и всё.
Аноним 30/08/22 Втр 20:16:28 2450461 137
Прочитал на вики про обратные вызовы (callback) и ничего толком не понял. Понял только, что у функций есть свой адрес. А зачем это нужно и как это работает?
Где можно подробнее про это прочитать?
Аноним 30/08/22 Втр 21:07:31 2450484 138
>>2450461
Не надо ничего понимать, мань. Если ты не понял, то это не для тебя.
Аноним 30/08/22 Втр 21:43:10 2450517 139
>>2450148
ручками парсишь сорцы или как?
Аноним 30/08/22 Втр 22:24:39 2450549 140
>>2450484
Откуда ты тут такой агрессивный, что тебя проткнуло?
Аноним 31/08/22 Срд 09:21:05 2450708 141
>>2450034
Так мне непонятно было что передается в функцию, сурс тут нах не нужен был.
Аноним 31/08/22 Срд 15:00:06 2450930 142
А нахуй вы какое говно пишете? Почему не можете операционку с нуля осилить?
Аноним 31/08/22 Срд 15:05:06 2450935 143
>>2450423
>Адепты раста зловредствуют?
Раст и Си - друзья на века, лол. Пока что все ОС и системные библы написаны на Си, то от него не отказаться.
Аноним 03/09/22 Суб 22:24:23 2454206 144
Аноним 04/09/22 Вск 19:55:07 2455186 145
2022-09-04 1941[...].png 16Кб, 274x482
274x482
1483455801018.jpg 66Кб, 1198x854
1198x854
Анон я заебался. Может у меня gcc багованный? Как state может быть не 0 или 1? Что его заставляет становиться 2 и даже 3?
https://pastebin.com/tu4Rmh5v
Аноним 04/09/22 Вск 20:04:47 2455196 146
Аноним 04/09/22 Вск 22:42:35 2455371 147
Аноним 05/09/22 Пнд 00:04:32 2455434 148
>>2455371
Я думал это формальность, объявлять количество элементов в array. Думал, при вызове элемента он автоматически создается и все. Но походу это баг и вызывало. При обращении к w[1] например происходит обращение к state вместо этого.
Аноним 05/09/22 Пнд 00:13:01 2455442 149
2022. Си тред, итоги.
Аноним 05/09/22 Пнд 00:25:35 2455448 150
>>2455186
госпаде спаси и сохрани
Аноним 05/09/22 Пнд 11:42:26 2455707 151
>>2455186
>код без отступов, форматирования и в одну строку
Аноним 05/09/22 Пнд 13:23:34 2455785 152
Парни, а можете для человека не особо разбирающегося ответить, что такое zero runtime и какие преимущества благодаря этому есть в Си. Заранее спасибо!
Аноним 07/09/22 Срд 19:38:36 2457896 153
181 926 829 - A[...].png 23Кб, 1078x130
1078x130
15408938040970.jpg 45Кб, 540x394
540x394
Есть один K&R и в самом начале есть пикрил упражнение. Проблема в том, что getchar() не читает backspace в windows 7 cmd вообще.

C ходу на ютубе нашел https://www.youtube.com/watch?v=l3bXLhAEtxI
чел тоже час гуглил и видно, что многие застревают здесь, в гугле куча постов находится.

Это баг их обучающей программы? И много таких багов впереди? Может поискать какое-нибудь новейшее издание и там не будет такого? У меня голова трясется от этого.

Или таки есть решение? При условии, что можно использовать только те инструменты с которыми K&R нас успел познакомить до этого упражнения.
Аноним 08/09/22 Чтв 15:03:23 2458372 154
>>2457896
ты тама руками вводишь чтоли? пайпай инпут из файла
Аноним 08/09/22 Чтв 16:07:31 2458418 155
>>2458372
>При условии, что можно использовать только те инструменты с которыми K&R нас успел познакомить до этого упражнения.
Аноним 08/09/22 Чтв 19:36:43 2458536 156
>>2457896
>что можно использовать только те инструменты с которыми K&R нас успел познакомить до этого упражнения.
Ну так скачай совместимый с С компилятор С. В юниксе такой есть из коробки.
Аноним 08/09/22 Чтв 21:45:52 2458613 157
>>2458536
Я юзаю gcc под виндой. На линуксе getchar() просто будет читать backspace?
Аноним 08/09/22 Чтв 22:15:52 2458639 158
>>2458613
Направь файл в stdin, тогда прочитает.
Аноним 09/09/22 Птн 03:10:56 2458775 159
Там Столлман выпустил свою книгу по GNU C. Любителям gcc может понравится.
Аноним 09/09/22 Птн 09:28:39 2458839 160
.post__images {
visibility: hidden;
};
Аноним 09/09/22 Птн 13:08:09 2458984 161
1978619.jpg 518Кб, 2048x1365
2048x1365
Сап программач. Есть годный материал по односвязным / двусвязным спискам, словарям и хэш таблицам, с особенностями их реализаций на си и различных методов сортировки. По статьям, найденным в гугле, как-то отрывочно и тяжко даётся.
Аноним 09/09/22 Птн 13:10:31 2458985 162
>>2458984
>Есть годный материал по односвязным / двусвязным спискам, словарям и хэш таблицам, с особенностями их реализаций на си и различных методов сортировки?
знак вопроса забыл
Аноним 09/09/22 Птн 13:21:20 2458999 163
>>2458984
Если совсем база нужна то у Праты в учебнике уделено несколько глав спискам.
Аноним 09/09/22 Птн 15:39:16 2459065 164
>>2458984
Смотри в предыдущем треде, я там кидал сцылку на гитхаб с алгоритмами на сях.
П 09/09/22 Птн 20:52:10 2459308 165
>>2458984
>Есть годный материал по односвязным / двусвязным спискам
sys/queue.h
>хэш
hcreate.c
ohash.c
(Курить Кнута, чтобы понять, что там не так)
>различных методов сортировки
wikipedia
Аноним 10/09/22 Суб 12:36:56 2459568 166
А че вы спрятались?
Аноним 11/09/22 Вск 15:28:55 2460378 167
Есть нормальная документация по написанию аплетов для мейта?
Аноним 11/09/22 Вск 17:11:54 2460445 168
1662905513301.jpg 130Кб, 528x604
528x604
есть видеокурсы нормальные какие-нибудь? собираюсь на торренте купить, а то почему-то очень трудно на книгах фокусироваться
англ знаю
Аноним 11/09/22 Вск 17:46:32 2460472 169
>>2460445
>видеокурсы
>язык с 30 функциями в стдлибе и 5 кейвордами.
Аноним 11/09/22 Вск 19:44:00 2460532 170
Аноним 11/09/22 Вск 20:34:26 2460559 171
>>2460472
Как раз для такого языка и имеет смысл делать видеокурс.
Аноним 12/09/22 Пнд 12:44:22 2461020 172
Аноним 12/09/22 Пнд 13:56:01 2461095 173
>>2459308
>косяки
Какие конкретно, лол?
дед 12/09/22 Пнд 18:55:27 2461344 174
>>2461095
В ohash.c вот этот пиздец
incr = ((hv % (h->size-2)) & ~1) + 1;
можно заменить на incr = (hv >> 16) | 1
работать будет быстрее.
Аноним 13/09/22 Втр 16:01:08 2461941 175
Какие есть гнутые проекты, которые не состоят из лапши кода?
Аноним 16/09/22 Птн 11:02:32 2464082 176
Аноним 16/09/22 Птн 11:24:17 2464097 177
>>2464082
Нахуя перекатывать при 176 постах?
Аноним 16/09/22 Птн 11:28:34 2464098 178
>>2464097
1. Тред без тега.
2. В треде неправильный счет, он 74, а не 73.
3. Тред умер.
Аноним 24/09/22 Суб 22:14:17 2472970 179
>>2464098
>3. Тред умер.
В этом ты прав
Аноним 27/09/22 Втр 23:14:25 2475965 180
Screenshot from[...].png 15Кб, 485x181
485x181
>писать не на лиспе
>не пытаться задефайнить хоть какой-то адекватный синтаксис
лольский
Аноним 06/10/22 Чтв 02:16:44 2482621 181
>>2464098
ебучие трансы с растотреда мечтают убить си
и для начала решили убить тред по си таким подлым способом
хуле еще от пидарасов ожидать
Аноним 06/10/22 Чтв 11:17:38 2482734 182
>>2482621
просто все байтослесари уехали на донбасс прямо с завода
постить в тред некому
Аноним 06/10/22 Чтв 11:18:00 2482735 183
ьуъ сука
предлагаю пойти в растотред и насрать там
Аноним 06/10/22 Чтв 11:20:24 2482736 184
>>2482621
>АСМ тред мертв
>Си тред мертв
>Тред про крестам мертв
>Рряяя тупые растаманы
Пиздец ты дегенерат, а перекатывать и писать в треды тоже растаманы запрещают?
Аноним 06/10/22 Чтв 16:47:04 2482942 185
>>2482736
как блядь писать в тред, я еле его нашел. тег отъебнул
> Пиздец ты дегенерат
иди в жопу
Аноним 06/10/22 Чтв 16:47:41 2482943 186
>>2482734
господь забирает лучших
Аноним 06/10/22 Чтв 17:56:16 2483011 187
>>2482942
А в чем виновны растоманы, если Макабу с разметкой сломал Абу, а не перекатили Сишники?
Аноним 10/10/22 Пнд 22:19:57 2485886 188
Анончики, а насколько сложно для ардуино или малинки пописать что-нибудь? Ну там лампочкой помигать, температуру с датчика считать и всё в таком духе? Поучил чисто для общего развития сишечку по книжкам, потрогал её в идешке, хочется проектик написать но идеи только из эмбеддед сферы есть ну не круды же писать в самом деле
Аноним 11/10/22 Втр 08:08:56 2485987 189
>>2485886
Базового уровня сишки хватит. С ардуинками и контроллерами нужно больше знаний о конкретном устройстве или хотя бы ориентироваться в документации и понимать где что найти.
Задачка Аноним 11/10/22 Втр 21:17:29 2486446 190
Ку. Нашёл себе интересную задачу. Сразу вопрос: это можно сделать на С?

Мне нужно реализовать обратную рекурсию. Это означает, например:
У меня есть функция f, в этой функцие есть функция g, а в функции g визывается f. Все это нужно для перебора дерева.
Объясню на примере дерева:
У меня есть дерево U. Оно состоит из v1, v1... В части дерева v1, есть 2 елемента a1 и само дерево U.

Это реализуемо на Си?

P. S. В логических языках это возможно. Это типо математически.
Аноним 12/10/22 Срд 09:33:12 2486613 191
>>2486446
На Си всё возможно.
Можешь более формально описать?
Аноним 12/10/22 Срд 09:42:00 2486615 192
>>2486446
В чем проблема то? Пока стек не переполнится все будет работать.
Аноним 12/10/22 Срд 10:01:55 2486628 193
>>2486446
>Это реализуемо на Си?
Да

void g(); // Теперь можно вызывать g, хотя она ещё не определена

void f() { g(); }
void g() { f(); }
Аноним 12/10/22 Срд 12:02:55 2486705 194
>>2486696
>День, когда сдохнет последний кодосёр на Сишке, станет праздником человечества.
Т.е. когда везде будут распространены процессоры, жрущие джавовский байт-код?
Аноним 12/10/22 Срд 12:14:33 2486709 195
>>2486705
Жаба это кринж, будет встроенная CLR пердолить шарповый код в процессоре со встроенными анальными зондами от майкрософт.
Аноним 12/10/22 Срд 20:55:20 2487026 196
>>2399452 (OP)
Аноны, а с++ тред тут ? Не могу найти.
Аноним 12/10/22 Срд 22:41:05 2487086 197
Аноним 16/10/22 Вск 03:55:44 2489731 198
Аноним 19/10/22 Срд 01:36:52 2491496 199
1475017599image.jpg 83Кб, 1280x720
1280x720
>>2399452 (OP)
Анонимы, я прошу, скиньте пожалуйста гит репозиторий одного чувака, который расписал весь свой многолетний путь в Си, какие технологии учил, что знает, прежде чем он начал успешно проходить собесы. Там было куча примеров (а может и не было), короче дохуя подробно расписано какие технологии выучил в течении нескольких лет.
Бля, ну такой охуенный гит был и я его проебал.
Я помню точно, это был гитхаб, и там был длинный ридми файл.

Мне просто завтра на собес.
Аноним 19/10/22 Срд 09:12:12 2491547 200
>>2399452 (OP)
Увожаемые!
На Си вообще работа есть? Кроме какого-нибудь убогого инжиниринга в бесполезном НИИ за 15к?
Аноним 20/10/22 Чтв 14:13:37 2492707 201
image.png 63Кб, 892x207
892x207
хихихихих
Аноним 20/10/22 Чтв 17:10:01 2492830 202
>>2491547
Дваждую вопрос этого анонима. На hh все плохо.
Аноним 20/10/22 Чтв 18:11:39 2493007 203
>>2491496
>Мне просто завтра на собес.
Ну как прособеседовался?
Аноним 20/10/22 Чтв 19:33:14 2493061 204
Аноним 20/10/22 Чтв 21:36:57 2493139 205
>>2493007
Кстати, довольно неполохо!

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

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

>>2493061
Спасибо, но я сам нашел, вся суть описана в ридми на главной:
https://github.com/jwasham/coding-interview-university

И вот кстати тоже неплохое нашел, пока рылся по гитхабу.
https://github.com/arorarahul/C-programming-for-interviews
Аноним 24/10/22 Пнд 19:09:46 2497365 206
>>2491547
Есть, гугли IoT (уже почти нет), OS, Linux kernel, сетевые технолологии. Платят от 150 до 250
Аноним 25/10/22 Втр 10:32:45 2497609 207
>>2497365
Полторы вакансии на всю Россию.
Аноним 25/10/22 Втр 10:41:12 2497616 208
>>2497609
Ну сейчас рынок просел,но мне ещё по сетям пишут. А ещё знай С++. Не надо выучивать тыщи либ, но я всегда говорю "С++ немного знаю, приходится часто разбираться, но мой основной язык это Си".
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов