М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 30 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

78 Кб, 792x1023
C Programming Language #46 /clang/ # OP 13 июня, 18:46 1415970 В конец треда | Веб

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

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

Что читать:

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

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

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

Что еще почитать:

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

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

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

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

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

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

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

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

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

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

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

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

- №43: https://arhivach.ng/thread/441686/
- №44: https://arhivach.ng/thread/444396/
- №45: https://arhivach.ng/thread/448906/ >>1393395 (OP)

Ответы228082337232587362123969141886428754385044239

sage 2 14 июня, 18:39 2 1416503

О, вы перекатились. мимопроебывался 2 недели

3 14 июня, 23:52 3 1416666

Где вы эту MISRA 2013-го берёте?

Ответы1671516719

4 15 июня, 04:18 4 1416715

>>1416666
Купи, да выложи.
Также можешь купить последний стандарт за 13к рублей.

5 15 июня, 04:49 5 1416719

>>1416666
Нигде, читай 2008, разницы все равно нет: ничего нельзя, мы все умрем.

119 Кб, 1280x1428
6 15 июня, 12:30 6 1416785

Что я делаю не так?
Sample Output:

_________________________________________________
_________________________________________
_________________________________________
_________________________________________
_________________________________________
_________________________________________
_________________________________________
_________________________________________________
_________________________________________________
_________________________________________________
_________________________________________________
_________________________________________________
_________________________________________________

Ответы1678616849

7 15 июня, 12:31 7 1416786

>>1416785
Там должен получиться флаг СШП.
быстрофикс

Ответы16798

8 15 июня, 13:22 8 1416798

>>1416786
>флаг СШП
Лол, даже Си этому сопротивляется

9 15 июня, 15:14 9 1416849

>>1416785
Запутался в циклах, очевидно же, ну и не проще ли сделать использую массив? Достаточно будет даже одного

Ответы1686316864

10 15 июня, 16:35 10 1416863

>>1416849
Я переменную не туда внес, из-за этого цикл получился бесконечным. Для меня там все очевидно, я же сам писал.

11 15 июня, 16:36 11 1416864

>>1416849
Массив слишком сложно, я еще не умею с ними нормально работать.

Ответы16889

12 15 июня, 17:37 12 1416889

>>1416864
По возможности объявляй счетчики внутри for, не используй глобальные переменные и while вместо for.
for(int count = 0; count < 15; ++count)
printf("a");
Код станет в разы более читабельным, найдешь ошибку.

Если знаешь про функции - заверни печать в них:
int print_symbline(char c, int num)
{
// for или печать массива
}

81 Кб, 1200x400
13 15 июня, 18:08 13 1416907

Решил, я значит, что достаточно зашкварился на ближайшее время с printf-дебагом, и у меня, как всегда, подгорела жопа. Как в этом вашем ебучем gdb параллельно и input печатать, и комманды типа next, step, p ∗(int ∗)array@7 ?

Ответы16911

14 15 июня, 18:16 14 1416911

>>1416907
Ой все, извинити, простити, уже разобрался.

Ответы16956

15 15 июня, 20:31 15 1416956

>>1416911
И как? Тоже интересно.

мимо

Ответы17000

16 15 июня, 23:20 16 1417000

>>1416956
Он сам переключается в режим общения с программой, когда она блокируется в ожидании инпута. Но если прога хочет ввод, а ты хочешь сначала кое-что посмотреть по памяти, например, то можно вручную в диалог дебагера вернуться Ctrl+C, пробить что надо под промптом (gdb) и опять опять постучаться в выполнение командой continue.

Ответы17101

17 16 июня, 10:04 17 1417101

>>1417000
Спасибоу. Надо бы тоже сесть за gdb, а то плотные обмазывания трассировкой из printfов до добра не доведут.

18 18 июня, 08:17 18 1418117

Народ подскажите как в clang узнать какие либы используются, в gcc можно было через -MD все в файл засунуть

19 18 июня, 11:50 19 1418185

https://habr.com/ru/post/438044/

Ответы1818918190

30 Кб, 400x300
20 18 июня, 12:03 20 1418189

>>1418185
>Хабр

Ответы18226

21 18 июня, 12:04 21 1418190

>>1418185
>Хабр
>Автор оригинала: Kjetil Østerås
Анон, не шкварь шваброй двачь, пазязя

22 18 июня, 13:11 22 1418226

>>1418189
Да, хабр скурвился.

95 Кб, 180x264
23 18 июня, 14:58 23 1418264

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

Ответы18269183411847418518185571874118851

24 18 июня, 15:12 24 1418269

>>1418264
в K&R описана реализация менеджере кучи, остальное проще

25 18 июня, 17:33 25 1418341

>>1418264
В современных осях стандартная библиотека довольно сложно реализована. Можешь посмотреть реализации для встраиваемых решений или для реликтов вроде доса. Там все попроще но не намного

26 18 июня, 20:16 26 1418474

>>1418264
>хочу переписать стандартную либу
>iso646.h, string.h, math.h, stdatomic.h
вряд ли на что-то большее терпения хватит. За отправные точки бери реализации из gcc.

Если хочется поебаться и безуспешно пытаться поисправлять 30 летние костыли, то перепиливай unistd, stdlib, stdio

27 18 июня, 21:36 27 1418518

>>1418264
> Как я могу переписать стандартную библиотеку си
Береш стандарт и реализуешь описанное поведение. Собираешь с аналогом ключа -nostdlib в твоем компиляторе, линкуешься, идешь переписывать еще и стартап. Линкуешься, радуешься.

> Как можно например изменить стандартные типы
Никак, на то они и стандартные.

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

28 18 июня, 22:42 28 1418557

>>1418264
>изменить стандартные типы
27-битовые int хочешь?

Ответы18575

29 18 июня, 23:09 29 1418575

>>1418557
хочу!

30 19 июня, 13:17 30 1418741

>>1418264
>Как подумаю что кроме нужного мне тянется еще 20кг говна аж в дипрессию впадаю.
Ты точно на С пишешь? Что у тебя там тянется и откуда? Ты ебанутый?

31 19 июня, 15:43 31 1418851

>>1418264
uClibc

32 20 июня, 09:15 32 1419211

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

Ответы19264

33 20 июня, 10:37 33 1419264

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

34 20 июня, 13:42 34 1419387

https://progtips.ru/c_express
Си-экспресс

Сборка «Си-экспресс 2.0» – это среда CodeBlocks с набором бесплатных инструментов программирования на языке Си. В состав сборки входят все необходимые программисту инструменты и библиотеки. Сборка предназначена для работы в среде Windows.

Сборка “Си-экспресс 2.0” не требует установки и организована по принципу «распаковал и запустил».
Пойдет такаясреда для обучения? Может кто этого чувака знает?

Ответы193881940426898

35 20 июня, 13:47 35 1419388

>>1419387
Хороший такой завуалированый под вопрос на который отвечает шапка пиар параши, на уровне сммщиков в телеграме/инстаграме.

Ответы19411

36 20 июня, 14:29 36 1419404

>>1419387
Ну т.е это тупо репак C::B.

37 20 июня, 14:55 37 1419411

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

38 23 июня, 23:51 38 1421284

Аноны, этот ваш Си не умеет в кроссплатформность у меня проблема. Надо кросс-компилить кое-какой код под винду, а он юзает malloc_trim и tdestroy. Их, естественно, под винду не завезли. Без malloc_trim течет память. Гигабайт может висеть на процессе просто так, про запас, если не вызвать malloc_trim(0) вручную. А без tdestroy я не знаю, какой костыль пилить и скармливать twalk для аналогичного результата. Че делать, сука???

668 Кб, 869x538
39 23 июня, 23:53 39 1421285

боевую картинку забыл
Аноны, этот ваш Си не умеет в кроссплатформность у меня проблема. Надо кросс-компилить кое-какой код под винду, а он юзает malloc_trim и tdestroy. Их, естественно, под винду не завезли. Без malloc_trim течет память. Гигабайт может висеть на процессе просто так, про запас, если не вызвать malloc_trim(0) вручную. А без tdestroy я не знаю, какой костыль пилить и скармливать twalk для аналогичного результата. Че делать, сука???

Ответы2129621343

40 24 июня, 00:30 40 1421296

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

Ответы21313

41 24 июня, 01:08 41 1421313

>>1421296
А.. ок, значит можно malloc_trim убрать. Но вот чтоб заменить во всех местах tdelete, надо к тем еще изъебам с одноразовыми функциями прибегнуть. Я уже хочу голыми руками задушить того, что придумал, что нужно в стандарт glib включать, а что и так сойдет.

Ответы21321

64 Кб, 326x340
42 24 июня, 02:51 42 1421321

>>1421313
>malloc

Ответы21818

43 24 июня, 08:22 43 1421343

>>1421285
msys2 или cygwin

44 25 июня, 03:12 44 1421818

>>1421321
Так в рейнджерах почти все наименования из кодинга взяты. Недавно перепроходил, проигрывал.

45 25 июня, 14:46 45 1422027

2ch'ик помоги.
Ухх, решил заняться эпликейшином. До этого работал лишь в терминале.
У меня есть 3 поля Edit. В них я записываю имя, фамилию и адрес. Нужно как-то записать всю эту красоту в структуру данных(массив данных). Пробовал через strcpy(STU.FN,Edit1->Text.c_str);, но вылазят какиенто непонятные ошибки.
Помоги(

Ответы2207422089

46 25 июня, 16:25 46 1422074

>>1422027
>c_str
Есть мнение, что у вас кресты.

Ответы22077

252 Кб, 768x577
47 25 июня, 16:28 47 1422077

>>1422074
Лови крестоблядь!!!

48 25 июня, 17:13 48 1422089

>>1422027
>в структуру данных
>вылазят какиенто непонятные ошибки
Телепаты на другой доске.

Ответы2230322636

49 26 июня, 04:52 49 1422303

>>1422089
Они в джава треде, сверх-люди как никак.

50 26 июня, 17:14 50 1422636

>>1422089
Вот держите и помогите(https://anonfile.com/79z9Ebw1n4/Anon_am.png_rar), таксказатьб. У меня всего 6 заданий (из которых ни одна еще не готова...) Ковырять нужно 4 форму.

Ответы2263922649

51 26 июня, 17:17 51 1422639

>>1422636
>эта кривая ссылка
Вся твоя жизнь одним постом.
>нужно
Кому?
Мне не нужно, тебе нужно - ты и ковыряй.

Ответы2272222725

52 26 июня, 17:31 52 1422649

>>1422636
>cpp
Ну ты понял, да? Вообще, лол, где это вы в Борланде-то пишете?

Ответы22724

53 26 июня, 20:05 53 1422722

>>1422639
Так я скинул чтобы было легче. Ты сам же сказал что тут телепаты на другой доске...

Ответы24325

54 26 июня, 20:06 54 1422724

>>1422649
Я на си пишу. Борланд... в коледже заставляют. Я сам его ненавижу...

55 26 июня, 20:08 55 1422725

>>1422639
https://drive.google.com/open?id=1EXSfPTuOw6USDIoyQVqIJ5dI6GYE0MR1
У меня качает с той ссылки...

56 26 июня, 22:25 56 1422808

868 Кб, 960x721650 Кб, 720x1280

>>1415970 (OP)

если тред жив, скажите, я учил Си по учебнику Прата лет 5 назад.давно не писал ничего на нём.
Сейчас пишу на пайтоне.
С какой книги лучше начать повторять Си. K&R?пикрил у меня дома. мамкин Я хочу понять как в современном Си все делается, чтобы это не было нормально.

Ответы22881

57 27 июня, 00:19 57 1422881

>>1422808
стандарт читани в онлайне и статейки по многопоточности, и все ок будет. Если уж прям хочется с нуля, то книжка Язык Программирования C, но она крайне посредственна. доки компиляторов тоже почитай. бля девчонке бы в качалку такая жопа была бы пиздатая... эх

Ответы22890

57 Кб, 640x421
58 27 июня, 00:42 58 1422890

>>1422881
Стандарт? А у меня мозги не выкипят?
Ты о чьей книге говорил, прата или к и р?
А как насчёт козьерока?
.

Ответы2289122895

59 27 июня, 00:58 59 1422891

>>1422890
Прату читай. Совет читать стандарт, да еще если постоянно на Си не пишешь - это явный троллинг.

Sage 60 27 июня, 01:06 60 1422895

>>1422890
У майкрософта и нвидии ещё нихуевые гайды есть по си, можешь тоже ознакомиться

61 27 июня, 16:32 61 1423336

что делает
int i : 6;
?

Ответы23377

62 27 июня, 17:27 62 1423372

5 Кб, 221x2465 Кб, 979x512

>>1415970 (OP)
Анон, помоги разобраться с функциями, которые принимают переменное число аргументов.

Например, есть функция foo() (пик), которая, по моим задумкам, должна последовательно выводить элементы переданных ей массивов (сначала выводятся элементы массива first, а затем, тех, которые были переданы, так сказать, неявно).

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

Собственно, все вроде бы в порядке с массивом first, его элементы последовательно выводятся, но, когда элементы заканчиваются, вместо того, чтобы также вывести следующий массив (b), происходит какая-то хуета (пикрил 2).

Аноны, молю, помогите разобраться.

Ответы2337423601

63 27 июня, 17:30 63 1423374

>>1423372
va_args, не?

Ответы23378

64 27 июня, 17:33 64 1423377

>>1423336
В теле объявления структуры задает 6-битовое поле. Если у тебя критические требования к экономии памяти, а какая-то структура будет паковаться целыми массивами, то можно так ее сжать, оставив минимально необходимый диапазон значений для того или иного int поля, и для всех операций сгенерируется маш.код со всеми необходимыми побитовыми сдвигами для корректного результата. То есть за счет процессора экономишь память.

Ответы23391

65 27 июня, 17:33 65 1423378

>>1423374
Хотелось бы разобраться в азах: как работают указатели и тому подобное. Знаю про эту макрокоманду, но все-таки... Хочется понять С

Ответы23601

66 27 июня, 17:55 66 1423391

>>1423377

а если этот код будет вне обьявления структуры ?

Ответы2344323601

67 27 июня, 18:59 67 1423443

>>1423391
Тогда хуй знает...

68 27 июня, 23:38 68 1423601

>>1423378
> Знаю про эту макрокоманду
Функции с переменным числом аргументов работают только с va_list. Реализации зависят от платформы, поэтому вручную читать не стоит.

>>1423372
> сначала выводятся элементы массива first, а затем, тех, которые были переданы, так сказать, неявно
Неправильные у тебя задумки. Почитай, почему аргументы-массивы в функциях на самом деле всего лишь указатели. Алсо, твое &first[0] всегда равно first, зачем ты это делаешь?

>>1423391
> а если этот код будет вне обьявления структуры ?
Тогда ты будешь послан нахуй компилятором.

Ответы23756

69 28 июня, 09:33 69 1423756

>>1423601
>Функции с переменным числом аргументов работают только с va_list. Реализации зависят от платформы, поэтому вручную читать не стоит.

Ну, Анон, как это... Например, если вместо массива передать foo(1,2,3,4,5,6,7), то все они выведутся поочередной, каждый аргумент, причем, разделены они будут нулевым байтом.

>Алсо, твое &first[0] всегда равно first, зачем ты это делаешь?
Делал для себя. Мне так понятнее. Смотря на такую запись, я понимаю, что амперасанд возвращает адрес первого элемента массива.

Ответы2377224269

70 28 июня, 09:58 70 1423772

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

Ответы23777

71 28 июня, 10:01 71 1423777

>>1423772
Я понимаю это. Но как это сделать? Если массив first объявлен и получить адрес на первый элемент просто, так получить адреса первых элементов массива, которые передаются в функцию "неявно"?

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

Ответы23786

72 28 июня, 10:34 72 1423786

>>1423777
может просто длину первого массива прибавить +1 получим начало следующего?

Ответы23858

73 28 июня, 11:58 73 1423858

>>1423786
Не выйдет. Такое ощущение, будто массивы расположены не последовательно в памяти.

Ответы23881

74 28 июня, 12:29 74 1423881

>>1423858
может тогда самому выделять память под массивы? типа задаешь динамически память (стек) для аргументов функции в этой же функции и они по порядку встают, точнее не смогу пояснить сам только 2 месяца как учить начал.

Ответы23911

75 28 июня, 13:10 75 1423911

>>1423881
Вообщем, без __builtin_va_list не обойтись никак.

Но, мне не понравилось то, что если использовать __bultin_va_args нужно помимо объекта _va_list еще и использовать тип считываемого аргумента. А если тебе неизвестен тип?

Таким образом, можно воспользоваться следующем способом:
Объявив переменную __builtin_va_list и записав в нее адрес первого аргумента с помощью __builtin_va_start, можно использовать эту переменную следующим образом:

Создав на нее указатель достаточно сдвигать его с помощью p++, теперь ты получаешь значения каждого аргумента: это работает, например, при передачи одновременно масссивов char, и, например, обычных чисел int.

Ответы23912

76 28 июня, 13:18 76 1423912

16 Кб, 699x36115 Кб, 979x51212 Кб, 556x217

>>1423911
на втором пике результат работы программы при использовании ключа %d в printf. Значения в рамке -- как раз те char-массив.

Ответы23915

5 Кб, 979x512
77 28 июня, 13:25 77 1423915

>>1423912
Интересно то, что указатель p указывает вцелом на массив, а не на его конкретный элемент.

На пике видно как отличаются адреса к массиву к первому аргумента first (который по умолчанию массив char).

VA_START -- адрес, полученный с помощью функции __builtin_va_start, а CHAR -- адрес полученный обычной операцией cp = first, где cp -- char *cp;

78 28 июня, 16:18 78 1423997

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

Самый банальный пример: при подключении с помощью include выполнять операцию printf (которая должна быть написана либо в хедере, либо же в файле реализации).

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

Ответы240102405524064

79 28 июня, 16:37 79 1424010

>>1423997
Макросы

Ответы24043

80 28 июня, 17:40 80 1424043

>>1424010
Можешь подробнее описать? Или мануал какой-нибудь кинуть?

81 28 июня, 18:08 81 1424055

>>1423997
шта? что значит при подключении с прмрщью include? Ты не понимаешь как программа собирается, или я просто не понимаю что ты хочешь?

Ответы24272

82 28 июня, 18:21 82 1424064

>>1423997
#include "fileblya" просто вхерачивает содержимое fileblya вместо себя. Дальше сам фантазируй, как заставить препроцессор захардкодить что-либо в зависимости от контекста (того, что перед #include). Например, в инклудируемом файле следующее:
#ifdef VALUE_FOR_ZALUPA
int zalupa = VALUE_FOR_ZALUPA
#else
int zalupa = 0;
#endif
Хз, что еще ответить.

Ответы24066

83 28 июня, 18:24 83 1424066

>>1424064
ой, мои пардоны, хуйню написал, нельзя в хедере определения имен делать, т.к. если он инклудится в нескольких местах, получается дублирование. Функции только прототипами, а глобальные переменный - extern (реально лежит в одном из исходников)

Ответы24136

84 28 июня, 20:21 84 1424136

>>1424066
Можно, только надо немного по-другому делать.
mylib.h:
#ifndef MYLIB_H_
#define MYLIB_H_
#include <stdio.h>

static int __mylib_local_val;

void __attribute__((constructor)) __mylib_constructor
{
__mylib_local_val = 22;
printf("mylib\n");
}
#endif

Ответы241382427424278

85 28 июня, 20:23 85 1424138

>>1424136
Это только для gcc/clang
Быстрофикс

86 29 июня, 00:58 86 1424269

>>1423756
> например, если вместо массива передать foo(1,2,3,4,5,6,7), то все они выведутся поочередной
Еще раз. Зависит от архитектуры. Где-то оно, лишь завидев ... в аргументах, положит аргументы сразу в стек, где-то в регистры по очереди (причем очередь разная, и регистры тоже). Поэтому вот просто так взять и сделать решение нельзя. Например, вот такое будет работать на 32-битном x86 (gcc -m32), но не работает на ideone, потому что там x86-64: http://ideone.com/joRPgl

Ответы2427527129

87 29 июня, 01:02 87 1424272

>>1424055
Ну да. Хуяришь такой библиотеку какую-то и надо, чтобы, как только ты ее заиклудил, хуяк, и надпись такая в консольке: "подключена библиотека олололололо", причем, оператор вывода надписи должен быть в хедере например, который ты инклюдишь

88 29 июня, 01:03 88 1424274

>>1424136
Ого-го, а, можно подробнее? Что это за такое имя __atribute__?

89 29 июня, 01:04 89 1424275

>>1424269
Спасибо, Анон. Пояснил.

17 Кб, 491x314
90 29 июня, 01:14 90 1424278

>>1424136
Чому не работает?

Ответы24285

91 29 июня, 01:21 91 1424285

>>1424278
Тому что атрибуты есть у функций, а у тебя тут хуй пойми что. Добавь (void) перед фигурной скобкой что ли.

92 29 июня, 01:24 92 1424286

Спасибо Анон, заработало. А, где можно почитать про это?

Ответы24290

93 29 июня, 01:34 93 1424290

>>1424286
https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Common-Function-Attributes.html#Common-Function-Attributes

Ответы26017

94 29 июня, 08:06 94 1424325

>>1422722
Про телепатов это я писал. Ссылки все протухшие.

95 29 июня, 14:57 95 1424543

90 Кб, 858x84092 Кб, 863x842

В чем проблема? и как фиксить Ткните носом...
Алсо все время путаю в чем разница между . и ->, как понять навсегда?

Ответы2454625303

96 29 июня, 15:05 96 1424546

>>1424543
A->B == (*A).B

Ответы2461924620

97 29 июня, 18:02 97 1424619

>>1424546
Ну тоесть если я напишу Node* x, потом могу писать x.city?

Ответы24625

98 29 июня, 18:02 98 1424620

>>1424546
А ошибку как исправить?

Ответы24625

99 29 июня, 18:29 99 1424625

>>1424619
Если ты обращаешься к полям/методам объекта, то используешь operator.
Если у тебя есть указатель на объект, то тебе нужно дереференсить его, прежде чем обращаться к компонентам класса. Чтобы лишний раз не дереференсить поинтер и обращаться через точку [i.e. (A).B], можно использовать operator-> [i.e. A->B]
>>1424620
А ошибка у тебя в том, что a - это указатель, а ты пытаешься точкой обращаться к его полю. Либо делай (a).city.name, либо a->city.name
Дальше код не смотрел, могут быть ещё и другие ошибки

Ответы2462724643

100 29 июня, 18:31 100 1424627

>>1424625
Курсив немного испортил ответ, там должны были * быть.

101 29 июня, 19:03 101 1424643

>>1424625
Я уже понял что надо a->city.name, но там другая ошибка получается...
(с числом) все ок,
temp.coordinates.latitude = a->city.coordinates.latitude
но стрингу (текст) не могу назначить
temp.name = a->city.name
error: assignment to expression with array type
и я не пойму почему пишет аррей тайп если там вроде как стринг...
других ошибок вроде как нет, так как код работает просто не сортирует

Ответы24648

102 29 июня, 19:24 102 1424648

>>1424643
Строки в C - массивы символов. Чтобы скопировать строку, тебе нужно циклом пройтись по каждому символу и скопировать его в массив char name[]. Или же воспользоваться чем-то вроде strcpy().

Ответы2466624686

103 29 июня, 20:32 103 1424666

>>1424648
#define strcpy(dst,src) memcpy(dst,src,strlen(src))

Ответы2468624720

104 29 июня, 21:34 104 1424686

>>1424666
>>1424648
Спасибо

Ответы24698

105 29 июня, 21:58 105 1424698

>>1424686
Дефайн-оптимизация - рофл. Не думаю, что strcpy реализован, как в книжке while (∗dst++ = ∗src++), или как memmove с поддержкой оверлаппинга (с побайтовым копированием от начала до конца, если адрес src больше, или от конца до начала, если адрес src меньше). Наверняка в ридонли считает конец и потом быстрыми обращениями к оперативке нужные куски переносит.

Ответы24720

106 29 июня, 22:49 106 1424720

>>1424698
Двачую этого. Тут у >>1424666 strlen() один проход и у memcpy() один проход, т.е., всего два, в то время как в strcpy() справляется за один.

Ответы2472824730

107 29 июня, 23:03 107 1424728

>>1424720
"этот" и трипл - один анон
мимо один анон

108 29 июня, 23:05 108 1424730

>>1424720
Дык memcpy - это не проход побайтовый, там круче все, но массивы не должны пересекаться. Вот memmove традицонно медленный, да.

Ответы24739

109 29 июня, 23:49 109 1424739

>>1424730
> Дык memcpy - это не проход побайтовый
И что? Это все равно проход, там просто в середине массива данные копируются через SIMD обычно, блоками размером побольше, чем байт. strlen() тоже можно через SIMD реализовать или, например, 32-битными словами читать и сравнивать, но это опять же все равно проход. Вместе это все равно два прохода, хоть ты на голову встань.

Ответы2474624750

110 29 июня, 23:54 110 1424741

Аноны, может кто знает либу под Шиндовз, чтоб http реквесты/респонды составлять/парсить и на сокет писать/читать? Есть кое-какое задание, я уже через голые сокеты сделал, но надо бы мои json заворачивать в правильный месседж, а руками пердолить как-то неправильно. Нагуглил WinHTTP (а для сервера там какой-то нёх HTTP Server API), и шото так лень в этих абстракции вникать по Микрософтовским докам, шопиздец.

111 30 июня, 00:09 111 1424746

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

https://github.com/gcc-mirror/gcc/blob/master/libgcc/memcpy.c

Ответы24749

112 30 июня, 00:15 112 1424749

>>1424746
Хотя интелы пишут, что симд роляет
https://software.intel.com/en-us/articles/performance-optimization-of-memcpy-in-dpdk

113 30 июня, 00:17 113 1424750

>>1424739
хм, а я думал контролер памяти умеет в команды типа "copy 4kb otsuda tuda". Ну, ведь страницами же все ремапится в виртуалку процесса, то есть каждые 4192 байт гарантированно лежат рядом

Ответы24759

114 30 июня, 00:44 114 1424759

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

115 30 июня, 23:04 115 1425197

//...
AnsiString text = RichEdit1->Text; //AnsiString to char
const char c = NULL; // пишу в C++ Builder...
text = c;
char *ctext;
ctext = text.c_str();
//...
RichEdit1->Lines->Add(ctext);
//Что я делаю не так? Почему не выводится? Подозреваю нужен цикл, но я не знаю как это реализовать.

Ответы2520826353

116 30 июня, 23:18 116 1425208

>>1425197
Ты уверен, что это C, а не C++?

Ответы25213

117 30 июня, 23:24 117 1425213

>>1425208
Не особо.

Блин. Как мне быть... Мне нужно на си написать.
Как мне это реализовать не на крестах.

Агрр...

118 1 июля, 00:17 118 1425230

Господа,
А есть ли в С что-то для приколов со спрайтами? Я внезапно наткнулся на QB64, там это искаропки.

Ответы2526325268

119 1 июля, 04:32 119 1425263

>>1425230
Гугли SDL

Ответы26215

120 1 июля, 05:38 120 1425268

>>1425230
SDL, ну или allegro, тыкай что больше понравится

Ответы26215

121 1 июля, 09:41 121 1425303

>>1424543
>Алсо все время путаю в чем разница между . и ->
Это каждая иде автоматически подсказывает вроде, нет?

Ответы2724927256

122 1 июля, 17:05 122 1425513

gcc?

123 2 июля, 09:49 123 1426017

>>1424290
Благодарю Анон.

101 Кб, 960x709
124 2 июля, 15:05 124 1426215

>>1425263
>>1425268
Хосспаде, чё так сложно-то??

Ответы26420

125 2 июля, 16:29 125 1426300

Кстати, кроме graphics.h из прошлого века что-то есть под винду? Хочу легко и просто рисовать линии и пиксели.

Ответы2634426633

126 2 июля, 16:59 126 1426344

>>1426300
Если только линии и пиксели, то на OpenGL относительно компактно это делается.

127 2 июля, 17:03 127 1426353

>>1425197
>Что я делаю не так?
>const char c = NULL;
Это не указатель, чтобы ему присваивать нулл, но прокатит.
>text = c;
Ты обнулил свой text, в который ты записал данные двумя строками выше.

128 2 июля, 18:59 128 1426420

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

129 2 июля, 21:31 129 1426587

А что мешало добавить библиотеку для строк как в крестах? Не то чтобы массивы неудобны, но все же.

Ответы2663326809

130 2 июля, 21:49 130 1426633

>>1426300
> просто рисовать линии и пиксели
"Старый" Windows GDI API.

>>1426587
Возьми и добавь в свой проект. Тысячи их.

131 3 июля, 01:40 131 1426809

>>1426587
Что изменит библиотека? Массив так и останется массивом.

132 3 июля, 10:17 132 1426891

Какие есть фреймворки для написания оконных приложений на си? Под линукс, но в идеале чтоб можно было и под винду скомпилировать(если такое возможно). P. S в C руб, только дочитываю K&R

Ответы26898269182697527511

133 3 июля, 10:42 133 1426898

>>1426891
Вот я выше спрашивал >>1419387

https://progtips.ru/c_express
Си-экспресс

Сборка «Си-экспресс 2.0» – это среда CodeBlocks с набором бесплатных инструментов программирования на языке Си. В состав сборки входят все необходимые программисту инструменты и библиотеки. Сборка предназначена для работы в среде Windows.

Сборка “Си-экспресс 2.0” не требует установки и организована по принципу «распаковал и запустил».
Пойдет такаясреда для обучения? Может кто этого чувака знает?

Ответы26975

134 3 июля, 11:22 134 1426918

>>1426891
GTK

135 3 июля, 13:23 135 1426975

>>1426898
Никто не знает про это твое васяноподелие. Под винду есть вижуалстудия, есть нормальный Code::Blocks, есть Pelles C, наконец.

>>1426891
> Какие есть фреймворки
Кроссплатформенные - все как один говно. Пиши под линукс на GTK, как уже посоветовали, под винду на Windows API.

Ответы27465

8 Кб, 225x225
136 3 июля, 15:40 136 1427052

Анон, мне че-то ссыкотно. Я ведь по этому направлению учился, а сейчас чувствую что как в тех шутках про сишников, которые нищие в свитере программируют за еду. Чувствую прям душа к этому лежит, регистры, апи виндовс, сокеты по сей день интересуюсь этим, но че-то гнетет как-то чувствую себя отсталым от мира и тенденций, как старый дед с рубанком и паяльником. Касперски сейчас обмазываюсь еще и windows internals. Но работаю прикладником, правда.
Не проебался ли я, анон? Может настало время похоронить эту мечту. Извел себя весь уже, а бросить не могу, затягивает сам знаешь...

Ответы2705527852

137 3 июля, 15:51 137 1427055

>>1427052
Все мечтаю написать для винды расширение одно или даже свою ос, дурак. Надо было перекатываться в джаву мли в дотнет хотя бы. Вон однокурсник звал же меня в Нижний, я не поехал. А он уже по тем временам нормально зарабатывал, сейчас поди уже и дом построил. Че делать теперь, хуй знает, не молодой уже, 30-ник...

138 3 июля, 17:24 138 1427129

>>1424269
Ты там va_end забыл

139 3 июля, 18:17 139 1427189

ptrdiff_t eto UB

140 3 июля, 19:50 140 1427249

>>1425303
Подсказывает, но работают обе версии
swap(NODE* a) {a->city; }
и swap(NODE a) {a.city; }
и не разберусь хоть и немного мне пояснили по понятиям

Ответы2787840411

141 3 июля, 19:54 141 1427256

>>1425303
хотя иногда и не очеть внятно подсказывает

142 3 июля, 23:25 142 1427465

>>1426975
На WinAPI написать оконное приложение нормальное СЛОЖНА. Хотя не. Долго и комплексно.
Мимо

Ответы27504

143 4 июля, 00:08 143 1427504

>>1427465
> СЛОЖНА
Проще, чем на GTK. Но ты прав, долго. Но это если у тебя сложный интерфейс. А полторы кнопочки (т.е., то, что обычно нужно новичку) реализуются с помощью диалогов строк в 50, считая обработку событий.

Ответы27520

144 4 июля, 00:36 144 1427511

>>1426891
>Какие есть фреймворки для написания оконных приложений на си? Под линукс
Никакие. Юникс-вей это libyoba написанная на си, консольный фронтэнд yoba, написанный на си, и гуевый фронтэнд, написанный на каком-нибудь питоне.

Ответы27513

145 4 июля, 00:39 145 1427513

>>1427511
И да, фронтэнд не нужен. Педролься в консоль, сука. Гуй он задумал писать. Мудак.

146 4 июля, 00:51 146 1427520

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

Ответы27541

147 4 июля, 01:47 147 1427541

>>1427520
А в чем проблема нарисовать диалог мышкой? Обработать WM_COMMAND для IDC_твоякнопка1 и IDC_твоякнопка2, вызвать SHBrowseForFolder (почитать справку, охуеть, обернуть в функцию - это самая долгая часть - минут пять, наверное), сделать SetDlgItemText с результатом в инпутбоксы, сделать функцию, которая будет делать твоему "консольному" текстбоксу SendDlgItemMessage(EM_SETSEL и EM_REPLACESEL) . Не намного сложнее, чем на каком-нибудь шарпе, особенно если взять windowsx.h с ихними HANDLE_MSG и макросами вокруг посылки сообщений. Проблемы начинаются, когда ты делаешь ресайзящиеся окна со сложным дизайном, вот там действительно проще сразу взять C#, чем в сишку ебаться.

Ответы27545

148 4 июля, 01:57 148 1427545

>>1427541
>А в чем проблема нарисовать диалог мышкой?
Тааак, падажжи ебана. Это Студия такое позволяет?

Ответы275472760427662

149 4 июля, 02:00 149 1427547

>>1427545
Студия, Pelles C, борланд вроде тоже умел, плюс какой-нибудь рандомный
https://www.google.com/search?q=resource+file+editor из интернета.

150 4 июля, 04:01 150 1427604

>>1427545

Никогда чтоле не смотрел ресурсы в exe файлах?

151 4 июля, 09:13 151 1427662

>>1427545
Простой диалог позволяет - MFC. Для полноценного - C++Builder.

Ответы2767528807

152 4 июля, 09:48 152 1427675

>>1427662
Нахуй мфц. У нас тут сишка, а не кресты.

Ответы28803

153 4 июля, 10:02 153 1427684

Насчет гуя есть еще такая штука https://github.com/vurtun/nuklear

615 Кб, 1024x642
154 4 июля, 11:38 154 1427749

Ну охуеть теперь, cl не умеет в локальные объявления по месту.

155 4 июля, 14:16 155 1427852

>>1427052
Да всё норм, в вебе к этому возрасту уже сеньёры выгорают. Правда, там и зарплаты поменьше, что-то уровня 6к$ грязными. За Си же больше платят? По крайней мере, должны, я не шарю просто

Ответы28044

156 4 июля, 14:27 156 1427878

>>1427249
Ну в первом варианте у тебя указатель на NODE, во втором сам объект.

168 Кб, 1920x1080
157 4 июля, 15:26 157 1427930

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

Ответы2795730163

158 4 июля, 16:02 158 1427957

>>1427930
Вкатываться в С++, забыть про С.

Ответы27960

159 4 июля, 16:06 159 1427960

>>1427957
С такими советами предлагаю тебе выкатиться в свою резервацию.

866 Кб, 420x236
160 4 июля, 16:41 160 1427971

//Использую GIFImage.
//q:Какого фига пишешь в Билдере?!
//a:Практика в колледже. Заставляють нахой.
Можно как-то реализовать прозрачность гифки в C++ Builder 6?
Чтобы как-то убрать черный фон. Хотел через Transparent Color, но TImage не имеет такую опцию.

Ответы27993

161 4 июля, 17:35 161 1427993

>>1427971
>C++
Туда ли ты зашел?

Ответы28134

162 4 июля, 19:49 162 1428044

>>1427852
На международном рынке за Си надо брать не меньше $50/час

Ответы28830

163 4 июля, 21:57 163 1428134

>>1427993
Да. Там же можно писать как на си так и крестах.
Ну ок.

164 4 июля, 23:41 164 1428186

Чуваки, нужна книжка или сайт, где с нуля и понятно показывается реализация связных списков и деревьев на С

Ответы2819228227

165 4 июля, 23:51 165 1428192

>>1428186
На каждую комбинацию язык-задача-парадигма книг не напасешься. Про всякие структуры данных на уровне идеи можно хоть в SICP почитать, или в introduction to algorithms. Если суть ясна, и интересует техническая реализация, то K&R в помощь, библию не переизобретешь. Если стоит вопрос адекватного процедурного интерфейса - OOC (в шапке есть). Хз, что еще посоветовать.

166 5 июля, 01:12 166 1428227

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

деревья на массивах - смотришь в реализацию на любом языке (псевдоязыке) с массивами

Ответы28423

167 5 июля, 15:14 167 1428423

>>1428227
Книгу прочитай: Грокаем алгоритмы.

168 5 июля, 15:34 168 1428433

Подскажите, вот есть меню, есть клава опрашивающаяся раз в какое-то время.
Захожу в отдельный пункт меню, у меня происходит "вошел в меню=1" и пока я кнопкой не делаю "вошел в меню=0" цикл повторяется.
Я чувствую что есть более нормальный способ это сделать.

Ответы28886

169 5 июля, 23:21 169 1428700

1

170 6 июля, 04:48 170 1428803

>>1427675
Полезный комментарий клоуна, который из GUI под Windows осилил только высирать текст в консольку.

171 6 июля, 05:26 171 1428807

>>1427662
Некроманты в треде!
(имхо каждое приложение само пусть ренедерит картинку)

Ответы28943

172 6 июля, 07:38 172 1428830

>>1428044
А где кстати искать работу на международном рынке?

sage 173 6 июля, 10:26 173 1428886

>>1428433
Звучит сложно. Но похоже тебе нужны колбэк функции.

174 6 июля, 12:38 174 1428943

>>1428807
>(имхо каждое приложение само пусть ренедерит картинку)
>именно так было в DOS
>Некроманты в треде!
Не некромант, а лич уже, сам давно дохлый и трупы выкапывает.

Ответы29011

175 6 июля, 14:07 175 1429011

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

Ответы29526

176 7 июля, 04:36 176 1429526

>>1429011
Я понял в чём проблема треда, это пердолики с консолькой, которые при упоминании гуи/виндовс, начинают рваться и нести сивый бред.

Ответы29529

177 7 июля, 04:51 177 1429529

>>1429526
Виндовс, это та хуйня от компании, которая разработала vscode?

Ответы2956029742

178 7 июля, 09:00 178 1429560

>>1429529
>которая разработала vs
Так.

179 7 июля, 14:35 179 1429742

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

253 Кб, 1920x1080
180 7 июля, 15:34 180 1429779

ЧЯДНТ?

Ответы2978129785

181 7 июля, 15:36 181 1429781

>>1429779
удали эту хуйню и скачай VSC или gcc

Ответы2978529787

182 7 июля, 15:44 182 1429785

>>1429779
Вопрос закрыт. Каталоги не подключил. Совсем уже ебанулся с этим WINAPI...
>>1429781
Почему? Совсем плохая IDE?

183 7 июля, 15:59 183 1429787

>>1429781
>gcc
Там порт gcc в виде MinGW ж.

Ответы29795

184 7 июля, 16:10 184 1429795

>>1429787
А, лол, он собирает компилером от десятой студии.

Ответы2983830075

223 Кб, 1920x1080
185 7 июля, 17:14 185 1429838

>>1429795
Ну да, я по-разному пробую, пытаюсь разобраться как все работает.
Кстати MinGW это не собирает почему-то

Ответы29854

186 7 июля, 17:50 186 1429854

>>1429838
Так он тебе говорит, что у тебя гцц нет. Пути настрой.

187 8 июля, 04:13 187 1430075

>>1429795
И правильно делает. Родные либы майкрософта под винду всяко удобнее левых линуксовых костылей.

Ответы3010230149301533018030298

188 8 июля, 07:55 188 1430102

>>1430075
Для задач уровня laba12.c совершенно не критично.

Ответы30113

189 8 июля, 08:53 189 1430113

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

190 8 июля, 10:26 190 1430149

>>1430075
Когда пишешь серверную или какую-то системную хуету. А так, компилятор сишечки и микропидоров - кал, даже в C99 не умеет.

Ответы30180

191 8 июля, 10:30 191 1430153

>>1430075
inb4 знаю, что объявление не в шапке подконтекста - гавнокод, но все равно кал. Я не говноед и хочу пользоваться стандартизированным для языка интерфейсом многопточности и красивостями вроде thread_local. Кормить сишным кодом компилятор крестов тоже нахуй нужно, ебал я каждый чих кастовать.

Ответы301543018030289

192 8 июля, 10:33 192 1430154

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

193 8 июля, 10:56 193 1430163

>>1427930
Что за тема в атоме?

194 8 июля, 11:47 194 1430180

>>1430075
> Родные либы майкрософта под винду всяко удобнее
Напомни, в этой 2010 студии snprintf() уже есть, и он ведет себя правильно? Или там только _snprintf() с нестандартным поведением?

>>1430149
> А так, компилятор сишечки и микропидоров - кал, даже в C99 не умеет.
Анон бы еще шестую студию взял. Современные версии cl давно уже все умеют.

>>1430153
> красивостями вроде thread_local
Пользуйся, кто ж тебе мешает: в новых версиях все есть, в старых можно #define thread_local __declspec(thread), полноценная реализация <threads.h> тоже существует, еще с момента выхода стандарта.

Ответы30259

195 8 июля, 14:22 195 1430259

>>1430180
И как его поставить без накатывания Студии и без гарантированного засирания забитого системного диска? Алсо, C::B и пресета для новых версий не имеет, руками настраивать надо.

Ответы30261

196 8 июля, 14:30 196 1430261

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

Ответы3026531411

197 8 июля, 14:41 197 1430265

>>1430261
>В инсталлере build tools
быстрофикс

268 Кб, 1872x776
198 8 июля, 14:58 198 1430284

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

Ответы30297303873038930394

199 8 июля, 15:11 199 1430289

>>1430153
>ебал я каждый чих кастовать
Для laba12.c не нужно многопоточности, красивостей вроде thread_local, C99, правильного snprintf() и прочего бла-бла. А вот удобство нативного програмиирования и божественной документации нужны всегда.

200 8 июля, 15:34 200 1430297

>>1430284
А ты ленив. Вообще ручками поначалу полезно, работает моторная память.

Ответы30304

201 8 июля, 15:34 201 1430298

>>1430075
>левых линуксовых костылей
Уже писал, напишу еще раз.
Ебаная glib! Там tdestroy не входит в стандарт, а доп.хуета, доступная после #define _GNU_SOURCE, не входит в mingw.

202 8 июля, 15:47 202 1430304

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

203 8 июля, 17:30 203 1430387

>>1430284
Ну хз, иногда к книгам можно качнуть исходники отдельным архивом. А pdf - это тебе не doc, это typeset. Есть шрифты, есть буквы определенных размеров и их координаты/ориентация. И нехуй с нулевым опытом написания кода уже лигу ленивых устраивать.

204 8 июля, 17:31 204 1430389

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

205 8 июля, 17:41 205 1430394

>>1430284
Пробуй скопировать в английской раскладке. Потом пробуй вставлять в блокнот и выбирать windows 1251 кодировку. Если не помогает, значит текст в пдфке криво распознан и неисправлен

Ответы30396

206 8 июля, 17:42 206 1430396

>>1430394
:: вместо = как бы намекает, что там явная ошибка распознавания, и никакая раскладка ему не поможет.

319 Кб, 1920x1080
207 8 июля, 21:32 207 1430508

Каким же я себя тупым чувствую, особенно после работы, когда башка уже не соображает.
Я создаю файл "ввод.тхт" с набором символов "qwer123", задаю его в программе, задаю файл "вывод.тхт", но ничего не происходит.

Ответы3051530605

208 8 июля, 21:46 208 1430515

>>1430508
Настало время отладки printf-ами!

Ответы30628

209 9 июля, 01:56 209 1430605

>>1430508
>после работы
Уборщиком туалетов? Работай спокойно дальше, не отвлекайся на всякую фигню.

Ответы30675

210 9 июля, 04:44 210 1430628

>>1430515
Лучше принтфами, чем гдб

Ответы30643

211 9 июля, 06:11 211 1430643

>>1430628
Лучше совмещать. Пару раз в CTF писал эксплойты, ловя краши с помощью gdb - ну, нормально. Не очень удобно, благо есть дополнения к нему, но все же.

212 9 июля, 09:02 212 1430675

>>1430605
Вот зачем ты так? пидорюга

Ответы3068330840

213 9 июля, 09:21 213 1430683

>>1430675
Я уже и внимание на такую фигню не обращаю. Смысл?

214 9 июля, 11:54 214 1430840

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

Ответы3088831030

215 9 июля, 12:48 215 1430888

>>1430840
Ой. Вы посмотрите какой элитный интеллектуал. Не обыватель.

216 9 июля, 12:53 216 1430896

Есть где примеры написания простых оконных приложений на си и винапи? Особо интересует примеры рисования всякого в gdi или что там есть в винде для 2d рисования.

Ответы309413094431069

217 9 июля, 13:39 217 1430941

>>1430896
есть в Петцольде.

Ответы30987

218 9 июля, 13:40 218 1430944

>>1430896
> Есть где примеры написания простых оконных приложений
У Microsoft? Не знаю, как в современной студии, но ты можешь качнуть Platform SDK постарше (для Windows XP/2003, например - там точно есть), и смотреть примеры из комплекта. Алcо, короткие (часто неполные) куски есть прямо в MSDN, вот примерно так: https://docs.microsoft.com/en-us/windows/win32/winmsg/using-windows

> примеры рисования всякого в gdi
Feng Yuan "Windows Graphics Programming: Win32 GDI and Directdraw" и с примерами (http://www.fengyuan.com/sample/ и http://www.fengyuan.com/sample/Samples.zip). Оно слегка подтухло, но в целом подходы не поменялись. Хотя в винде много чего еще есть для рисования - и Direct2D, и GDI+, и Direct3D/OpenGL/VK, все зависит от задачи.

Ответы30987

55 Кб, 966x521
219 9 июля, 14:39 219 1430987

>>1430941
Круто. Скомпильнул пример из книги бородатого года в tcc и он работает.

>>1430944
Там что-то всё для крестов, а мне бы для обычной сишечки.

А gdi позволяет сглаженные линии и фигуры рисовать? Поддерживает полные цвета?

Ответы3102631035

220 9 июля, 15:12 220 1431026

>>1430987
>Круто. Скомпильнул пример из книги бородатого года в tcc и он работает.

Поэтому и нужно порой изучать технологии Древних, хотя многие это ругают и фукают. Это полезно для понимания современных. Кроме того, там дается зачастую исчерпывающая информация об интересующем тебя предмете доступным языком. Ну либо это я не умею искать современные источники. Например по архитектуре 80486 или 80286.

221 9 июля, 15:23 221 1431030

>>1430840
Как там в юнитфактори? Экзамены все сдал?

222 9 июля, 15:38 222 1431035

>>1430987
> Там что-то всё для крестов, а мне бы для обычной сишечки.
Как будто для Windows API есть разница.

> А gdi позволяет сглаженные линии и фигуры рисовать?
GDI+. Официально - только кресты. Неофициально ищи либу, например, на forum.pellesc.de.

> Поддерживает полные цвета?
Да.

Ответы4150342422

223 9 июля, 17:05 223 1431069

>>1430896
https://pastebin.com/e1sggH6F
Держи. Специально ради тебя лазил к деду в комп, теперь пизды получу, но из допотопного мингв достал.

Ответы3107131079

224 9 июля, 17:20 224 1431071

>>1431069

https://pastebin.com/gkYERVDN HELLO_DLL_C

https://pastebin.com/e1sggH6F - HELLO_WIN_C

https://pastebin.com/kCW4j0b8 - DLL_C

кури эту хуету

Ответы31094

225 9 июля, 17:38 225 1431079

>>1431069
Не совсем понятно, зачем там CenterWindow, хотя достаточно было int width = 360, height = 240, left = GetSystemMetrics(SM_CXSCREEN) / 2 - width / 2, top = GetSystemMetrics(SM_CYSCREEN) / 2 - height / 2; прямо перед CreateWindow. Видимо, пердолинг ради пердолинга.

226 9 июля, 18:10 226 1431094

>>1431071
Я видел ее в папке с конпелятором tcc.

227 10 июля, 00:23 227 1431348

Так бльйбнврт, мне это все остоебенило! Аноны, взываю к помосчи, хотя бы моральной, как в ябучем ШиндоХТТП разобраться? При помощи HTTP Server API Version 1.0 надо принять реквест и вернуть респонс. С HttpReceiveHttpRequest разобралсо, а вот HttpSendHttpResponse вызывает вопросы. Дело в том, что хуюнкция, ссылка на описание которой висит на странице Version 1.0 Functions, принимает PHTTP_REPONSE - указатель на структуру HTTP_RESPONSE, в описании которой указано Windows Vista и новее. То есть документация Майкрософта - это какая-то лютая хуета, где старая и новая версии намешаны в один чан, и читать это говно, не зашквариваясь на всю жизнь, невозможно. Я понимаю, что HTTP_RESPONSE - всего лишь тайпдеф _HTTP_REQUEST_V1, но сука, где почитать про это нормально, чтоб не тыкаться как слоненок даун?

228 10 июля, 00:36 228 1431359

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

Ответы3184932088

229 10 июля, 02:58 229 1431411

>>1430261
Какие-то сорта тулчейнов, v140, v141, чо ставить-то?

Ответы31412

230 10 июля, 03:04 230 1431412

>>1431411
Mingw

231 10 июля, 03:08 231 1431413

Впрочем, отвечу.
https://stackoverflow.com/questions/40504552/how-to-install-visual-c-build-tools

232 10 июля, 20:23 232 1431849

>>1431359
Пиши под linux на обычных сокетах, хуле ты как ПХПешник?

Ответы31874

233 10 июля, 20:49 233 1431874

>>1431849
Мне по Windows надо, там моя программа общается еще кое-с-чем через SDK, который только под Windows есть. Тащемта похуй, winsock полностью косплеит berkley sockets, но это ж лютый пиздец руками пердолить парсер HTTP. Хотя.. зато саморазвитие дохуя, rfc1945 почитаю, лол)

234 11 июля, 03:23 234 1432088

>>1431359
Curl

235 11 июля, 19:04 235 1432587

>>1415970 (OP)
Я тут рот каждого ебал

236 12 июля, 10:04 236 1432972

Как это скомпилировать под win32?
https://bellard.org/quickjs/

Ответы33010

237 12 июля, 10:54 237 1433010

>>1432972
Берешь MinGW, правишь в 56 строке Makefile CROSS_PREFIX=mingw-, в 86 строку CFLAGS += -std=c11, в 153 строку в конец -lpthread, еще добавляешь куда-нибудь в начало cutils.h #include <malloc.h> я еще LTO оторвал, и все собирается make CONFIG_WIN32=1. Ну или то же самое из-под линукса, только без правок (наверное).

238 12 июля, 11:50 238 1433083

лол

239 12 июля, 18:49 239 1433429

Как сборсить захват bootvid’a после InbvAcquireDisplayOwnership? Естественным образом он слетает после изменения расширения экрана / входа-выхода из сна и есть неэкспортируемая InbvSetDisplayOwnership

Какие есть выходы?

нубас

Ответы336833377036884

240 13 июля, 03:30 240 1433683

>>1433429

Ты понимаешь что ты блять поехавший? Не Балмер блять, не Руссинович, а ты! Пиздуй на wasm с такими вопросами, шизик.

когда-то не осилил программирование под Ring 0 на винде, так и забросил, пиздец сложно, информации нихуя

241 13 июля, 09:56 241 1433770

>>1433429
Уважаемый нубас, нужен ваш совет.
На одной винде (семерка) есть такой баг, после загрузки или переключения дисплея, если запустить игру (обычно на directx9), то она крашится с ошибкой инициализации графики directx, но если запустить снова - всё окей, и все последующие тоже. Вот такой запуск не с первого раза. Что это может быть и как пофиксить?

Ответы34038

242 13 июля, 17:11 242 1434038

>>1433770
Обновления включены? Вроде подобная хрень фиксилась в каком-то KB

Ответы34552

243 13 июля, 18:36 243 1434125

Здрасте, у меня нубский вопрос.

Мне нужно сравнить значение указателя, объявленного uint32_t*, со значением переменной, объявленной uint16_t.

Я делаю так:
if ((uint16_t)ptr > var) {}

GCC выдает варнинг: cast from pointer to integer of different size [-Wpointer-to-int-cast]

Как мне правильно оформить приведение типа, чтобы избежать варнинга и чтобы правильно работало?

Ответы34167

sage 244 13 июля, 19:18 244 1434167

>>1434125
> Мне нужно сравнить значение указателя
При обычных условиях значение указателя заведомо больше, чем любое значение, влезающее в uint16_t (в первые 4к памяти никто не пишет в принципе, чтобы ловить обращения по нулевому указателю, а в первые 64к пишут очень редко). Если тебе нужно сравнить значение по указателю, то if (∗ptr > var) { ... }.

> Как мне правильно оформить приведение типа, чтобы избежать варнинга
Указатели кастят к uintptr_t из stdint.h, тогда будет работать независимо от разрядности платформы.

Ответы3417634197

245 13 июля, 19:30 245 1434176

>>1434167
> Если тебе нужно сравнить значение по указателю
Нет, именно значение указателя, т.е. некоторый адрес сравнить с некоторым значением, хранящимся в переменной (которое тоже по сути адрес, но 16-разрядный). Это работа с периферией микроконтроллера, нужно от первого 32-разрядного адреса взять младшее полуслово, старшее отбрасывается.
> Указатели кастят к uintptr_t из stdint.h
Спасибо, покурю.

246 13 июля, 19:47 246 1434197

>>1434167
Предупреждение исчезает, если написать
if ((uint16_t)((uint32_t)ptr) > var)
или же
if ((uint16_t)((uintptr_t)ptr) > var)
потому что на моей архитектуре
uintptr_t = uint32_t = unsigned int

247 14 июля, 03:18 247 1434552

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

Ответы34593

248 14 июля, 08:11 248 1434593

>>1434552
Почему игробляди такие тупые?

Ответы34605

249 14 июля, 08:36 249 1434605

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

Ответы3468134694

250 14 июля, 11:35 250 1434681

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

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

а польза для кого? для тебя? для него польза наверное тоже есть.

251 14 июля, 11:49 251 1434694

>>1434605
>унижая других
>Кто из них жалкое унижаемое говно понятно без лишних комментариев.
И то правда, согласен с этим дебилом.

252 15 июля, 20:13 252 1436212

>>1415970 (OP)
Анон, помоги, расскажи, какие есть способы обнуления массива?

В частности, у меня есть массив каких-либо структур. Я передаю указатель на него в функцию, которая, к примеру, заполняет поля этих структур.

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

Должен же быть какой-то каноничный способ, а?

Ответы36949

253 15 июля, 20:31 253 1436222

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

Ответы36227366443664636949

254 15 июля, 20:34 254 1436227

>>1436222
Что значит псевдо? ООП и есть парадигма, а не фича каких-то там крестов. Используй ровно настолько, чтоб удобные абстракции для себя сделать.

Ответы36233

255 15 июля, 20:38 255 1436233

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

Ответы36239

256 15 июля, 20:43 256 1436239

>>1436233
Ты никому ничего не должен. Зачем сразу полиморфизм косплеить, если сложна? Просто void ∗, конструктор/деструктор и функции с аргументов this, в чем проблема?

Ответы3627436640

257 15 июля, 21:07 257 1436269

Аноны, у меня идея охуительная. Прикрутить к сишечке препроцессорный конвертер иницилизированных массивов в обратное отображение. То есть, по объявлении my_direktiva char arr[] = "ABC"; генерируется массив, в котором элемент с индексом 'A' (65) имеет значение 0, 'B' (66) - 1, 'C' (67) - 2, а все остальные пустые -1. Размер массива в данном случае 68. Когда нужна подобная хуйня, или в рантайме генерирую, или не менее громоздким switch-case пользуюсь. Это шо, прагмами какими-то можно сделать?

Ответы36949

258 15 июля, 21:09 258 1436274

>>1436239
Так вот поэтому для меня это пока псевдо ООП с ограничениями из-за моего скила

Ответы36288

259 15 июля, 21:16 259 1436288

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

Ответы36627

260 16 июля, 11:22 260 1436627

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

Ответы366293663536636

261 16 июля, 11:34 261 1436629

>>1436627
У меня от тебя функция высшего порядка. ООП супер, а C++ и Go лучшие языки программирования

262 16 июля, 12:06 262 1436635

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

263 16 июля, 12:08 263 1436636

>>1436627
>функциональщина
кстати, норм ли косплеить хвостовую рекурсию, как в LISP, просто меняя локальные значения аргументов и goto на начало?

Ответы36639

264 16 июля, 12:17 264 1436639

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

Ответы36672

265 16 июля, 12:21 265 1436640

>>1436239
>Просто void ∗, конструктор/деструктор и функции с аргументов this, в чем проблема?
проблема в том что это отключает систему типов, используешь void* - берешь на себя часть работы компилятора

266 16 июля, 12:27 266 1436644

>>1436222
на си, в конечном итоге, удобней использовать не эмуляцию классического опп, а идеи компонентного программирования, в частности концепцию интерфейсов, идею включения вместо наследования..
в свое время были созданы компонентные системы на си - это com майкрософт или gtk от gnome, но зачастую проекты не используют библиотеки поддержки компонентного программирования, а просто сами реализуют нужный служебный функционал

267 16 июля, 12:30 267 1436646

>>1436222

второе - это когда есть необходимость использовать динамический полиморфизм
тогда напрямую реализуют vtable

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

268 16 июля, 13:20 268 1436672

>>1436639

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

Чтоб переделать рекурсию в итеративный алгоритм вручную, надо всего лишь определить struct args, повторяющую набор аргументов, с доп.полем retcode для адреса возврата, и отбросив те аргументы, что не используются на спуске, сгенерировать макросы st_push, st_pop, st_top (возвращает указатель на верхний элемент в стеке или NULL если пусто) для ведения стека на динамически расширяемом массиве struct args, ну и...

обернуть все в
rettype retval;
do {
исходный_код
} while (st_top(stack));
return retval;

rval = func(_a,_b,_c);
где a не нужен на спуске, заменить на
a = _a;
struct args _sa = {&&_l, _b, _c};
st_push(stack, _sa);
continue;
_l:
rval = retval;

return r;
заменить на
retval = r;
void ∗_retcode = st_top(stack)->retcode;
st_pop(stack);
goto ∗_retcode;

все остальные обращения к аргументам аналогично
st_top(stack)->argname

_ обозначены имена, которые имеют уникальный индекс каждый раз, как встречаются (_l это l1, l2, l3...)

Может упустил чего, но суть доставил.

268 16 июля, 13:20 268 1436672

>>1436639

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

Чтоб переделать рекурсию в итеративный алгоритм вручную, надо всего лишь определить struct args, повторяющую набор аргументов, с доп.полем retcode для адреса возврата, и отбросив те аргументы, что не используются на спуске, сгенерировать макросы st_push, st_pop, st_top (возвращает указатель на верхний элемент в стеке или NULL если пусто) для ведения стека на динамически расширяемом массиве struct args, ну и...

обернуть все в
rettype retval;
do {
исходный_код
} while (st_top(stack));
return retval;

rval = func(_a,_b,_c);
где a не нужен на спуске, заменить на
a = _a;
struct args _sa = {&&_l, _b, _c};
st_push(stack, _sa);
continue;
_l:
rval = retval;

return r;
заменить на
retval = r;
void ∗_retcode = st_top(stack)->retcode;
st_pop(stack);
goto ∗_retcode;

все остальные обращения к аргументам аналогично
st_top(stack)->argname

_ обозначены имена, которые имеют уникальный индекс каждый раз, как встречаются (_l это l1, l2, l3...)

Может упустил чего, но суть доставил.

Показать весь текст

269 16 июля, 17:16 269 1436884

>>1433429

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

270 16 июля, 18:26 270 1436949

>>1436212
Ну мемсет же.

>>1436222
ООП в Си обычно ограничивается something_create/destroy/do_smth(something ∗this, args), используется почти везде. Наследование на структурах реже, таблицы виртуальных функций тоже встречаются. За ADT на void ∗ периодически бьют ногами.

>>1436269
> препроцессорный конвертер иницилизированных массивов в обратное отображение
Используй внешний кодогенератор, пожалей читателей твоего кода. Встроенными макросами сможешь достить чего-то вот такого: char arr[] = { DEF('A'), DEF('B'), DEF('C') };, где #define DEF(x) [x] = какая-нибудь ебля на тему __COUNTER__ или его эмуляции.

Ответы37091

271 16 июля, 21:02 271 1437091

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

Ответы37222

272 16 июля, 23:22 272 1437222

>>1437091
Просто неправильно используешь.

2 Кб, 455x69
273 17 июля, 03:27 273 1437317

274 17 июля, 10:12 274 1437400

Cап, хочу покопаться в режимах процессора. Защищённый, виртуальный и прочий и написать хоть какой-нибудь код чисто для практики и немного исследования и опыта для себя.
Как это сделать на Сях, или мне катится в ассемблеро-тред?

Ответы37448375714000440246

275 17 июля, 11:31 275 1437448

>>1437400
-> /cpp/
-> /asm/

Ответы37467

276 17 июля, 11:58 276 1437467

>>1437448
бле, серьёзно? в спп тред катиться? Я тут АРхитектуру Компьютера курю, там код на асме и сях, думал мб точно на сях писать. Хотя я и си с++ знаю, но не до степени копания в в режимах процессора.

Ответы37525

277 17 июля, 13:06 277 1437525

>>1437467
Так что ты хочешь сделать? Из твоего поста ничего не понятно, если ты хочешь свой виртуальный процессор, то можешь писать его на чем хочешь. Другое дело, что уверен ли ты, что хватит скиллов реализовать на асме/сишке дескрипторы, параллельность, каталоги, кольца, треды, рекурсии?

278 17 июля, 14:19 278 1437571

>>1437400
>Защищённый, виртуальный и прочий и написать хоть какой-нибудь код чисто для практики и немного исследования и опыта для себя.
Реальный режим - это когда процессор 2019 года выпуска делает вид, что из восьмидесятых, запуская железный досбокс. При чем натурально досбокс, потому что смысл только в обратной совместимости.
Даже "адресация физических адресов памяти" уже никакого смысла не имеет, потому что адресуется аж один мегабайт.
У этой хуйни сейчас только музейная ценность.

Ответы3757337956

279 17 июля, 14:23 279 1437573

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

НО вот заебенить что-то с использованием архидревних режимов мне интересно. Так как это как я понял system programiing old-school

Ответы37956

280 17 июля, 23:06 280 1437956

>>1437571
> потому что адресуется аж один мегабайт
Это ты зря. Unreal mode как был, так и остался, адресуй не хочу. Отличается только лимитами в сегментах. Мало того, именно в сорт оф unreal mode процессор и стартует.

>>1437573
А в чем проблема? Берешь мануалы интела, которые System Programming Guide, можно от процессоров постарше. И с песней дрочишь cr0.

281 18 июля, 15:06 281 1438225

Двач, есть структура, которая содержит в себе массив других структур. Когда я инициализирую массив из таких структур, то при указании размера, например, 100, получают Segmentation fault.

Шо делать то

Ответы38229

282 18 июля, 15:11 282 1438229

>>1438225
Скинь код

Ответы3823838243

283 18 июля, 15:19 283 1438238

3 Кб, 398x743 Кб, 306x75

>>1438229

Ответы3824038520

284 18 июля, 15:22 284 1438240

>>1438238
Бро, его дохуища. У меня рантайм еррор. Ошибка всплывает тогда, когда я объявляю Block blocks[255]. Далее выполнение программы прекращается

Ответы38243

285 18 июля, 15:23 285 1438243

>>1438240
>>1438229
При этом, если например, размерность массива будет 10, то все работает ОК

Ответы38275

286 18 июля, 15:51 286 1438275

>>1438243
Массив такой здоровый может не влезть на стек, используй malloc, valgrind.

Ответы38649

287 18 июля, 16:26 287 1438295

Учу С, транслятор выдаёт ошибку, ссылаясь на такую строчку:
void function ( float x1, float y1, float x2, float y2, float&k, float &b)
что я делаю не так?

Ответы3829738434

288 18 июля, 16:28 288 1438297

>>1438295
>float&k
float &k, конечно

Ответы38305

289 18 июля, 16:46 289 1438305

>>1438297
Передавать по адресу в функцию это фишка крестов, в си ее нету.

290 18 июля, 19:59 290 1438434

>>1438295
В си нет ссылок, только указатели. Они звездочкой обозначаются

291 18 июля, 22:27 291 1438520

>>1438238
щас бы контейнеры делать через plain old data. Юзай кучу, человек

Ответы3865141491

292 19 июля, 08:58 292 1438646

2 Кб, 417x204 Кб, 646x224 Кб, 665x18

Сап Сисяч, учу Си не давно, хотелось бы прояснить один момент:
Что это такое перед функциями помимо типа ретурна?

Ответы38675

293 19 июля, 09:04 293 1438649

>>1438275
Спасибо, анон. И как можно узнать размерность стека? Почитать про вот такие вот рамки?

Ответы39312

294 19 июля, 09:05 294 1438651

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

Ответы38692

295 19 июля, 10:04 295 1438675

>>1438646
Дефайн стандарта вызова функции.
Можешь поискать определение к примеру CALLBACK.

Ответы38683

296 19 июля, 10:17 296 1438683

>>1438675
Ладно, c CallBack понятно, а с первой пикчей что?

Ответы38732

297 19 июля, 11:04 297 1438692

>>1438651
Короче, напрямую можно передавать, принимать и т.д. компактные структуры, но с вложенными массивами массивов это не канает. Через указатель все делается.
struct huerga ∗hrg = malloc(sizeof(struct huerga));
Потом везде, где надо обратиться к этой структуре, используется hrg->, но и под конец надо free(hrg) сделать.
Мне так кажецца.

1 Кб, 340x85
298 19 июля, 13:43 298 1438732

>>1438683
Это макросы, так что нужно смотреть исходники или так и гуглить: #define ИМЯ_МАКРОСА
Твою луу загуглит, держи. Твой макрос определяет другой макрос, который на пикче.

299 19 июля, 14:37 299 1438768

Что тут за дичь с изучающими.

Ответы38829

300 19 июля, 15:38 300 1438829

>>1438768
Просто кроме них никто больше не пишет =(

31 Кб, 607x617
301 19 июля, 17:34 301 1438972

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

Ответы3903539036

302 19 июля, 19:03 302 1439035

>>1438972
Лучше возьми write, им перепиши байты и потом удали.

Ответы39052

303 19 июля, 19:04 303 1439036

>>1438972
Бросай этот уже блядский С и иди изучай что-нибудь нормальное.

мимореадонли проходящиймимо

Ответы39052

304 19 июля, 19:29 304 1439052

>>1439035
Это из за этого он медленно работает? Нужно сразу крупными кусками писать, а не по одному байту?

>>1439036
Например?

Ответы39177

99 Кб, 682x489
305 19 июля, 21:03 305 1439117

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

306 19 июля, 23:19 306 1439177

>>1439052
Неее, буферизация у тебя подрублена в stdio для твоего файла.
Хз, зачем это ему. Вполне нормально определил размер файл, мне нрафки.

Ответы39277

307 20 июля, 07:10 307 1439277

>>1439177
>вызывать миллионы раз функцию, которая вызывает другие функции
>Да неее, всё заебись, у тебя буферизация подрублена в stdio

Ответы39295

308 20 июля, 09:54 308 1439295

>>1439277
>вызывать миллионы раз функцию, которая вызывает другие функции
А что не так с rand()?((((
И пусть тогда сам буфер реализует, если на write() всё построит.

Ответы39309

21 Кб, 451x513
309 20 июля, 10:53 309 1439309

>>1439295
Так вроде чуть быстрее работает. rand() быстро считает, основная задержка происходит при записи на диск.

Почему-то не могу буфер больше мегабайта сделать.

Ответы39312395254037440391

310 20 июля, 11:16 310 1439312

>>1438649
>И как можно узнать размерность стека?
↓
>>1439309
>Почему-то не могу буфер больше мегабайта сделать.

Ответы39391

311 20 июля, 14:35 311 1439391

>>1439312
Стек 16, ограничение в 1 компилятор делает, чтоб совсем уж по одном фрейме все не засрать и не словить seg.fault от пары вложенных вызовов. Ну, на linux64 точно, там под сегмент стека зарезервированы адреса 0x7fffff000000-0x7fffffffffff, то есть он растет сверху и индексируется последними 24 битами.

12 Кб, 373x212
312 20 июля, 15:37 312 1439433

господа, это норм хэш-функция?
rng простое число - забота вызыватора

Ответы3947639521

313 20 июля, 16:20 313 1439476

>>1439433
А чё?

314 20 июля, 17:11 314 1439521

>>1439433
Ниочень. У тебя там есть число, назовем его период, зависящее от rng - это количество символов через которые повторяются значения rem. Суть в том (если я нигде не обосрался) что если в строке поменять местами символы находящиеся на накоторой позиции х и на позиции х + период у тебя хеш строки не изменится.
Лучше высчитывай через sha256. Если тебе не нужен такой длинный (надо например только 8 бит) - то просто или бери только часть от полного хеша или разбивай его на восьмибитные куски и ксорь между собой (я думаю что два этих подхода равносильны между собой). Если тебе кажется что sha256 медленно - операция нахождения остатка очень медленная. Если тебе нужно какой-то свой хеш придумать - лучше обойтись сдвигами и ксором. Можешь посмотреть на алгоритм ксоршифта (xorshift) и двигаться приблизительно в том направлении. Например применить преобразования ксоршифта к первому символу, потом прибавить второй, применить к полученому преобразования, прибавить третий символ и так далее. Но тут тоже нужно осторожно - суммирование опасная операция (из-за коммутативности и ассоциативности). Если ты суммируешь дохуя каких-то результатов - сумма может получиться не такой неожиданной как кажется на первый взгляд.

Ответы3952539727

315 20 июля, 17:13 315 1439525

>>1439309
> Почему-то не могу буфер больше мегабайта сделать.
Никогда, никогда не используй VLA. Сделай со static, лучше. Хочешь динамический буфер - есть malloc().

>>1439521
> Лучше высчитывай через sha256
Это введение к мануалу "как заставить твою хэш-таблицу работать медленнее последовательного поиска по массиву"? Где скачать другие охуительные советы?

sage 316 20 июля, 23:28 316 1439691

>>1415970 (OP)
>Ben Klemens "21st Century C: C Tips from the New School"
Сама книга не очень. Чувствуется, что автор сам не такой уж эксперт по best practices.

Кому интересно почитать действительно серьёзный современный труд по грамотному программированию на Си - смотрите CERT C Secure Coding Standard.

Ответы39701

317 21 июля, 00:10 317 1439701

>>1439691
>CERT C Secure Coding Standard
Чёто на уровне Nasa C style guide

318 21 июля, 01:53 318 1439727

85 Кб, 670x47465 Кб, 461x1005

>>1439521
Затестил. Это типа хуевенькое распределение считается?

Ответы39751

319 21 июля, 03:17 319 1439751

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

Ответы39822

320 21 июля, 11:37 320 1439822

>>1439751
ну вот пост с 4chan разобрал, такое получилось

321 21 июля, 15:51 321 1440004

>>1437400
А я мечтаю заполучить в своё распоряжение какой-нибудь старый компьютер, вроде ZX Spectrum или MSX. Там ещё процессор Z80.
И вот попробовать с этой техникой что-нибудь сделать.
Например, попробовать пописать код для Z80.
Интересно, сейчас продают ли микроконтроллеры или платы с таким процем?
Есть ещё эмулятор BlueMSX.

Ответы4001640017402464024940265

322 21 июля, 16:32 322 1440016

>>1440004
Правильно мыслишь. В школе были MSX, других нигде не было тогда, поэтому с них начал, офигенные машины, кончал радугами и буквально жил в них, жаль только доков по прошивке не было нормальных, приходилось ото всюду по крупицам инфу собирать. Несколько лет спустя познакомился с ПК, ох, какой же хлам, не может ни в графику, ни в звук, ни во что, а что может - через жопу, гробина убогая. Так и не смог их полюбить.

Ответы40173

323 21 июля, 16:35 323 1440017

>>1440004
Есть ардуина с Z80

324 21 июля, 21:22 324 1440173

>>1440016
А из современныого, хочется пописать код для альтернативных систем, нежели чем этот x86, мать его ети.
Вот эти вот SPARC, MIPS, ARM. Ещё бы доступ к мэйнфрейму IBM где-нибудь заполучить, поиграться посмотреть что там.

Ответы40247

325 22 июля, 01:00 325 1440246

>>1437400
>или мне катится в ассемблеро-тред?
Да. Не представляю, как переключаться между режимами, например, на Turbo C.
>>1440004
>Например, попробовать пописать код для Z80.
А есть под него нормальные компиляторы С? Да и ассемблер у него несложный, влёгкую изучается по книжке Ларченко и Родионова. даже я, будучи школотой, осилил его

Ответы40253

326 22 июля, 01:01 326 1440247

>>1440173
>SPARC
Он разве жив?

327 22 июля, 01:18 327 1440249

>>1440004
>Интересно, сейчас продают ли микроконтроллеры или платы с таким процем?
Ты на авито хоть зайди раз в жизни, там этого хлама тонны, это спеков до геймбоя

sage 328 22 июля, 01:31 328 1440253

>>1440246
> А есть под него нормальные компиляторы С
Да, что-то завезли, но нормальным это не назовешь, да и смысла нет. Z80 без ассемблера - это какой-то аутизм уже.

329 22 июля, 02:51 329 1440265

>>1440004
>микроконтроллеры
Z86 (о котором много писали в "Радио" 90-х), eZ80 (который никто не видел, но все о нём слышали)

330 22 июля, 15:07 330 1440374

>>1439309
Как затереть таким образом файл больше двух гигов?

Ответы40376

331 22 июля, 15:15 331 1440376

>>1440374
>Unsigned long long

Ответы40381

332 22 июля, 15:24 332 1440381

>>1440376
ftell возвращает только long

26 Кб, 481x376
333 22 июля, 15:52 333 1440391

>>1439309
на линухе...

334 22 июля, 16:13 334 1440411

>>1427249
swap(NODE a) {a->city; }
В этом ↑ случае 'a' - указатель на структуру типа NODE. Обращение к полям структуры по указателю на структуру выполняется операцией '->'. Т.е. 'pointer_to_structure->field_of_the_structure'. Для того чтобы обратиться к полю 'city' структуры типа NODE, на которую указывает указатель 'a', надо написать 'a->city'.

swap(NODE a) {a.city; }
A в этом ↑ случае 'a' представляет собой саму структуру типа NODE. К элементам структуры обращение происходит с помощью операции '.'

Видимо, это сделано для того, чтобы комплиятор мог понять, где структура, а где указатель на структуру.

Вместо a->city можно было бы написать (a).city, что было бы преобразовано компилятором после операции разадресации '*' в 'structure_pointed_by_a.city'.

Ответы4041241325

335 22 июля, 16:15 335 1440412

>>1440411
>(a).city
(*a).city конечно же...

4 Кб, 437x53
336 22 июля, 18:25 336 1440515

Я новичёк в Си, столкнулся с одним кодом, и ни где нету ответов.
Хотелось бы узнать чем является LUA_API, так-же почему тут две пары скобок, хотя в объявлении функции идёт одна пара для аргументов.
Так-же почему во второй строчке вообще не указано имя?

P.S: Это код обьявление функций из Lua библиотеки

Ответы40521

337 22 июля, 18:29 337 1440521

>>1440515
>Хотелось бы узнать чем является LUA_API
grep -R "define LUA_API"
> так-же почему тут две пары скобок, хотя в объявлении функции идёт одна пара для аргументов.
Кто-то ебанулся. Вообще пробел перед звездочкой пишут говноеды, которые не понимают, что такое тип данных.

Ответы4052540549

338 22 июля, 18:32 338 1440525

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

339 22 июля, 18:36 339 1440532

Я щас понял что две скобки это указатель на функцию, а насчёт define LUA_API, нашёл вот такое:
#if defined(LUA_CORE) || defined(LUA_LIB)/ { /
#define LUA_API __declspec(dllexport)
#else / }{ /
#define LUA_API __declspec(dllimport)
#endif
Спасибо тебе за ответ

Ответы41486

340 22 июля, 18:53 340 1440549

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

341 23 июля, 14:13 341 1440954

<script src="//onlinegdb.com/embed/js/ry935DNGB?theme=dark"></script>

Ответы40956

342 23 июля, 14:14 342 1440956

>>1440954
https://onlinegdb.com/ry935DNGB
объясните почему цикл не срабатывает.

Ответы40970

343 23 июля, 14:54 343 1440970

>>1440956
У большую вводишь?

Ответы40977

344 23 июля, 15:12 344 1440977

>>1440970
нашел, из-за пробела перед второй кавычкой в scanf " %c",
не висло а ждало ввода, если два раза Y ввести всё работало.

76 Кб, 645x729
345 24 июля, 00:34 345 1441301

А можно ли устанавливать позицию в FILE отдельно на read и отдельно на write? fseek чет хуйзнаит как себя ведет в этом плане

Ответы413094132841487

346 24 июля, 00:43 346 1441304

так блять, мне вот еще что интересно...
Если я открыл непустой файл fopen("filename", "a");
то что скажет ftell?
Допустим, я хочу открыть файл, и если он достаточно большой (с прошлого запуска), то вычитать в буфер соответствующего размера, иначе догенерировать данных, необходимый количество которых выясняется по ходу дела, и лишь затем выделять буфер по факту достигнутого размера файла.

347 24 июля, 00:58 347 1441309

>>1441301
Нельзя, вообще говоря. И не нужно. Вообще, откуда такая цель, писать и читать одновременно?

Ответы41315

348 24 июля, 01:24 348 1441315

>>1441309
Уже понял. Позиция чтения и записи неразрывны. "a+" особый случай, когда запись всегда с конца, и ей похуй на fseek, а ftell похуй на нее.

349 24 июля, 01:55 349 1441325

>>1440411
спасибо

350 24 июля, 02:23 350 1441328

>>1441301
> А можно ли устанавливать позицию в FILE отдельно на read и отдельно на write?
Можно. Никакой магии не существует: делаешь свои обертки для read/write, которые трекают чтения/записи и твой fseek_custom, при необходимости вызывая реальные fseek/fflush и т. д. Писать подобный код - это нормально.

Ответы41337

351 24 июля, 02:51 351 1441337

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

352 24 июля, 10:06 352 1441420

Бля,вот эта ебанина вызвает кор дамп
#include <stdio.h>

void main()
{
printf("Hello world\n");
}

353 24 июля, 12:18 353 1441486

>>1440532
>Я щас понял что две скобки это указатель на функцию
Нихуя ты не понял, даун. А ответ про скобки вокруг имени функции ищется за 30 секунд в гугле.

354 24 июля, 12:19 354 1441487

>>1441301
>А можно ли устанавливать позицию в FILE отдельно на read и отдельно на write?
Открой файл 2 раза.

355 24 июля, 12:25 355 1441491

>>1438520
>щас бы контейнеры делать через plain old data. Юзай кучу, человек
Чё за хуйню ты написал, дебил? Какая связь между кучей и POD?

Ответы4155341555

26 Кб, 1011x191
356 24 июля, 12:34 356 1441503

>>1431035
>GDI+. Официально - только кресты. Неофициально ищи либу, например, на forum.pellesc.de.
Нахуй ты пиздишь?

Ответы41840

357 24 июля, 13:27 357 1441553

>>1441491
Ну, типа, когда структуру передаешь, как аргумент, или возращаешь, как значение, это все через стек делается. А если структура содержит все массивы в теле (POD), а не через указатели (куча), то и они хуярятся туда-сюда по стеку.

Ответы41594

358 24 июля, 13:31 358 1441555

>>1441491
Бля, хуево сказал. Короче, я понимаю, что и структуру, которая все массивы в теле носит, можно в куче выделить, но судя по проблеме, анон ее держит в стеке, а значит хотя бы массивы надо делать указателями на кучу, таким образом, отказ от POD и применение кучи связаны.

359 24 июля, 13:32 359 1441556

Ну бляяяя, я разучился говорить по ходу...

360 24 июля, 14:27 360 1441594

>>1441553
>А если структура содержит все массивы в теле (POD)
Откуда ты взял такое определение POD?

Ответы41693

361 24 июля, 15:20 361 1441628

362 24 июля, 16:27 362 1441693

>>1441594
страуструп писал, что POD - это то, что можно смело копировать, и никаких общих ресурсов не будет

363 24 июля, 21:56 363 1441840

>>1441503
Ты читай полностью, а не первое слово:
> It is recommended that you do not directly call the functions in the flat API.
И заодно попробуй написать на этом без крестов что-нибудь реальное, а не просто красный прямоугольник. Удовольствие то еще, приходится делать всевозможные обертки и адаптеры.

Ответы41965

364 24 июля, 22:50 364 1441886

>>1415970 (OP)
Анон, вопрос на засыпку. Теоретический такой.

Я тут реализую интерпретатор своего собственно маленького скриптового языка (что-то по типу питона), и вот такой вопрос: Как лучше всего и грамотнее реализовать вопрос хранения переменных этого языка? С учетом того, что язык то мой, по задумкам, совсем не строго типизированный.

Создавать что ли массив структур с тремя полями? Поле имени переменной и поле значения (void-указатель) и тип значения переменной? Ну как-то слишком очевидно, чтобы это было грамотным способом. Жду Ваших советов, умные Аноны. Буду рад почитать любые предложения. Заранее спасибо.

Ответы41887

365 24 июля, 22:51 365 1441887

>>1441886
Скачал тут исходники Lua, рылся-рылся, так пока и не нашел как они там реализуют вопрос пространства имен...

Ответы4194242001

366 25 июля, 00:36 366 1441942

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

367 25 июля, 01:06 367 1441965

>>1441840
>Ты читай полностью, а не первое слово:
Ты читай на что я отвечал, довн.

Было заявлено, что официально в GDI+ есть только кресты, а для C надо на каком-то васянском сайте искать либу.
Что, конечно, пиздёжь. Либа для C есть официальная.

Про recommended или не recommended и сложность использования API речь не шла вообще. Нахер ты про это пишешь?

Ответы4200242043

368 25 июля, 03:44 368 1442001

>>1441887
я даже знаю кто и на какую работу тебя взял, говно
так чтож давай сам, окей?

Ответы42066

sage 369 25 июля, 03:45 369 1442002

>>1441965
Не понимаю, почему ты горишь. Но давай еще раз для непонятливых. Плоский апи у GDI+ используют через крестообертки. Это официальный способ, цитату с MSDN я тебе уже привел. В GdiPlusFlat.h специально для тебя написано "Private GDI+ header file". Документация на MSDN написана для крестооберток. Да, обертки тонкие по большей части, и крестовый апи почти везде совпадает с ними по параметрам, но, тем не менее, отдельных статей для функций типа GdipLoadImageFromFile в MSDN нет, описаны только соответствующие крестовые конструкторы (а вот для них статьи есть).

Ответы4204342422

11 Кб, 850x386
370 25 июля, 08:12 370 1442043

>>1441965
>>1442002
Начнем с того, в GDI+ нет крестов, там си с классами, которые структуры.
Кресты это что-то вроде пикрелейтед.

Ответы42044

sage 371 25 июля, 08:14 371 1442044

>>1442043
>структуры которые классы
>там си
>показывает крестокод
Хуя шиза, я аж в поезде ахуел.

Ответы42116

372 25 июля, 08:34 372 1442052

Ну вот почему в Си нет аналога крестового <filesystem>? Хотя учитывая, что и туда-то его добавили аж в C++17, вопрос, наверное, отпадает. Году к 25 прикрутят.

Ответы420834232342425

373 25 июля, 09:21 373 1442066

>>1442001
Очень помог, спасибо.

Ответы42313

374 25 июля, 10:17 374 1442083

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

Ответы42238

375 25 июля, 11:59 375 1442116

>>1442044
Ты шизик ебучий, каким хуем Struct эквивалентен классам?
Если ты про C OOP, то читани хотя бы книгу из шапки. Стракты там вообще не причем, а все работает на void ptr void ptr void ptr void ptr ptr ptr ptr

Ответы42229

376 25 июля, 14:04 376 1442229

>>1442116
Это в до-диезе struct везде копируется, а class только ссылка передается. В крестах же единственная разница: нулевой (который до первого явного) спецификатор доступа public, если struct, и private, если class.
мимо

Ответы42314

377 25 июля, 14:10 377 1442238

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

378 25 июля, 15:35 378 1442313

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

Ответы42587

379 25 июля, 15:36 379 1442314

>>1442229
в крестах есть еще одно отличие структур от классов..

Ответы4235942363

380 25 июля, 15:44 380 1442323

>>1442052
а зачем? надо готовое, то почти всегда это будет в библиотеке, которую будешь юзать
например
https://apr.apache.org/docs/apr/1.7/group__apr__file__info.html

381 25 июля, 16:37 381 1442359

>>1442314
кокое?

Ответы42407

382 25 июля, 16:38 382 1442363

>>1442314
ой бля, уже понял

Ответы42406

383 25 июля, 18:01 383 1442406

>>1442363
что ты понял денверкодер9 чтооо

Ответы42407

384 25 июля, 18:02 384 1442407

>>1442359
>>1442406
есть еще разница при наследовании по умолчанию

385 25 июля, 18:26 385 1442422

>>1442002
>Не понимаю, почему ты горишь.
Обосрался — скажи, что оппонент горит. Типично.
> Но давай еще раз для непонятливых.
Да, давай.
>>1431035
>GDI+. Официально - только кресты. Неофициально ищи либу
Заявляется, что официальной либы для C нет. Я показал, что это — пиздёж. Официальная либа для C есть.

Всё остальное что ты пишешь — про документацию, про хуйню, малафью — это тупо манёвры. Про это речь вообще не шла.

Ответы42431

386 25 июля, 18:27 386 1442425

>>1442052
К сожалению, в 21 веке стало модным превращать Си в говно. Манифест они еще в C99 поменяли. На самом деле в стандартной библиотеке не должно быть ничего, кроме управления памятью, потоков/синхронизации и математики, т.е., там должно быть только то, что требует особой поддержки от компилятора при реализации. Все остальное можно (и нужно) тащить внешними библиотеками.

Ответы42453

sage 387 25 июля, 18:39 387 1442431

>>1442422
> Заявляется, что официальной либы для C нет
> Про это речь вообще не шла.
Нет. Именно про это и шла речь. Заявляется, что официально - только кресты:
> Whenever you make calls to GDI+, you should do so by calling the methods and functions provided by the C++ wrappers

Я не говорил, что нет либы для плоского апи, я сказал, что существует готовая, но неофициальная либа, в которой взяли крестовые обертки GDI+ и портировали на си, не меняя интерфейсы. Вот из всех этих Image::FromFile тупо сделали Image_FromFile. А теперь иди нахуй, заебал отрицать очевидное.

Ответы42443

388 25 июля, 19:03 388 1442443

>>1442431
Короче, ты не смог найти в документации инфы об официальной dll от Microsoft и пользовался каким-то затрояенным говном с какого-то левого сайта, а теперь маневрируешь что дескать в официальной документации не рекомендуют пользоваться C API, а значит ты прав.

Это пиздец.

389 25 июля, 19:25 389 1442453

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

Ответы42462

390 25 июля, 19:33 390 1442459

Проигрываю с зелени итт. Винапи это ИНТЕРФЕЙС. Его можно даже на пайтоне или джаваскрипте его использовать.

Ответы42474

391 25 июля, 19:38 391 1442462

>>1442453
> нет никакой особой поддержки
https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html Ну или, например, возьми компилятор, не умеющий в C11 и запили там thread_local.

392 25 июля, 19:58 392 1442474

>>1442459
А на луа можно?

Ответы42509

393 25 июля, 21:07 393 1442507

Из одного процесса можно как-то вызвать некоторую функцию другого процесса?
Допустим если через какую-нибудь общую память передать ссылку на нужную функцию. Будет ли валидно, или нет?

Ответы4252942543

sage 394 25 июля, 21:09 394 1442509

>>1442474
Да можно

395 25 июля, 21:38 395 1442529

>>1442507
виртуальную память гугли, и не спрашивай тут хуйню всякую

396 25 июля, 21:55 396 1442543

>>1442507
Есть масса способов. Главное не выходить за границы адресного пространства.

397 25 июля, 23:21 397 1442587

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

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

Ответы42680

398 26 июля, 02:02 398 1442680

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

Ответы42720

399 26 июля, 09:18 399 1442720

>>1442680
Тут согласен.

400 26 июля, 12:06 400 1442776

Как написать архиватор?

Ответы427774277842872

401 26 июля, 12:07 401 1442777

>>1442776
Да.

402 26 июля, 12:10 402 1442778

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

Ответы42786

403 26 июля, 12:28 403 1442786

>>1442778
Это tar какой-то получится без сжатия.

Ответы42790

404 26 июля, 12:31 404 1442790

>>1442786
Хоть это напиши, потом будешь думать как улучшить.

405 26 июля, 14:47 405 1442872

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

Ответы43014

2 Кб, 431x41
406 26 июля, 14:48 406 1442875

>>1415970 (OP)
почему на первую строчку компилятор ругается:
error: incompatible types when assigning to type 'double *' from type 'double'
а вот на вторую нет.

Ответы428784288343014

407 26 июля, 14:52 407 1442878

>>1442875
И че за хуйню ты пытаешься сделать?

Ответы42880

408 26 июля, 14:52 408 1442880

>>1442878
Просто разбираюсь с мемори аллокейт

Ответы42881

409 26 июля, 15:01 409 1442881

>>1442880
Сначала разберись с указателями и английским языком.

Ответы4288242884

410 26 июля, 15:02 410 1442882

>>1442881
А английский причем?

Ответы42932

411 26 июля, 15:03 411 1442883

>>1442875
&(_pi+0) =
_pi[0] =
Так делай и не выебуйся.

Ответы428854288742890

412 26 июля, 15:04 412 1442884

>>1442881
Ты, кстати, нахуй иди.
Потому что.

413 26 июля, 15:04 413 1442885

>>1442883
>>1442883
Спасибо, а как это адаптировать к моей записи?

Ответы42889

414 26 июля, 15:07 414 1442887

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

Ответы42891

415 26 июля, 15:07 415 1442889

>>1442885
Чет ты тупишь, не надо так.
&_pi=3.14;
&_mark=6996;
Старайся.

Ответы42892

416 26 июля, 15:07 416 1442890

>>1442883
А что за тонкости? Почему с int не нужно так делать?

Ответы42894

417 26 июля, 15:07 417 1442891

>>1442887
С нулевой.

Ответы4289343031

418 26 июля, 15:07 418 1442892

>>1442889
Еще раз спасибо

419 26 июля, 15:08 419 1442893

>>1442891
Ну она же первая по счету =)

Ответы42896

420 26 июля, 15:08 420 1442894

>>1442890
Нужно.
Ты его портишь и обосрешься в корку но позже

421 26 июля, 15:09 421 1442896

>>1442893
Удачи ловить ошибки забора.
Думай правильно, считай правильно - иначе пиздец.

Ответы42932

422 26 июля, 15:50 422 1442932

>>1442882
Читать сообщение компилятора об ошибке.

>>1442896
Ячейка первая по адресу, индекс в массиве у неё нулевой.
Разберись с русския языком сначала, а то пиздец что несешь.

Ответы4294243246

423 26 июля, 16:08 423 1442942

>>1442932
>первая по адресу
>первая
>по адресу
Олигофрен из ++ треда, ты?

Ответы43014

424 26 июля, 17:45 424 1443014

>>1442872
> может привести и к безразмерному увеличению размера
Не может. Оверхед RLE с одним байтом-счетчиком около 1/128 размера файла: половина значений байта для повтора, половина для пропуска несжимаемого. Итого, сжимая несжимаемое, ты через каждые 128 байтов втыкаешь лишний байт.

>>1442875
> компилятор ругается
Плохой компилятор. Добавь ему -Wall -Wextra, и начнет ругаться на вторую тоже.

>>1442942
Он хотел сказать первая по порядку.

Ответы43021

425 26 июля, 17:53 425 1443021

>>1443014
>Он хотел сказать
А по факту признался в умственной неполноценности.
Еще реплики в защиту животных будут?

426 26 июля, 18:16 426 1443031

>>1442891
Блядь, даунский пидор, по нулевому СМЕЩЕНИЮ находится первый элемент массива, а не какой не ебучий нулевой. Съеби в свои анекдоты про программистов считающих от нуля ржали всем офисом

Ответы43040

427 26 июля, 18:37 427 1443040

>>1443031
Вернись в свой тред - >>1416079 (OP)

Ответы43074

428 26 июля, 19:56 428 1443074

>>1443040
ахахаххаха джс тред типа быдлооооо)))))))) НУ ТУПЫЕ НЕ ТО ЧТО У НАС В ЮНИТФАКТОРИ

429 27 июля, 01:23 429 1443225

Посоветуйте простенькую либу для регулярок. В идеале, чтоб просто функция regex_match(const char ∗, const char ∗) была. Например, regex_match("13ABC", "[0-9]+[A-Z]+") == 1.

Ответы43231

430 27 июля, 01:45 430 1443231

>>1443225
Просто бери PCRE и не думай.

Ответы43234

431 27 июля, 01:54 431 1443233

Всем привет, написал свой простенький сервер на C. Хочу его задеплоить, чтобы к нему могли подключаться рандомные люди. Где это можно сделать бесплатно или достаточно дёшево?
Заранее Спасибо.

П. С. У меня есть доступ(вроде как) к виртуальной машине своего университета, мне необходимо чтобы к серверу можно было потключиться из универского wi-fi. Можно ли это как-то реализовать на этой машине?

Ответы43242

25 Кб, 714x600
432 27 июля, 02:01 432 1443234

>>1443231
нахуй надо, сам навелосипедил уже)

Ответы43272

433 27 июля, 02:52 433 1443242

>>1443233
Смотря что за доступ и в чём виртуальность заключается. И в настройках сети ещё. У тебя реально могут быть разные посети, твоя машина может быть за NAT относительно сети университета, и ещё могут быть различные межсетевые экраны и просто настройки машины, которые будут блокировать трафик по левым портам.

>>1443233
> Где это можно сделать бесплатно или достаточно дёшево?
Ты можешь купить настоящий VPS с выделенным IP буквально за 5 долларов/евро в месяц. Это дорого? Не думаю. И ты там сможешь делать всё. Мне кажется, что если ты занялся сетями, надо потратиться.

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

Ответы43469

434 27 июля, 03:15 434 1443246

>>1442932
Я обычно говорю про ячейки не "первая", а "начальная" и "последняя". Так оно куда как яснее.

Ответы43262

435 27 июля, 06:07 435 1443262

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

Ответы4326343304

436 27 июля, 06:13 436 1443263

>>1443262
Хотя, даже это неправильно. Вообще любой счет начинается с единицы. Ноль может быть когда говорится только про индекс ("индекс N"), когда же идет счет (N-й элемент), нумерация всегда с единицы.

Ответы4330443511

437 27 июля, 07:35 437 1443272

>>1443234
Ох и цветовая гамма. Ну ты у мамки хакер.

Ответы43319

438 27 июля, 11:09 438 1443304

>>1443262
>>1443263
Гумус, гумус never change.

439 27 июля, 12:16 439 1443319

>>1443272
Ночь ведь. А зеленый, потому что, когда RGB = 00 ff 00, четкость идеальная (ЭЛТ).

Ответы43715

440 27 июля, 17:15 440 1443469

>>1443242
Спасибо за ответ. Нашёл более простое решение, хотя решение с VPS мне тоже понравилось. Для моего проекта нужна была возможность подключаться к серверу из моего универа. Я просто подключился к своей сети и в ней создал сервер. Мне этого достаточно оказалось

441 27 июля, 18:04 441 1443511

>>1443263
> Вообще любой счет начинается с единицы.
В куче стран счёт, например, этажей начинается с нуля.

Ответы43620

442 27 июля, 22:52 442 1443620

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

443 28 июля, 07:51 443 1443715

>>1443319
А ты ещё и хипстер впридачу. Ну ваще бинго.

444 28 июля, 08:00 444 1443716

А где на вашем Си, собственно, РАБотку найти?

Ответы437184379844822

sage 445 28 июля, 08:08 445 1443718

>>1443716
Боже упаси тебя от работы на си.
лол, ты реально думал мы тебе годноту спалим?

Ответы43747

446 28 июля, 10:28 446 1443747

>>1443718
Но вы же мои друзья...

447 28 июля, 12:37 447 1443798

>>1443716
Программировать на СИ без 2ух вышек никуда не возьмут. Я серьезно.

Ответы4431644419

448 28 июля, 13:50 448 1443850

>>1415970 (OP)
Ищу кого-нибудь для общения вокруг программирования и матана, обмена ссылками и книгами, а так же для парного программирования.
Мои языки C, Python. Считаю что программист из меня так себе.
Сферы интересов: Теория игр, теория принятия решений, Управление и оптимизация, многокритериальное принятие решений, Марковские модели, конечные автоматы, теория графов, теория вероятностей, статистические методы, имитационное моделирование, ии и коллективное поведение и проч.
kn\horbelanANUSmarEgilPUNCTUMrLJAu

Ответы43956

179 Кб, 500x410
sage 449 28 июля, 15:53 449 1443956

>>1443850

Ответы4396144062

450 28 июля, 16:05 450 1443961

>>1443956
это рисунок справа или фото? если рисунок он был неплохим художником

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

Ответы44063

451 28 июля, 19:33 451 1444062

>>1443956
кекнул

452 28 июля, 19:35 452 1444063

>>1443961
>это рисунок справа или фото?
Ты себе никогда удостоверения не делал? Это вырезка из газеты.

Ответы44199

48 Кб, 434x953
453 29 июля, 03:25 453 1444195

Как же заебался делать велосипеды на каждый случай жизни...

Ответы44197

454 29 июля, 03:28 454 1444197

>>1444195
еще и ret забыл в bits переименовать, хосспаде...

455 29 июля, 03:29 455 1444199

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

Ответы44282

456 29 июля, 10:04 456 1444239

>>1415970 (OP)
>Brian Kernighan, Dennis Ritchie "The C Programming Language":
Но ведь куда лучше вместо этой книги использовать справочник Шилдта "Полный справочник по С". Там куда быстрее и понятнее описана база языка и больше практических примеров, больше работы с встроенными библиотеками .
А книгу Kernighan и Ritchie нет смысла читать, я считаю.

Ответы4431244349

457 29 июля, 12:20 457 1444282

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

Ответы44290

458 29 июля, 12:30 458 1444290

>>1444282
Мб про конченые рассказывал.

Ответы44292

459 29 июля, 12:31 459 1444292

>>1444290
Скорее показывал, ЕВПОЧЯ.

460 29 июля, 13:04 460 1444312

>>1444239
>Шилдт "Полный справочник по С"
А есть где это чудо в формате epub? Сейчас читаю книгу про луа от Иерузалимски в этом формате - очень годно.

Ответы45335

461 29 июля, 13:15 461 1444316

>>1443798
Одна вышка по проге, вторая - по философии, пойдет?

462 29 июля, 14:31 462 1444349

>>1444239
Толсто-с, толсто...

Ответы45807

463 29 июля, 16:55 463 1444419

>>1443798
О, а у меня одна вышка Computer Science со специализацией в Embedded Systems, а вторая системы связи и телекоммуникации. Норм?

Ответы4447945336

464 29 июля, 18:18 464 1444479

>>1444419
И у тебя хвостик

Ответы44721

465 29 июля, 23:51 465 1444721

>>1444479
wut?

466 30 июля, 01:49 466 1444752

Итак, ебанарот.. Есть цикл, который посимвольно читает инпут, пока не кончится файл. Но если файл не текстовый, то значение 255 может оказаться очередным байтом файла, а не EOF. Значит ли это, что вместо
while (EOF != (ch = fgetc(file)))
надо юзать
while (fread(&ch, 1, 1, file));
?

Ответы44785

467 30 июля, 07:19 467 1444785

>>1444752
fgetc возвращает int, проблемы нет

int fgetc(FILE *stream);

то есть возможные значения -1, 0-255

468 30 июля, 11:21 468 1444822

>>1443716
Можешь поизучать пердолинг микроконтроллеров. Там все в основном на си/си++. Востребованность небольшая, но она есть.

Вообще интересно, есть ли здесь те, кто в работе регулярно использует си? Для чего вы его используете?

174 Кб, 1535x980
469 30 июля, 14:26 469 1444895

помогите плез понять, от чего бинарник раздувается?
нужно было взять проект с гита с котором используется куча с++ библиотек вроде iostream и прочего, и заменить это все на библиотеки от с, чтобы можно было запускать хоть на чайнике. предполагаемый размер бинарника после strip и оптимизаций ~300кб, но что бы я не делал, ниже 2мб опуститься не получается.
очевидно, что туда вставляется какая-то статичная библиотека, но я не могу понять какая именно. nd нихера полезного не показывает.

Ответы44950

470 30 июля, 15:48 470 1444950

>>1444895
А почему нельзя взять с++ и запустить на чайнике? Какой смысл перелопачивать то что уже работает, и написано под микрики?,

Ответы44954

471 30 июля, 15:54 471 1444954

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

Ответы44985

472 30 июля, 16:47 472 1444985

>>1444954
tcc пробовал? Он, правда, только для 86-ых

473 30 июля, 19:49 473 1445095

Баганутый оптимизатор ломает семантику, о я ебу, или просто UB в исполнении прямолинейным маш.кодом заходит, а хитровыебанный варик нет?
https://github.com/PolazhinetsA/algo/tree/master/lzw
-O3 вообще норм вещь, или официально хуета без гарантий?

Ответы45157

474 30 июля, 20:00 474 1445104

Алсо, почему Intel такая контринтуитивная залупа? Результат побитового сдвига на ширину типа (int)val<<32 - не логичная с математической точки зрения крайность (0), как продолжение <<31, а по сути зануляется и идет по кругу сама величина сдвига, будто не shl/shr, а rol/ror какой-то, то бишь на выходе исходное значение. Это жи порождает дохуище исключений, которые надо костылировать if-ами, когда алгоритм предполагает, что 32 - значит всем дорога нахуй за пределы поля до следующей остановки, пиздос.. Может, я чего-то не догоняю, и в реальной индустрии такое поведение признается более корректным?

Ответы45157

475 30 июля, 21:06 475 1445157

>>1445095
> -O3 вообще норм вещь, или официально хуета без гарантий?
Норм вещь, если ты пишешь качественный код без UB (или понимаешь, что делаешь, умеешь в -fno-strict-aliasing и т.д.).

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

>>1445104
> Алсо, почему Intel такая контринтуитивная залупа
В мипсах, например, так же. В железе такое поведение реализуется проще и поэтому очевиднее. И вообще тебя это ебать не должно, потому что ты пишешь не для процессора, ты пишешь на Си, а стандарт такие сдвиги явно запрещает.

> когда алгоритм предполагает, что 32 - значит
Значит, что алгоритм неправильный, и твой код сломан.

Ответы4518345991

476 30 июля, 21:27 476 1445183

>>1445157
>сразу 18к выделил
Это типа размер хеш-таблицы N+12.5% с открытой адресацией на x86 с 4-байтовыми укзаателями? Да я htbl прост уже сделал раньше, вот и заюзал.
>алгоритм неправильный
я имел ввиду, что правильный алгоритм с некрасивыми if получится просто чтоб вернуть 0 там где полный сдвиг

Ответы45201

477 30 июля, 21:48 477 1445201

>>1445183
> чтоб вернуть 0 там где полный сдвиг
Пример давай, где у тебя внезапно возникают сдвиги на 32 и более.

> Это типа размер хеш-таблицы N+12.5%
Не совсем. Я имел в виду размер таблицы для 14-битных кодов (максимум), плюс что-то около 10%, с открытой адресацией там следующее простое число 18041. И указатели там не нужны, там вообще с последовательностями работать не нужно - вместо этих твоих data ptr и size ты просто хранишь предыдущий код и суффикс к нему.

Ответы4521245215

478 30 июля, 22:09 478 1445212

>>1445201
>предыдущий код и суффикс к нему
оце так бовдур я

479 30 июля, 22:18 479 1445215

>>1445201
>Пример давай, где у тебя внезапно возникают сдвиги на 32 и более.
дык в том же bitio.c

Ответы45266

480 31 июля, 00:47 480 1445266

>>1445215
> bitio.c
Не вижу, ткни носом. У тебя там должна быть простая логика: если в буфере меньше uintwid (почему у тебя дефайн не капсом?) бит, ты докладываешь их туда. Сдвиг менее 32 по определению. Доложил - flush-ишь, если нужно и дописываешь остатки. Остатков опять же меньше 32 по определению.

Ответы45290

481 31 июля, 02:11 481 1445285

Аноны, не обоссыте за оче глупый вопрос, но если сабж - побитовые операции переменных и констант, то компилятор принимает их в восьмеричном виде? А если один из операндов задан в виде какой-либо функции вроде 2^n ?

Ответы45293

482 31 июля, 02:49 482 1445290

>>1445266
Да есть там пара мест в bget, где прямо внутрь выражения тернарный оператор вхерачен, чтоб имитировать поведение 0x00000001<<32==0, например. Но я, кажется, понял. Маску можно по-другому делать, а второй случай вообще вхолостую крутится, когда сдвиг полный, и его обойти нормальным if лучше.
переделал хеш-таблицу и словарь, как было сказано)

483 31 июля, 03:02 483 1445293

>>1445285
>восьмеричном
да хоть в двенадцатеричном (12x13b0a, а это идея)
>2^n
ты о чем? 2^n == 1<<n, выделение временных ресурсов под вовращенное значение функции - забота конпелятора, что ты хочешь услышать?

484 31 июля, 10:55 484 1445335

>>1444312
Я пользуюсь книгой .htm с гиперссылками, открываю в браузере, удобно.

485 31 июля, 11:01 485 1445336

>>1444419
>Computer Science со специализацией в Embedded Systems
В США , Европе университет закончил?

Ответы45560

486 31 июля, 19:55 486 1445560

>>1445336
Embdded в Европе, а мага по связи в РФ была

Ответы45562

487 31 июля, 19:57 487 1445562

>>1445560
Теперь учись ершиком работать.

Ответы46476

488 1 авг, 09:24 488 1445807

>>1444349
Я серьезно. Что есть такого в Керниган и Ричи, чего нет в справочнике Шилдта.

Ответы459054590745917

489 1 авг, 13:31 489 1445905

>>1445807
Души

490 1 авг, 13:35 490 1445907

>>1445807
Если серьезно, чтоб быть хорошей книжкой, мало проехаться по всем пунктам. Старички очень методично доставляют знание, а Шилдт.. ну, я по Java читал, то еще говноедство, а в Си, говорят, тот и вовсе зря совался.
мимо не читал Шилдта, но для праведного восхищения классикой и обсирания любителей альтернаив первоисточнику причин не надо

491 1 авг, 13:42 491 1445917

>>1445807
А, ну все понятно, лол. Их сранивать нельзя. K&R - это курс, с охуительными упражнениями и т.д. и т.п., который реально надо осилить. А справочник с лирическими отступлениями.. ну чет говно без задач, хз кого он поставить на ноги рассчитывает. Какой-то ликбез для общения в Си-треде, не больше.

Ответы45924

492 1 авг, 13:49 492 1445924

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

Ответы45925

493 1 авг, 13:50 493 1445925

>>1445924
у тебя итератор поломался, пиздуй чинить

Ответы4592745993

494 1 авг, 13:54 494 1445927

>>1445925
i = i + sizeof(type) порвался

Ответы4593945957

495 1 авг, 14:08 495 1445939

>>1445927
ну и что это за хуйня? Если индекс или приведенный к нужному типу указатель, то просто инкремент, а если generic функция аки qsort, то type вообще не фигурирует, а непосредственно шаг в аргументах (опять таки, никто не мешает запилить локальную копию, как char (∗p)[sz]) и не кастовать потом, как еблан.

Ответы4594645993

1,3 Мб, 1024x683
496 1 авг, 14:18 496 1445946

>>1445939

497 1 авг, 14:41 497 1445957

>>1445927
Ты не понимаешь сути итераторов.
Мимокрестовик

Ответы45993

498 1 авг, 15:19 498 1445991

>>1445157
>-fno-strict-aliasing
Это как-то связано с возможностью разыменовать указатель на структуру, кастуя в тип первого поля? Напимер, tsearch (поиск по дереву от glib) возвращает не мой указатель, а указатель на мой указатель, который еще предстоит проверить на NULL прежде, чем разыменовать, потому что это на самом деле указатель на структуру-узел, чтоб можно было использовать, как аргумент к другим функциям, или вообще внутри их реализации вызывается. <search.h> то еще говно, там даже элементарная функция для очистки дерева в одну строку пользовательского кода tdestroy реализована вне стандарта (_GNU_SOURCE) и не портирована mingw, тем не менее, технически все норм. Это потому что .so скомпилирован до меня. а если я решу исходники взять, то с голым -O3 все сломается?

499 1 авг, 15:26 499 1445993

>>1445925
>>1445939
>>1445957
Пиздец вы дегенераты, конечно.
Бедная няшная, за что ей такие дебилы.

Ответы4602246023

500 1 авг, 16:06 500 1446022

>>1445993
о чем ты, хуесос?

501 1 авг, 16:07 501 1446023

>>1445993
Все равно не понимаешь.

ПЕРЕКАТ # OP 502 1 авг, 23:35 502 1446279

>>1446278 (OP)
>>1446278 (OP)
>>1446278 (OP)
>>1446278 (OP)
>>1446278 (OP)

503 2 авг, 11:18 503 1446476

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

Тред утонул или удален.
Это копия, сохраненная 30 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion