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


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
278 26 129

C Programming Language #46 /clang/ Аноним # OP 13/06/19 Чтв 18:46:04 14159701
C Programming L[...].png (78Кб, 792x1023)
792x1023
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь 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)
14/06/19 Птн 18:39:32 14165032
О, вы перекатились. мимопроебывался 2 недели
Аноним 14/06/19 Птн 23:52:53 14166663
Где вы эту MISRA 2013-го берёте?
Аноним 15/06/19 Суб 04:18:11 14167154
>>1416666
Купи, да выложи.
Также можешь купить последний стандарт за 13к рублей.
Аноним 15/06/19 Суб 04:49:57 14167195
>>1416666
Нигде, читай 2008, разницы все равно нет: ничего нельзя, мы все умрем.
Аноним 15/06/19 Суб 12:30:05 14167856
image.png (119Кб, 1280x1428)
1280x1428
Что я делаю не так?
Sample Output:

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

Аноним 15/06/19 Суб 12:31:38 14167867
>>1416785
Там должен получиться флаг СШП.
быстрофикс
Аноним 15/06/19 Суб 13:22:08 14167988
>>1416786
>флаг СШП
Лол, даже Си этому сопротивляется
Аноним 15/06/19 Суб 15:14:53 14168499
>>1416785
Запутался в циклах, очевидно же, ну и не проще ли сделать использую массив? Достаточно будет даже одного
Аноним 15/06/19 Суб 16:35:54 141686310
>>1416849
Я переменную не туда внес, из-за этого цикл получился бесконечным. Для меня там все очевидно, я же сам писал.
Аноним 15/06/19 Суб 16:36:55 141686411
>>1416849
Массив слишком сложно, я еще не умею с ними нормально работать.
Аноним 15/06/19 Суб 17:37:25 141688912
>>1416864
По возможности объявляй счетчики внутри for, не используй глобальные переменные и while вместо for.
for(int count = 0; count < 15; ++count)
printf("a");
Код станет в разы более читабельным, найдешь ошибку.

Если знаешь про функции - заверни печать в них:
int print_symbline(char c, int num)
{
// for или печать массива
}
Аноним 15/06/19 Суб 18:08:22 141690713
image.png (81Кб, 1200x400)
1200x400
Решил, я значит, что достаточно зашкварился на ближайшее время с printf-дебагом, и у меня, как всегда, подгорела жопа. Как в этом вашем ебучем gdb параллельно и input печатать, и комманды типа next, step, p ∗(int ∗)array@7 ?
Аноним 15/06/19 Суб 18:16:10 141691114
>>1416907
Ой все, извинити, простити, уже разобрался.
Аноним 15/06/19 Суб 20:31:29 141695615
>>1416911
И как? Тоже интересно.

мимо
Аноним 15/06/19 Суб 23:20:07 141700016
>>1416956
Он сам переключается в режим общения с программой, когда она блокируется в ожидании инпута. Но если прога хочет ввод, а ты хочешь сначала кое-что посмотреть по памяти, например, то можно вручную в диалог дебагера вернуться Ctrl+C, пробить что надо под промптом (gdb) и опять опять постучаться в выполнение командой continue.
Аноним 16/06/19 Вск 10:04:47 141710117
>>1417000
Спасибоу. Надо бы тоже сесть за gdb, а то плотные обмазывания трассировкой из printfов до добра не доведут.
Аноним 18/06/19 Втр 08:17:28 141811718
Народ подскажите как в clang узнать какие либы используются, в gcc можно было через -MD все в файл засунуть
Аноним 18/06/19 Втр 11:50:58 141818519
Аноним 18/06/19 Втр 12:03:14 141818920
152818427312202[...].jpg (30Кб, 400x300)
400x300
Аноним 18/06/19 Втр 12:04:28 141819021
>>1418185
>Хабр
>Автор оригинала: Kjetil Østerås
Анон, не шкварь шваброй двачь, пазязя
Аноним 18/06/19 Втр 13:11:14 141822622
>>1418189
Да, хабр скурвился.
Аноним 18/06/19 Втр 14:58:00 141826423
image.png (95Кб, 180x264)
180x264
Сап. Хочу поупарываться в сишном велосипедостроении.
Как я могу переписать стандартную библиотеку си? Хочу половину ненужной мне хуйни оттуда выкинуть. Слышал вот что люди сами пишут эти библиотеки, хотелось бы так же.
Как можно например изменить стандартные типы, это где то в самом компиляторе храниться?
Да и вообще, что есть си? Хотелось бы в этой алхимии разобраться чтобы все свое запилить. А то от вида исходников мне больно. Как подумаю что кроме нужного мне тянется еще 20кг говна аж в дипрессию впадаю.
Аноним 18/06/19 Втр 15:12:51 141826924
>>1418264
в K&R описана реализация менеджере кучи, остальное проще
Аноним 18/06/19 Втр 17:33:46 141834125
>>1418264
В современных осях стандартная библиотека довольно сложно реализована. Можешь посмотреть реализации для встраиваемых решений или для реликтов вроде доса. Там все попроще но не намного
Аноним 18/06/19 Втр 20:16:23 141847426
>>1418264
>хочу переписать стандартную либу
>iso646.h, string.h, math.h, stdatomic.h
вряд ли на что-то большее терпения хватит. За отправные точки бери реализации из gcc.

Если хочется поебаться и безуспешно пытаться поисправлять 30 летние костыли, то перепиливай unistd, stdlib, stdio
Аноним 18/06/19 Втр 21:36:33 141851827
>>1418264
> Как я могу переписать стандартную библиотеку си
Береш стандарт и реализуешь описанное поведение. Собираешь с аналогом ключа -nostdlib в твоем компиляторе, линкуешься, идешь переписывать еще и стартап. Линкуешься, радуешься.

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

> Как подумаю что кроме нужного мне тянется еще 20кг говна аж в дипрессию впадаю
С возрастом это пройдет и придет понимание, что байты надо экономить там, где это на что-то влияет, а не просто потому что все детали реализации не помещаются в твою голову.
Аноним 18/06/19 Втр 22:42:18 141855728
>>1418264
>изменить стандартные типы
27-битовые int хочешь?
Аноним 18/06/19 Втр 23:09:51 141857529
Аноним 19/06/19 Срд 13:17:40 141874130
>>1418264
>Как подумаю что кроме нужного мне тянется еще 20кг говна аж в дипрессию впадаю.
Ты точно на С пишешь? Что у тебя там тянется и откуда? Ты ебанутый?
Аноним 19/06/19 Срд 15:43:29 141885131
Аноним 20/06/19 Чтв 09:15:53 141921132
Расскажите программисты в каких рабочих проектах и для чего вам доводилось применять чистый си.
Аноним 20/06/19 Чтв 10:37:36 141926433
>>1419211
Разработка низкоуровневых компонентов операционных систем, программирование микроконтроллеров, поддержка легаси кода.
Аноним 20/06/19 Чтв 13:42:42 141938734
https://progtips.ru/c_express
Си-экспресс

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

Сборка “Си-экспресс 2.0” не требует установки и организована по принципу «распаковал и запустил».
Пойдет такаясреда для обучения? Может кто этого чувака знает?
Аноним 20/06/19 Чтв 13:47:33 141938835
>>1419387
Хороший такой завуалированый под вопрос на который отвечает шапка пиар параши, на уровне сммщиков в телеграме/инстаграме.
Аноним 20/06/19 Чтв 14:29:47 141940436
>>1419387
Ну т.е это тупо репак C::B.
Аноним 20/06/19 Чтв 14:55:44 141941137
>>1419388
Вот только наткнулся, хотел попробовать калькулятор простой под виндовс собрать. Кроме онлайн сред не пользовался ничем.
Аноним 23/06/19 Вск 23:51:23 142128438
Аноны, этот ваш Си не умеет в кроссплатформность у меня проблема. Надо кросс-компилить кое-какой код под винду, а он юзает malloc_trim и tdestroy. Их, естественно, под винду не завезли. Без malloc_trim течет память. Гигабайт может висеть на процессе просто так, про запас, если не вызвать malloc_trim(0) вручную. А без tdestroy я не знаю, какой костыль пилить и скармливать twalk для аналогичного результата. Че делать, сука???
Аноним 23/06/19 Вск 23:53:17 142128539
image.png (668Кб, 869x538)
869x538
боевую картинку забыл
Аноны, этот ваш Си не умеет в кроссплатформность у меня проблема. Надо кросс-компилить кое-какой код под винду, а он юзает malloc_trim и tdestroy. Их, естественно, под винду не завезли. Без malloc_trim течет память. Гигабайт может висеть на процессе просто так, про запас, если не вызвать malloc_trim(0) вручную. А без tdestroy я не знаю, какой костыль пилить и скармливать twalk для аналогичного результата. Че делать, сука???
Аноним 24/06/19 Пнд 00:30:29 142129640
>>1421285
> Гигабайт может висеть на процессе просто так
Это уже у запущеной под виндой программы? malloc_trim это вроде как чисто линуксовая хуйня, и на win таких проблем изначально нет, но я не разбираюсь в этом дерьме.
Аноним 24/06/19 Пнд 01:08:30 142131341
>>1421296
А.. ок, значит можно malloc_trim убрать. Но вот чтоб заменить во всех местах tdelete, надо к тем еще изъебам с одноразовыми функциями прибегнуть. Я уже хочу голыми руками задушить того, что придумал, что нужно в стандарт glib включать, а что и так сойдет.
Аноним 24/06/19 Пнд 02:51:25 142132142
latest[1] (64Кб, 326x340)
326x340
Аноним 24/06/19 Пнд 08:22:14 142134343
Аноним 25/06/19 Втр 03:12:34 142181844
>>1421321
Так в рейнджерах почти все наименования из кодинга взяты. Недавно перепроходил, проигрывал.
Аноним 25/06/19 Втр 14:46:24 142202745
2ch'ик помоги.
Ухх, решил заняться эпликейшином. До этого работал лишь в терминале.
У меня есть 3 поля Edit. В них я записываю имя, фамилию и адрес. Нужно как-то записать всю эту красоту в структуру данных(массив данных). Пробовал через strcpy(STU.FN,Edit1->Text.c_str);, но вылазят какиенто непонятные ошибки.
Помоги(
Аноним 25/06/19 Втр 16:25:27 142207446
>>1422027
>c_str
Есть мнение, что у вас кресты.
Аноним 25/06/19 Втр 16:28:03 142207747
image.png (252Кб, 768x577)
768x577
>>1422074
Лови крестоблядь!!!
Аноним 25/06/19 Втр 17:13:37 142208948
>>1422027
>в структуру данных
>вылазят какиенто непонятные ошибки
Телепаты на другой доске.
Аноним 26/06/19 Срд 04:52:27 142230349
>>1422089
Они в джава треде, сверх-люди как никак.
Аноним 26/06/19 Срд 17:14:36 142263650
Аноним 26/06/19 Срд 17:17:27 142263951
>>1422636
>эта кривая ссылка
Вся твоя жизнь одним постом.
>нужно
Кому?
Мне не нужно, тебе нужно - ты и ковыряй.
Аноним 26/06/19 Срд 17:31:30 142264952
>>1422636
>cpp
Ну ты понял, да? Вообще, лол, где это вы в Борланде-то пишете?
Аноним 26/06/19 Срд 20:05:13 142272253
>>1422639
Так я скинул чтобы было легче. Ты сам же сказал что тут телепаты на другой доске...
Аноним 26/06/19 Срд 20:06:04 142272454
>>1422649
Я на си пишу. Борланд... в коледже заставляют. Я сам его ненавижу...
Аноним 26/06/19 Срд 20:08:14 142272555
Аноним 26/06/19 Срд 22:25:51 142280856
15363018473722.png (868Кб, 960x721)
960x721
изображение.png (650Кб, 720x1280)
720x1280
>>1415970 (OP)

если тред жив, скажите, я учил Си по учебнику Прата лет 5 назад.давно не писал ничего на нём.
Сейчас пишу на пайтоне.
С какой книги лучше начать повторять Си. K&R?пикрил у меня дома. мамкин Я хочу понять как в современном Си все делается, чтобы это не было нормально.
Аноним 27/06/19 Чтв 00:19:44 142288157
>>1422808
стандарт читани в онлайне и статейки по многопоточности, и все ок будет. Если уж прям хочется с нуля, то книжка Язык Программирования C, но она крайне посредственна. доки компиляторов тоже почитай. бля девчонке бы в качалку такая жопа была бы пиздатая... эх
Аноним 27/06/19 Чтв 00:42:45 142289058
15374493760123.jpg (57Кб, 640x421)
640x421
>>1422881
Стандарт? А у меня мозги не выкипят?
Ты о чьей книге говорил, прата или к и р?
А как насчёт козьерока?
.
Аноним 27/06/19 Чтв 00:58:43 142289159
>>1422890
Прату читай. Совет читать стандарт, да еще если постоянно на Си не пишешь - это явный троллинг.
27/06/19 Чтв 01:06:30 142289560
>>1422890
У майкрософта и нвидии ещё нихуевые гайды есть по си, можешь тоже ознакомиться
Аноним 27/06/19 Чтв 16:32:49 142333661
что делает
int i : 6;
?
Аноним 27/06/19 Чтв 17:27:30 142337262
изображение.png (5Кб, 221x246)
221x246
изображение.png (5Кб, 979x512)
979x512
>>1415970 (OP)
Анон, помоги разобраться с функциями, которые принимают переменное число аргументов.

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

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

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

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

Аноним 27/06/19 Чтв 17:30:33 142337463
Аноним 27/06/19 Чтв 17:33:19 142337764
>>1423336
В теле объявления структуры задает 6-битовое поле. Если у тебя критические требования к экономии памяти, а какая-то структура будет паковаться целыми массивами, то можно так ее сжать, оставив минимально необходимый диапазон значений для того или иного int поля, и для всех операций сгенерируется маш.код со всеми необходимыми побитовыми сдвигами для корректного результата. То есть за счет процессора экономишь память.
Аноним 27/06/19 Чтв 17:33:19 142337865
>>1423374
Хотелось бы разобраться в азах: как работают указатели и тому подобное. Знаю про эту макрокоманду, но все-таки... Хочется понять С
Аноним 27/06/19 Чтв 17:55:51 142339166
>>1423377

а если этот код будет вне обьявления структуры ?
Аноним 27/06/19 Чтв 18:59:10 142344367
Аноним 27/06/19 Чтв 23:38:04 142360168
>>1423378
> Знаю про эту макрокоманду
Функции с переменным числом аргументов работают только с va_list. Реализации зависят от платформы, поэтому вручную читать не стоит.

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

>>1423391
> а если этот код будет вне обьявления структуры ?
Тогда ты будешь послан нахуй компилятором.
Аноним 28/06/19 Птн 09:33:20 142375669
>>1423601
>Функции с переменным числом аргументов работают только с va_list. Реализации зависят от платформы, поэтому вручную читать не стоит.

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

>Алсо, твое &first[0] всегда равно first, зачем ты это делаешь?
Делал для себя. Мне так понятнее. Смотря на такую запись, я понимаю, что амперасанд возвращает адрес первого элемента массива.
Аноним 28/06/19 Птн 09:58:27 142377270
>>1423756
> адрес первого элемента массива.
а не первого элемента, первого массива?
надо указатель на первый элемент каждого массива.
Аноним 28/06/19 Птн 10:01:39 142377771
>>1423772
Я понимаю это. Но как это сделать? Если массив first объявлен и получить адрес на первый элемент просто, так получить адреса первых элементов массива, которые передаются в функцию "неявно"?

va_list рационально использовать, я понимаю, и придумывать велосипед смысла нет. Просто интересно, все-таки, как реализован, например, тот же va_list. Хочется разобраться во всем.
Аноним 28/06/19 Птн 10:34:05 142378672
>>1423777
может просто длину первого массива прибавить +1 получим начало следующего?
Аноним 28/06/19 Птн 11:58:34 142385873
>>1423786
Не выйдет. Такое ощущение, будто массивы расположены не последовательно в памяти.
Аноним 28/06/19 Птн 12:29:54 142388174
>>1423858
может тогда самому выделять память под массивы? типа задаешь динамически память (стек) для аргументов функции в этой же функции и они по порядку встают, точнее не смогу пояснить сам только 2 месяца как учить начал.
Аноним 28/06/19 Птн 13:10:35 142391175
>>1423881
Вообщем, без __builtin_va_list не обойтись никак.

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

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

Создав на нее указатель достаточно сдвигать его с помощью p++, теперь ты получаешь значения каждого аргумента: это работает, например, при передачи одновременно масссивов char, и, например, обычных чисел int.
Аноним 28/06/19 Птн 13:18:37 142391276
изображение.png (16Кб, 699x361)
699x361
изображение.png (15Кб, 979x512)
979x512
изображение.png (12Кб, 556x217)
556x217
>>1423911
на втором пике результат работы программы при использовании ключа %d в printf. Значения в рамке -- как раз те char-массив.
Аноним 28/06/19 Птн 13:25:44 142391577
изображение.png (5Кб, 979x512)
979x512
>>1423912
Интересно то, что указатель p указывает вцелом на массив, а не на его конкретный элемент.

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

VA_START -- адрес, полученный с помощью функции __builtin_va_start, а CHAR
-- адрес полученный обычной операцией cp = first, где cp -- char *cp;
Аноним 28/06/19 Птн 16:18:20 142399778
Еще вопрос, Аноны. Есть ли в Си следующая возможность.
Например, при подключении заголовочного файла выполнять операцию.

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

Для чего это нужно? Ну, например, при подключении файла, нужно автоматом просчитать некоторые значения, или сформировать готовую и инициализированную структуру.
Аноним 28/06/19 Птн 16:37:27 142401079
Аноним 28/06/19 Птн 17:40:06 142404380
>>1424010
Можешь подробнее описать? Или мануал какой-нибудь кинуть?
Аноним 28/06/19 Птн 18:08:42 142405581
>>1423997
шта? что значит при подключении с прмрщью include? Ты не понимаешь как программа собирается, или я просто не понимаю что ты хочешь?
Аноним 28/06/19 Птн 18:21:06 142406482
>>1423997
#include "fileblya" просто вхерачивает содержимое fileblya вместо себя. Дальше сам фантазируй, как заставить препроцессор захардкодить что-либо в зависимости от контекста (того, что перед #include). Например, в инклудируемом файле следующее:
#ifdef VALUE_FOR_ZALUPA
int zalupa = VALUE_FOR_ZALUPA
#else
int zalupa = 0;
#endif
Хз, что еще ответить.
Аноним 28/06/19 Птн 18:24:23 142406683
>>1424064
ой, мои пардоны, хуйню написал, нельзя в хедере определения имен делать, т.к. если он инклудится в нескольких местах, получается дублирование. Функции только прототипами, а глобальные переменный - extern (реально лежит в одном из исходников)
Аноним 28/06/19 Птн 20:21:56 142413684
>>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
Аноним 28/06/19 Птн 20:23:41 142413885
>>1424136
Это только для gcc/clang
Быстрофикс
Аноним 29/06/19 Суб 00:58:48 142426986
>>1423756
> например, если вместо массива передать foo(1,2,3,4,5,6,7), то все они выведутся поочередной
Еще раз. Зависит от архитектуры. Где-то оно, лишь завидев ... в аргументах, положит аргументы сразу в стек, где-то в регистры по очереди (причем очередь разная, и регистры тоже). Поэтому вот просто так взять и сделать решение нельзя. Например, вот такое будет работать на 32-битном x86 (gcc -m32), но не работает на ideone, потому что там x86-64: http://ideone.com/joRPgl
Аноним 29/06/19 Суб 01:02:27 142427287
>>1424055
Ну да. Хуяришь такой библиотеку какую-то и надо, чтобы, как только ты ее заиклудил, хуяк, и надпись такая в консольке: "подключена библиотека олололололо", причем, оператор вывода надписи должен быть в хедере например, который ты инклюдишь
Аноним 29/06/19 Суб 01:03:29 142427488
>>1424136
Ого-го, а, можно подробнее? Что это за такое имя __atribute__?
Аноним 29/06/19 Суб 01:04:29 142427589
>>1424269
Спасибо, Анон. Пояснил.
Аноним 29/06/19 Суб 01:14:21 142427890
изображение.png (17Кб, 491x314)
491x314
Аноним 29/06/19 Суб 01:21:27 142428591
>>1424278
Тому что атрибуты есть у функций, а у тебя тут хуй пойми что. Добавь (void) перед фигурной скобкой что ли.
Аноним 29/06/19 Суб 01:24:22 142428692
Спасибо Анон, заработало. А, где можно почитать про это?
Аноним 29/06/19 Суб 01:34:32 142429093
Аноним 29/06/19 Суб 08:06:41 142432594
>>1422722
Про телепатов это я писал. Ссылки все протухшие.
Аноним 29/06/19 Суб 14:57:29 142454395
Scr159.jpg (90Кб, 858x840)
858x840
Scr160.jpg (92Кб, 863x842)
863x842
В чем проблема? и как фиксить Ткните носом...
Алсо все время путаю в чем разница между . и ->, как понять навсегда?
Аноним 29/06/19 Суб 15:05:36 142454696
Аноним 29/06/19 Суб 18:02:07 142461997
>>1424546
Ну тоесть если я напишу Node* x, потом могу писать x.city?
Аноним 29/06/19 Суб 18:02:58 142462098
>>1424546
А ошибку как исправить?
Аноним 29/06/19 Суб 18:29:17 142462599
>>1424619
Если ты обращаешься к полям/методам объекта, то используешь operator.
Если у тебя есть указатель на объект, то тебе нужно дереференсить его, прежде чем обращаться к компонентам класса. Чтобы лишний раз не дереференсить поинтер и обращаться через точку [i.e. (A).B], можно использовать operator-> [i.e. A->B]
>>1424620
А ошибка у тебя в том, что a - это указатель, а ты пытаешься точкой обращаться к его полю. Либо делай (
a).city.name, либо a->city.name
Дальше код не смотрел, могут быть ещё и другие ошибки
Аноним 29/06/19 Суб 18:31:51 1424627100
>>1424625
Курсив немного испортил ответ, там должны были * быть.
Аноним 29/06/19 Суб 19:03:12 1424643101
>>1424625
Я уже понял что надо a->city.name, но там другая ошибка получается...
(с числом) все ок,
temp.coordinates.latitude = a->city.coordinates.latitude
но стрингу (текст) не могу назначить
temp.name = a->city.name
error: assignment to expression with array type
и я не пойму почему пишет аррей тайп если там вроде как стринг...
других ошибок вроде как нет, так как код работает просто не сортирует
Аноним 29/06/19 Суб 19:24:21 1424648102
>>1424643
Строки в C - массивы символов. Чтобы скопировать строку, тебе нужно циклом пройтись по каждому символу и скопировать его в массив char name[]. Или же воспользоваться чем-то вроде strcpy().
Аноним 29/06/19 Суб 20:32:49 1424666103
>>1424648
#define strcpy(dst,src) memcpy(dst,src,strlen(src))
Аноним 29/06/19 Суб 21:34:52 1424686104
Аноним 29/06/19 Суб 21:58:36 1424698105
>>1424686
Дефайн-оптимизация - рофл. Не думаю, что strcpy реализован, как в книжке while (∗dst++ = ∗src++), или как memmove с поддержкой оверлаппинга (с побайтовым копированием от начала до конца, если адрес src больше, или от конца до начала, если адрес src меньше). Наверняка в ридонли считает конец и потом быстрыми обращениями к оперативке нужные куски переносит.
Аноним 29/06/19 Суб 22:49:03 1424720106
>>1424698
Двачую этого. Тут у >>1424666 strlen() один проход и у memcpy() один проход, т.е., всего два, в то время как в strcpy() справляется за один.
Аноним 29/06/19 Суб 23:03:47 1424728107
>>1424720
"этот" и трипл - один анон
мимо один анон
Аноним 29/06/19 Суб 23:05:50 1424730108
>>1424720
Дык memcpy - это не проход побайтовый, там круче все, но массивы не должны пересекаться. Вот memmove традицонно медленный, да.
Аноним 29/06/19 Суб 23:49:39 1424739109
>>1424730
> Дык memcpy - это не проход побайтовый
И что? Это все равно проход, там просто в середине массива данные копируются через SIMD обычно, блоками размером побольше, чем байт. strlen() тоже можно через SIMD реализовать или, например, 32-битными словами читать и сравнивать, но это опять же все равно проход. Вместе это все равно два прохода, хоть ты на голову встань.
Аноним 29/06/19 Суб 23:54:42 1424741110
Аноны, может кто знает либу под Шиндовз, чтоб http реквесты/респонды составлять/парсить и на сокет писать/читать? Есть кое-какое задание, я уже через голые сокеты сделал, но надо бы мои json заворачивать в правильный месседж, а руками пердолить как-то неправильно. Нагуглил WinHTTP (а для сервера там какой-то нёх HTTP Server API), и шото так лень в этих абстракции вникать по Микрософтовским докам, шопиздец.
Аноним 30/06/19 Вск 00:09:15 1424746111
Аноним 30/06/19 Вск 00:15:59 1424749112
Аноним 30/06/19 Вск 00:17:25 1424750113
>>1424739
хм, а я думал контролер памяти умеет в команды типа "copy 4kb otsuda tuda". Ну, ведь страницами же все ремапится в виртуалку процесса, то есть каждые 4192 байт гарантированно лежат рядом
Аноним 30/06/19 Вск 00:44:32 1424759114
>>1424750
> контролер памяти умеет
Сходить в ядро, чтобы поболтать с ним об этом, стоит гораздо дороже, чем из кэша в кэш через SIMD перекидывать.
Аноним 30/06/19 Вск 23:04:37 1425197115
//...
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);
//Что я делаю не так? Почему не выводится? Подозреваю нужен цикл, но я не знаю как это реализовать.
Аноним 30/06/19 Вск 23:18:25 1425208116
>>1425197
Ты уверен, что это C, а не C++?
Аноним 30/06/19 Вск 23:24:34 1425213117
>>1425208
Не особо.

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

Агрр...
Аноним 01/07/19 Пнд 00:17:51 1425230118
Господа,
А есть ли в С что-то для приколов со спрайтами? Я внезапно наткнулся на QB64, там это искаропки.
Аноним 01/07/19 Пнд 04:32:49 1425263119
Аноним 01/07/19 Пнд 05:38:04 1425268120
>>1425230
SDL, ну или allegro, тыкай что больше понравится
Аноним 01/07/19 Пнд 09:41:21 1425303121
>>1424543
>Алсо все время путаю в чем разница между . и ->
Это каждая иде автоматически подсказывает вроде, нет?
Аноним 01/07/19 Пнд 17:05:17 1425513122
gcc?
Аноним 02/07/19 Втр 09:49:06 1426017123
Аноним 02/07/19 Втр 15:05:18 1426215124
IMG201907020804[...].jpg (101Кб, 960x709)
960x709
Аноним 02/07/19 Втр 16:29:30 1426300125
Кстати, кроме graphics.h из прошлого века что-то есть под винду? Хочу легко и просто рисовать линии и пиксели.
Аноним 02/07/19 Втр 16:59:36 1426344126
>>1426300
Если только линии и пиксели, то на OpenGL относительно компактно это делается.
Аноним 02/07/19 Втр 17:03:34 1426353127
>>1425197
>Что я делаю не так?
>const char c = NULL;
Это не указатель, чтобы ему присваивать нулл, но прокатит.
>text = c;
Ты обнулил свой text, в который ты записал данные двумя строками выше.
Аноним 02/07/19 Втр 18:59:38 1426420128
>>1426215
Да не так уж и сложно. Разобраться в построении логики на таймерах, написать пару функций для работы с текстурами, использовать структуры.
Аноним 02/07/19 Втр 21:31:06 1426587129
А что мешало добавить библиотеку для строк как в крестах? Не то чтобы массивы неудобны, но все же.
Аноним 02/07/19 Втр 21:49:40 1426633130
>>1426300
> просто рисовать линии и пиксели
"Старый" Windows GDI API.

>>1426587
Возьми и добавь в свой проект. Тысячи их.
Аноним 03/07/19 Срд 01:40:38 1426809131
>>1426587
Что изменит библиотека? Массив так и останется массивом.
Аноним 03/07/19 Срд 10:17:58 1426891132
Какие есть фреймворки для написания оконных приложений на си? Под линукс, но в идеале чтоб можно было и под винду скомпилировать(если такое возможно). P. S в C руб, только дочитываю K&R
Аноним 03/07/19 Срд 10:42:10 1426898133
>>1426891
Вот я выше спрашивал >>1419387

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

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

Сборка “Си-экспресс 2.0” не требует установки и организована по принципу «распаковал и запустил».
Пойдет такаясреда для обучения? Может кто этого чувака знает?
Аноним 03/07/19 Срд 11:22:48 1426918134
Аноним 03/07/19 Срд 13:23:44 1426975135
>>1426898
Никто не знает про это твое васяноподелие. Под винду есть вижуалстудия, есть нормальный Code::Blocks, есть Pelles C, наконец.

>>1426891
> Какие есть фреймворки
Кроссплатформенные - все как один говно. Пиши под линукс на GTK, как уже посоветовали, под винду на Windows API.
Аноним 03/07/19 Срд 15:40:24 1427052136
20180618143731-Z.jpg (8Кб, 225x225)
225x225
Анон, мне че-то ссыкотно. Я ведь по этому направлению учился, а сейчас чувствую что как в тех шутках про сишников, которые нищие в свитере программируют за еду. Чувствую прям душа к этому лежит, регистры, апи виндовс, сокеты по сей день интересуюсь этим, но че-то гнетет как-то чувствую себя отсталым от мира и тенденций, как старый дед с рубанком и паяльником. Касперски сейчас обмазываюсь еще и windows internals. Но работаю прикладником, правда.
Не проебался ли я, анон? Может настало время похоронить эту мечту. Извел себя весь уже, а бросить не могу, затягивает сам знаешь...
Аноним 03/07/19 Срд 15:51:23 1427055137
>>1427052
Все мечтаю написать для винды расширение одно или даже свою ос, дурак. Надо было перекатываться в джаву мли в дотнет хотя бы. Вон однокурсник звал же меня в Нижний, я не поехал. А он уже по тем временам нормально зарабатывал, сейчас поди уже и дом построил. Че делать теперь, хуй знает, не молодой уже, 30-ник...
Аноним 03/07/19 Срд 17:24:31 1427129138
Аноним 03/07/19 Срд 18:17:48 1427189139
ptrdiff_t eto UB
Аноним 03/07/19 Срд 19:50:01 1427249140
>>1425303
Подсказывает, но работают обе версии
swap(NODE* a) {a->city; }
и swap(NODE a) {a.city; }
и не разберусь хоть и немного мне пояснили по понятиям
Аноним 03/07/19 Срд 19:54:32 1427256141
>>1425303
хотя иногда и не очеть внятно подсказывает
Аноним 03/07/19 Срд 23:25:05 1427465142
>>1426975
На WinAPI написать оконное приложение нормальное СЛОЖНА. Хотя не. Долго и комплексно.
Мимо
Аноним 04/07/19 Чтв 00:08:05 1427504143
>>1427465
> СЛОЖНА
Проще, чем на GTK. Но ты прав, долго. Но это если у тебя сложный интерфейс. А полторы кнопочки (т.е., то, что обычно нужно новичку) реализуются с помощью диалогов строк в 50, считая обработку событий.
Аноним 04/07/19 Чтв 00:36:38 1427511144
>>1426891
>Какие есть фреймворки для написания оконных приложений на си? Под линукс
Никакие. Юникс-вей это libyoba написанная на си, консольный фронтэнд yoba, написанный на си, и гуевый фронтэнд, написанный на каком-нибудь питоне.
Аноним 04/07/19 Чтв 00:39:16 1427513145
>>1427511
И да, фронтэнд не нужен. Педролься в консоль, сука. Гуй он задумал писать. Мудак.
Аноним 04/07/19 Чтв 00:51:12 1427520146
>>1427504
Ну я чет уже на прикручивании пары инпутбоксов и кнопок для выбора директории, и инбутбокса, для вывода типа консольного, запутался и потерялся.
Аноним 04/07/19 Чтв 01:47:15 1427541147
>>1427520
А в чем проблема нарисовать диалог мышкой? Обработать WM_COMMAND для IDC_твоякнопка1 и IDC_твоякнопка2, вызвать SHBrowseForFolder (почитать справку, охуеть, обернуть в функцию - это самая долгая часть - минут пять, наверное), сделать SetDlgItemText с результатом в инпутбоксы, сделать функцию, которая будет делать твоему "консольному" текстбоксу SendDlgItemMessage(EM_SETSEL и EM_REPLACESEL) . Не намного сложнее, чем на каком-нибудь шарпе, особенно если взять windowsx.h с ихними HANDLE_MSG и макросами вокруг посылки сообщений. Проблемы начинаются, когда ты делаешь ресайзящиеся окна со сложным дизайном, вот там действительно проще сразу взять C#, чем в сишку ебаться.
Аноним 04/07/19 Чтв 01:57:45 1427545148
>>1427541
>А в чем проблема нарисовать диалог мышкой?
Тааак, падажжи ебана. Это Студия такое позволяет?
Аноним 04/07/19 Чтв 02:00:45 1427547149
Аноним 04/07/19 Чтв 04:01:25 1427604150
>>1427545

Никогда чтоле не смотрел ресурсы в exe файлах?
Аноним 04/07/19 Чтв 09:13:55 1427662151
>>1427545
Простой диалог позволяет - MFC. Для полноценного - C++Builder.
Аноним 04/07/19 Чтв 09:48:23 1427675152
>>1427662
Нахуй мфц. У нас тут сишка, а не кресты.
Аноним 04/07/19 Чтв 10:02:21 1427684153
Аноним 04/07/19 Чтв 11:38:54 1427749154
image.png (615Кб, 1024x642)
1024x642
Ну охуеть теперь, cl не умеет в локальные объявления по месту.
Аноним 04/07/19 Чтв 14:16:43 1427852155
>>1427052
Да всё норм, в вебе к этому возрасту уже сеньёры выгорают. Правда, там и зарплаты поменьше, что-то уровня 6к$ грязными. За Си же больше платят? По крайней мере, должны, я не шарю просто
Аноним 04/07/19 Чтв 14:27:11 1427878156
>>1427249
Ну в первом варианте у тебя указатель на NODE, во втором сам объект.
Аноним 04/07/19 Чтв 15:26:04 1427930157
3.png (168Кб, 1920x1080)
1920x1080
Пердолюсь немного, подскажите может как нормально избавиться от if-ов в мейне, хочу вызвать структуры по другому, но как? Что то не выходит
Аноним 04/07/19 Чтв 16:02:34 1427957158
>>1427930
Вкатываться в С++, забыть про С.
Аноним 04/07/19 Чтв 16:06:56 1427960159
>>1427957
С такими советами предлагаю тебе выкатиться в свою резервацию.
Аноним 04/07/19 Чтв 16:41:06 1427971160
SmugThoughtfulF[...].gif (866Кб, 420x236)
420x236
//Использую GIFImage.
//q:Какого фига пишешь в Билдере?!
//a:Практика в колледже. Заставляють нахой.
Можно как-то реализовать прозрачность гифки в C++ Builder 6?
Чтобы как-то убрать черный фон. Хотел через Transparent Color, но TImage не имеет такую опцию.
Аноним 04/07/19 Чтв 17:35:47 1427993161
>>1427971
>C++
Туда ли ты зашел?
Аноним 04/07/19 Чтв 19:49:45 1428044162
>>1427852
На международном рынке за Си надо брать не меньше $50/час
Аноним 04/07/19 Чтв 21:57:28 1428134163
>>1427993
Да. Там же можно писать как на си так и крестах.
Ну ок.
Аноним 04/07/19 Чтв 23:41:11 1428186164
Чуваки, нужна книжка или сайт, где с нуля и понятно показывается реализация связных списков и деревьев на С
Аноним 04/07/19 Чтв 23:51:02 1428192165
>>1428186
На каждую комбинацию язык-задача-парадигма книг не напасешься. Про всякие структуры данных на уровне идеи можно хоть в SICP почитать, или в introduction to algorithms. Если суть ясна, и интересует техническая реализация, то K&R в помощь, библию не переизобретешь. Если стоит вопрос адекватного процедурного интерфейса - OOC (в шапке есть). Хз, что еще посоветовать.
Аноним 05/07/19 Птн 01:12:43 1428227166
>>1428186
связные списки - хули тут сложного?
стракт есть, указатель есть. что тебе еще надо?

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

Аноним 05/07/19 Птн 15:14:04 1428423167
>>1428227
Книгу прочитай: Грокаем алгоритмы.
Аноним 05/07/19 Птн 15:34:37 1428433168
Подскажите, вот есть меню, есть клава опрашивающаяся раз в какое-то время.
Захожу в отдельный пункт меню, у меня происходит "вошел в меню=1" и пока я кнопкой не делаю "вошел в меню=0" цикл повторяется.
Я чувствую что есть более нормальный способ это сделать.
Аноним 05/07/19 Птн 23:21:00 1428700169
1
Аноним 06/07/19 Суб 04:48:18 1428803170
>>1427675
Полезный комментарий клоуна, который из GUI под Windows осилил только высирать текст в консольку.
Аноним 06/07/19 Суб 05:26:03 1428807171
>>1427662
Некроманты в треде!
(имхо каждое приложение само пусть ренедерит картинку)
Аноним 06/07/19 Суб 07:38:36 1428830172
>>1428044
А где кстати искать работу на международном рынке?
06/07/19 Суб 10:26:29 1428886173
>>1428433
Звучит сложно. Но похоже тебе нужны колбэк функции.
Аноним 06/07/19 Суб 12:38:44 1428943174
>>1428807
>(имхо каждое приложение само пусть ренедерит картинку)
>именно так было в DOS
>Некроманты в треде!
Не некромант, а лич уже, сам давно дохлый и трупы выкапывает.
Аноним 06/07/19 Суб 14:07:15 1429011175
>>1428943
> Не некромант, а лич уже
Ты так говоришь, как будто эти ваши кутэ используют системные контролы, а не рисуют самостоятельно все, что внутри окна.
Аноним 07/07/19 Вск 04:36:21 1429526176
>>1429011
Я понял в чём проблема треда, это пердолики с консолькой, которые при упоминании гуи/виндовс, начинают рваться и нести сивый бред.
Аноним 07/07/19 Вск 04:51:44 1429529177
>>1429526
Виндовс, это та хуйня от компании, которая разработала vscode?
Аноним 07/07/19 Вск 09:00:37 1429560178
>>1429529
>которая разработала vs
Так.
Аноним 07/07/19 Вск 14:35:39 1429742179
>>1429529
говорят, они еще ту хуйню в которой офис-менеджеры проставляют сколько ручек закупили разработали
Аноним 07/07/19 Вск 15:34:38 1429779180
image.png (253Кб, 1920x1080)
1920x1080
ЧЯДНТ?
Аноним 07/07/19 Вск 15:36:27 1429781181
>>1429779
удали эту хуйню и скачай VSC или gcc
Аноним 07/07/19 Вск 15:44:57 1429785182
>>1429779
Вопрос закрыт. Каталоги не подключил. Совсем уже ебанулся с этим WINAPI...
>>1429781
Почему? Совсем плохая IDE?
Аноним 07/07/19 Вск 15:59:18 1429787183
>>1429781
>gcc
Там порт gcc в виде MinGW ж.
Аноним 07/07/19 Вск 16:10:48 1429795184
>>1429787
А, лол, он собирает компилером от десятой студии.
Аноним 07/07/19 Вск 17:14:35 1429838185
image.png (223Кб, 1920x1080)
1920x1080
>>1429795
Ну да, я по-разному пробую, пытаюсь разобраться как все работает.
Кстати MinGW это не собирает почему-то
Аноним 07/07/19 Вск 17:50:10 1429854186
>>1429838
Так он тебе говорит, что у тебя гцц нет. Пути настрой.
Аноним 08/07/19 Пнд 04:13:57 1430075187
>>1429795
И правильно делает. Родные либы майкрософта под винду всяко удобнее левых линуксовых костылей.
Аноним 08/07/19 Пнд 07:55:27 1430102188
>>1430075
Для задач уровня laba12.c совершенно не критично.
Аноним 08/07/19 Пнд 08:53:14 1430113189
>>1430102
Это не ответ.
Не важно что ты делаешь, пользоваться лучшим инструментом в любом случае лучше. Или, другими словами, брать в данной ситуации заведомо худший инструмент это иррациональный неадекват.
Аноним 08/07/19 Пнд 10:26:00 1430149190
>>1430075
Когда пишешь серверную или какую-то системную хуету. А так, компилятор сишечки и микропидоров - кал, даже в C99 не умеет.
Аноним 08/07/19 Пнд 10:30:59 1430153191
>>1430075
inb4 знаю, что объявление не в шапке подконтекста - гавнокод, но все равно кал. Я не говноед и хочу пользоваться стандартизированным для языка интерфейсом многопточности и красивостями вроде thread_local. Кормить сишным кодом компилятор крестов тоже нахуй нужно, ебал я каждый чих кастовать.
Аноним 08/07/19 Пнд 10:33:35 1430154192
>>1430153
>Кормить сишным кодом компилятор крестов тоже нахуй нужно, ебал я каждый чих кастовать.
Ну тогда тебе только парсеры XML писать
Аноним 08/07/19 Пнд 10:56:26 1430163193
>>1427930
Что за тема в атоме?
Аноним 08/07/19 Пнд 11:47:09 1430180194
>>1430075
> Родные либы майкрософта под винду всяко удобнее
Напомни, в этой 2010 студии snprintf() уже есть, и он ведет себя правильно? Или там только _snprintf() с нестандартным поведением?

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

>>1430153
> красивостями вроде thread_local
Пользуйся, кто ж тебе мешает: в новых версиях все есть, в старых можно #define thread_local __declspec(thread), полноценная реализация <threads.h> тоже существует, еще с момента выхода стандарта.
Аноним 08/07/19 Пнд 14:22:34 1430259195
>>1430180
И как его поставить без накатывания Студии и без гарантированного засирания забитого системного диска? Алсо, C::B и пресета для новых версий не имеет, руками настраивать надо.
Аноним 08/07/19 Пнд 14:30:32 1430261196
>>1430259
Ставь в инсталлере студии галочки на msvc и sdk, поставится только компилятор
Аноним 08/07/19 Пнд 14:41:01 1430265197
>>1430261
>В инсталлере build tools
быстрофикс
Аноним 08/07/19 Пнд 14:58:34 1430284198
image.png (268Кб, 1872x776)
1872x776
извиняюсь за небольшой оффтоп
читаю прата в пдфке и происходит вот такая хуйня
символы копируются хуй пойми как,иногда вообще пропускаются.Руками выписывать это очень неудобно,особенно когда прата просит исправить какие-то ошибки там или код непонятный и длинный.искал в других форматах - та же хуйня
помогите блядь
Аноним 08/07/19 Пнд 15:11:59 1430289199
>>1430153
>ебал я каждый чих кастовать
Для laba12.c не нужно многопоточности, красивостей вроде thread_local, C99, правильного snprintf() и прочего бла-бла. А вот удобство нативного програмиирования и божественной документации нужны всегда.
Аноним 08/07/19 Пнд 15:34:07 1430297200
>>1430284
А ты ленив. Вообще ручками поначалу полезно, работает моторная память.
Аноним 08/07/19 Пнд 15:34:46 1430298201
>>1430075
>левых линуксовых костылей
Уже писал, напишу еще раз.
Ебаная glib! Там tdestroy не входит в стандарт, а доп.хуета, доступная после #define _GNU_SOURCE, не входит в mingw.
Аноним 08/07/19 Пнд 15:47:52 1430304202
>>1430297
Удваиваю. Лучше обосраться перед самим собой, познав свои слабые места.
Аноним 08/07/19 Пнд 17:30:44 1430387203
>>1430284
Ну хз, иногда к книгам можно качнуть исходники отдельным архивом. А pdf - это тебе не doc, это typeset. Есть шрифты, есть буквы определенных размеров и их координаты/ориентация. И нехуй с нулевым опытом написания кода уже лигу ленивых устраивать.
Аноним 08/07/19 Пнд 17:31:36 1430389204
>>1430284
Взял прату на английском 6е издание, попробовал скопировать, все ок. Но удвою вышеотписавшихся - лучше руками набивать, привыкая писать код, а не пиздить.
Аноним 08/07/19 Пнд 17:41:14 1430394205
>>1430284
Пробуй скопировать в английской раскладке. Потом пробуй вставлять в блокнот и выбирать windows 1251 кодировку. Если не помогает, значит текст в пдфке криво распознан и неисправлен
Аноним 08/07/19 Пнд 17:42:29 1430396206
>>1430394
:: вместо = как бы намекает, что там явная ошибка распознавания, и никакая раскладка ему не поможет.
Аноним 08/07/19 Пнд 21:32:40 1430508207
image.png (319Кб, 1920x1080)
1920x1080
Каким же я себя тупым чувствую, особенно после работы, когда башка уже не соображает.
Я создаю файл "ввод.тхт" с набором символов "qwer123", задаю его в программе, задаю файл "вывод.тхт", но ничего не происходит.
Аноним 08/07/19 Пнд 21:46:29 1430515208
>>1430508
Настало время отладки printf-ами!
Аноним 09/07/19 Втр 01:56:54 1430605209
>>1430508
>после работы
Уборщиком туалетов? Работай спокойно дальше, не отвлекайся на всякую фигню.
Аноним 09/07/19 Втр 04:44:47 1430628210
>>1430515
Лучше принтфами, чем гдб
Аноним 09/07/19 Втр 06:11:22 1430643211
>>1430628
Лучше совмещать. Пару раз в CTF писал эксплойты, ловя краши с помощью gdb - ну, нормально. Не очень удобно, благо есть дополнения к нему, но все же.
Аноним 09/07/19 Втр 09:02:03 1430675212
>>1430605
Вот зачем ты так? пидорюга
Аноним 09/07/19 Втр 09:21:24 1430683213
>>1430675
Я уже и внимание на такую фигню не обращаю. Смысл?
Аноним 09/07/19 Втр 11:54:23 1430840214
>>1430675
Извиняй, инстинктивное отвращение, когда в компьютеры лезут обыватели которым там не место. Ладно бы хтмл и подобное, но си это особое.
Аноним 09/07/19 Втр 12:48:46 1430888215
>>1430840
Ой. Вы посмотрите какой элитный интеллектуал. Не обыватель.
Аноним 09/07/19 Втр 12:53:30 1430896216
Есть где примеры написания простых оконных приложений на си и винапи? Особо интересует примеры рисования всякого в gdi или что там есть в винде для 2d рисования.
Аноним 09/07/19 Втр 13:39:50 1430941217
Аноним 09/07/19 Втр 13:40:46 1430944218
>>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, все зависит от задачи.
Аноним 09/07/19 Втр 14:39:43 1430987219
.png (55Кб, 966x521)
966x521
>>1430941
Круто. Скомпильнул пример из книги бородатого года в tcc и он работает.

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

А gdi позволяет сглаженные линии и фигуры рисовать? Поддерживает полные цвета?
Аноним 09/07/19 Втр 15:12:59 1431026220
>>1430987
>Круто. Скомпильнул пример из книги бородатого года в tcc и он работает.

Поэтому и нужно порой изучать технологии Древних, хотя многие это ругают и фукают. Это полезно для понимания современных. Кроме того, там дается зачастую исчерпывающая информация об интересующем тебя предмете доступным языком. Ну либо это я не умею искать современные источники. Например по архитектуре 80486 или 80286.
Аноним 09/07/19 Втр 15:23:29 1431030221
>>1430840
Как там в юнитфактори? Экзамены все сдал?
Аноним 09/07/19 Втр 15:38:55 1431035222
>>1430987
> Там что-то всё для крестов, а мне бы для обычной сишечки.
Как будто для Windows API есть разница.

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

> Поддерживает полные цвета?
Да.
Аноним 09/07/19 Втр 17:05:53 1431069223
>>1430896
https://pastebin.com/e1sggH6F
Держи. Специально ради тебя лазил к деду в комп, теперь пизды получу, но из допотопного мингв достал.
Аноним 09/07/19 Втр 17:20:56 1431071224
Аноним 09/07/19 Втр 17:38:17 1431079225
>>1431069
Не совсем понятно, зачем там CenterWindow, хотя достаточно было int width = 360, height = 240, left = GetSystemMetrics(SM_CXSCREEN) / 2 - width / 2, top = GetSystemMetrics(SM_CYSCREEN) / 2 - height / 2; прямо перед CreateWindow. Видимо, пердолинг ради пердолинга.
Аноним 09/07/19 Втр 18:10:35 1431094226
>>1431071
Я видел ее в папке с конпелятором tcc.
Аноним 10/07/19 Срд 00:23:00 1431348227
Так бльйбнврт, мне это все остоебенило! Аноны, взываю к помосчи, хотя бы моральной, как в ябучем ШиндоХТТП разобраться? При помощи HTTP Server API Version 1.0 надо принять реквест и вернуть респонс. С HttpReceiveHttpRequest разобралсо, а вот HttpSendHttpResponse вызывает вопросы. Дело в том, что хуюнкция, ссылка на описание которой висит на странице Version 1.0 Functions, принимает PHTTP_REPONSE - указатель на структуру HTTP_RESPONSE, в описании которой указано Windows Vista и новее. То есть документация Майкрософта - это какая-то лютая хуета, где старая и новая версии намешаны в один чан, и читать это говно, не зашквариваясь на всю жизнь, невозможно. Я понимаю, что HTTP_RESPONSE - всего лишь тайпдеф _HTTP_REQUEST_V1, но сука, где почитать про это нормально, чтоб не тыкаться как слоненок даун?
Аноним 10/07/19 Срд 00:36:32 1431359228
Короче, просто посоветуйте максимально простую HTTP хуйню, чтоб принимать реквесты и возвращать респонсы. А то клиентская WinHTTP еще куда ни шло, но вот серверная залупа, простейшие примеры использования которой включают дохуище пользовательских макросов и вспомогательных функций, меня сука напрягает. Уже сто раз сделал бы через winsock такую простую задачу, но пердолить свой костыль для проверки корректности ожидаемого HTTP запроса как-то не комильфо.
Аноним 10/07/19 Срд 02:58:14 1431411229
>>1430261
Какие-то сорта тулчейнов, v140, v141, чо ставить-то?
Аноним 10/07/19 Срд 03:04:27 1431412230
Аноним 10/07/19 Срд 03:08:04 1431413231
Аноним 10/07/19 Срд 20:23:54 1431849232
>>1431359
Пиши под linux на обычных сокетах, хуле ты как ПХПешник?
Аноним 10/07/19 Срд 20:49:18 1431874233
>>1431849
Мне по Windows надо, там моя программа общается еще кое-с-чем через SDK, который только под Windows есть. Тащемта похуй, winsock полностью косплеит berkley sockets, но это ж лютый пиздец руками пердолить парсер HTTP. Хотя.. зато саморазвитие дохуя, rfc1945 почитаю, лол)
Аноним 11/07/19 Чтв 03:23:54 1432088234
Аноним 11/07/19 Чтв 19:04:53 1432587235
Аноним 12/07/19 Птн 10:04:53 1432972236
Аноним 12/07/19 Птн 10:54:01 1433010237
>>1432972
Берешь MinGW, правишь в 56 строке Makefile CROSS_PREFIX=mingw-, в 86 строку CFLAGS += -std=c11, в 153 строку в конец -lpthread, еще добавляешь куда-нибудь в начало cutils.h #include <malloc.h> я еще LTO оторвал, и все собирается make CONFIG_WIN32=1. Ну или то же самое из-под линукса, только без правок (наверное).
Аноним 12/07/19 Птн 11:50:46 1433083238
лол
Аноним 12/07/19 Птн 18:49:06 1433429239
Как сборсить захват bootvid’a после InbvAcquireDisplayOwnership? Естественным образом он слетает после изменения расширения экрана / входа-выхода из сна и есть неэкспортируемая InbvSetDisplayOwnership

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

нубас
Аноним 13/07/19 Суб 03:30:55 1433683240
>>1433429

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

когда-то не осилил программирование под Ring 0 на винде, так и забросил, пиздец сложно, информации нихуя
Аноним 13/07/19 Суб 09:56:29 1433770241
>>1433429
Уважаемый нубас, нужен ваш совет.
На одной винде (семерка) есть такой баг, после загрузки или переключения дисплея, если запустить игру (обычно на directx9), то она крашится с ошибкой инициализации графики directx, но если запустить снова - всё окей, и все последующие тоже. Вот такой запуск не с первого раза. Что это может быть и как пофиксить?
Аноним 13/07/19 Суб 17:11:02 1434038242
>>1433770
Обновления включены? Вроде подобная хрень фиксилась в каком-то KB
Аноним 13/07/19 Суб 18:36:47 1434125243
Здрасте, у меня нубский вопрос.

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

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

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

Как мне правильно оформить приведение типа, чтобы избежать варнинга и чтобы правильно работало?
13/07/19 Суб 19:18:59 1434167244
>>1434125
> Мне нужно сравнить значение указателя
При обычных условиях значение указателя заведомо больше, чем любое значение, влезающее в uint16_t (в первые 4к памяти никто не пишет в принципе, чтобы ловить обращения по нулевому указателю, а в первые 64к пишут очень редко). Если тебе нужно сравнить значение по указателю, то if (∗ptr > var) { ... }.

> Как мне правильно оформить приведение типа, чтобы избежать варнинга
Указатели кастят к uintptr_t из stdint.h, тогда будет работать независимо от разрядности платформы.
Аноним 13/07/19 Суб 19:30:10 1434176245
>>1434167
> Если тебе нужно сравнить значение по указателю
Нет, именно значение указателя, т.е. некоторый адрес сравнить с некоторым значением, хранящимся в переменной (которое тоже по сути адрес, но 16-разрядный). Это работа с периферией микроконтроллера, нужно от первого 32-разрядного адреса взять младшее полуслово, старшее отбрасывается.
> Указатели кастят к uintptr_t из stdint.h
Спасибо, покурю.
Аноним 13/07/19 Суб 19:47:28 1434197246
>>1434167
Предупреждение исчезает, если написать
if ((uint16_t)((uint32_t)ptr) > var)
или же
if ((uint16_t)((uintptr_t)ptr) > var)
потому что на моей архитектуре
uintptr_t = uint32_t = unsigned int
Аноним 14/07/19 Вск 03:18:51 1434552247
>>1434038
Спасибо, добра. Отличная мысль.
Обновления отключены и забыты как страшный сон, попробую погуглить KB-шку. Ставить всё подряд неохота, ненавижу азартные игры вроде русской рулетки, т.к. неизвестно где и как они могут наломать дров, а сейчас всё вроде работает, кроме упомянутого бага. Да еще потом зонды чистить, ну нафиг.
извиняюсь за оффтоп
Аноним 14/07/19 Вск 08:11:19 1434593248
>>1434552
Почему игробляди такие тупые?
Аноним 14/07/19 Вск 08:36:50 1434605249
>>1434593
Ум сам по себе ничего не значит. Имеет значение для каких целей он используется. И как показывает опыт, чем больше ума, тем обычно хуже, потому что больше чсв, жадности, в результате умный либо ничего не делает, хотя мог бы, либо делает что жиды говорят за бабло, что тоже сомнительная польза.
В результате получается, тупые люди делают хорошие вещи из за лучших человеческих качеств, а умные дрочат свою пипиську, унижая других. Кто из них жалкое говно понятно без лишних комментариев.
Аноним 14/07/19 Вск 11:35:00 1434681250
>>1434605
>результате умный либо ничего не делает, хотя мог бы, либо делает что жиды говорят за бабло, что тоже сомнительная польза.

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

а польза для кого? для тебя? для него польза наверное тоже есть.
Аноним 14/07/19 Вск 11:49:54 1434694251
>>1434605
>унижая других
>Кто из них жалкое унижаемое говно понятно без лишних комментариев.
И то правда, согласен с этим дебилом.
Аноним 15/07/19 Пнд 20:13:05 1436212252
>>1415970 (OP)
Анон, помоги, расскажи, какие есть способы обнуления массива?

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

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

Должен же быть какой-то каноничный способ, а?
Аноним 15/07/19 Пнд 20:31:14 1436222253
Поясните нуфагу, часто ли используют это псевдо ооп с Си?
Даёт ли это какие-то профиты?
Полезно ли мне будет выучить этот язык, если я никогда микропроцессоры программировать не буду?
Аноним 15/07/19 Пнд 20:34:31 1436227254
>>1436222
Что значит псевдо? ООП и есть парадигма, а не фича каких-то там крестов. Используй ровно настолько, чтоб удобные абстракции для себя сделать.
Аноним 15/07/19 Пнд 20:38:47 1436233255
>>1436227
Но там так сказать "из коробки", а тут надо ебаться и выворачиваться, как я понял после нескольких статей.
Пока я ебусь и изворачиваюсь, попутно борясь с ошибками, я могу столько времени потратить, что смысл вообще потеряется
Аноним 15/07/19 Пнд 20:43:28 1436239256
>>1436233
Ты никому ничего не должен. Зачем сразу полиморфизм косплеить, если сложна? Просто void ∗, конструктор/деструктор и функции с аргументов this, в чем проблема?
Аноним 15/07/19 Пнд 21:07:26 1436269257
Аноны, у меня идея охуительная. Прикрутить к сишечке препроцессорный конвертер иницилизированных массивов в обратное отображение. То есть, по объявлении my_direktiva char arr[] = "ABC"; генерируется массив, в котором элемент с индексом 'A' (65) имеет значение 0, 'B' (66) - 1, 'C' (67) - 2, а все остальные пустые -1. Размер массива в данном случае 68. Когда нужна подобная хуйня, или в рантайме генерирую, или не менее громоздким switch-case пользуюсь. Это шо, прагмами какими-то можно сделать?
Аноним 15/07/19 Пнд 21:09:39 1436274258
>>1436239
Так вот поэтому для меня это пока псевдо ООП с ограничениями из-за моего скила
Аноним 15/07/19 Пнд 21:16:35 1436288259
>>1436274
Хосспаде, ООП - это просто то, как ты структурированно разбиваешь задачу на процедуры, которые работают со структурами данных, и фсё. Нет понятия ограниченного ООП, псевдо ООП и т.д. и т.п. Просто со временем начинаешь делать это более красиво.
Аноним 16/07/19 Втр 11:22:01 1436627260
>>1436288
>ООП
>красиво
ООП может быть красиво только в ограниченных областях вроде библиотек. Полноценное же приложение в ООП это джава-дрисня, хуже наверное только функциональщина.
Аноним 16/07/19 Втр 11:34:16 1436629261
>>1436627
У меня от тебя функция высшего порядка. ООП супер, а C++ и Go лучшие языки программирования
Аноним 16/07/19 Втр 12:06:15 1436635262
>>1436627
Но ведь, разрабатывая крупный проект с уникальными алгоритмическими решениями, ты сам пишешь что-то вроде мини-библиотек под свою конкретную задачу.
Аноним 16/07/19 Втр 12:08:16 1436636263
>>1436627
>функциональщина
кстати, норм ли косплеить хвостовую рекурсию, как в LISP, просто меняя локальные значения аргументов и goto на начало?
Аноним 16/07/19 Втр 12:17:04 1436639264
>>1436636
хвостовая рекурсия очень просто заменяется на циклы, нет никакой необходимости делать ее в императивных языках
другое дело, когда алгоритм основан на более сложных случаях рекурсии, тогда в той же си, чтобы сделать его промышленный вариант, все равно приходится заменять его на итеративный вариант, который получается не очень красивым
Аноним 16/07/19 Втр 12:21:58 1436640265
>>1436239
>Просто void ∗, конструктор/деструктор и функции с аргументов this, в чем проблема?
проблема в том что это отключает систему типов, используешь void* - берешь на себя часть работы компилятора
Аноним 16/07/19 Втр 12:27:46 1436644266
>>1436222
на си, в конечном итоге, удобней использовать не эмуляцию классического опп, а идеи компонентного программирования, в частности концепцию интерфейсов, идею включения вместо наследования..
в свое время были созданы компонентные системы на си - это com майкрософт или gtk от gnome, но зачастую проекты не используют библиотеки поддержки компонентного программирования, а просто сами реализуют нужный служебный функционал
Аноним 16/07/19 Втр 12:30:55 1436646267
>>1436222

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

статический полиморфизм опять же тк нет прямой поддержки в языке, то делают само собой макросами, либо теми которые есть в языке, либо внешними макропроцессорами, либо вообще внешней кодогенерацией
Аноним 16/07/19 Втр 13:20:13 1436672268
>>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...)

Может упустил чего, но суть доставил.
Аноним 16/07/19 Втр 17:16:12 1436884269
>>1433429

Бамп вопросу, даже этой неэкспортирумой функцией не помочь. Нужно еще вытащить оригинальное расширение экрана, и как я понял, дернуть какую-то апи в gina (винлогон), которая ходит к драйверу видеопорта
Аноним 16/07/19 Втр 18:26:19 1436949270
>>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__ или его эмуляции.

Аноним 16/07/19 Втр 21:02:17 1437091271
>>1436949
Ну он нихуя не работает почему-то... И, поговаривают, мемсет дрочильня ебучая.
Аноним 16/07/19 Втр 23:22:18 1437222272
>>1437091
Просто неправильно используешь.
Аноним 17/07/19 Срд 03:27:49 1437317273
1453336513929.png (2Кб, 455x69)
455x69
Аноним 17/07/19 Срд 10:12:18 1437400274
Cап, хочу покопаться в режимах процессора. Защищённый, виртуальный и прочий и написать хоть какой-нибудь код чисто для практики и немного исследования и опыта для себя.
Как это сделать на Сях, или мне катится в ассемблеро-тред?
Аноним 17/07/19 Срд 11:31:29 1437448275
Аноним 17/07/19 Срд 11:58:53 1437467276
>>1437448
бле, серьёзно? в спп тред катиться? Я тут АРхитектуру Компьютера курю, там код на асме и сях, думал мб точно на сях писать. Хотя я и си с++ знаю, но не до степени копания в в режимах процессора.
Аноним 17/07/19 Срд 13:06:55 1437525277
>>1437467
Так что ты хочешь сделать? Из твоего поста ничего не понятно, если ты хочешь свой виртуальный процессор, то можешь писать его на чем хочешь. Другое дело, что уверен ли ты, что хватит скиллов реализовать на асме/сишке дескрипторы, параллельность, каталоги, кольца, треды, рекурсии?
Аноним 17/07/19 Срд 14:19:27 1437571278
>>1437400
>Защищённый, виртуальный и прочий и написать хоть какой-нибудь код чисто для практики и немного исследования и опыта для себя.
Реальный режим - это когда процессор 2019 года выпуска делает вид, что из восьмидесятых, запуская железный досбокс. При чем натурально досбокс, потому что смысл только в обратной совместимости.
Даже "адресация физических адресов памяти" уже никакого смысла не имеет, потому что адресуется аж один мегабайт.
У этой хуйни сейчас только музейная ценность.
Аноним 17/07/19 Срд 14:23:37 1437573279
>>1437571
вот ты охарактеризовал что я хочу сделать.
Процессор виртуальный я могу на сетях Петри набросать, аля мат.мод.

НО вот заебенить что-то с использованием архидревних режимов мне интересно. Так как это как я понял system programiing old-school
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов