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

Двач.hk не отвечает.
Вы видите копию треда, сохраненную 10 декабря 2022 года.

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

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

78 Кб, 792x1023
C Programming Language #01 clang 21 окт, 12:40 2493863 В конец треда | Веб

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

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

Что читать:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.
Этот тред копия 01/08/19 Чтв 23:34:41 №1446278 с вебархива №47
Прошлые треды:

https://arhivach.ng/

2 21 окт, 14:30 2 2493953

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

Ответы4253

3 21 окт, 16:29 3 2494253

>>2493953
точно, теперь вижу. Как надо было писать? Это в теме же /clang/ ?

Ответы4526

4 21 окт, 17:13 4 2494493

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

Ответы45234535

5 21 окт, 17:46 5 2494523

>>2494493
в оп пике вконце есть апи для юникса, там понятно что к чему

25 Кб, 1075x704
6 21 окт, 17:48 6 2494526

>>2494253
>Как надо было писать? Это в теме же /clang/ ?
В поле "Тег" просто пишешь clang.
В поле "Тема" пишешь "C Programming language #228"

7 21 окт, 17:58 7 2494535

>>2494493
Ты выучил самое легкое - язык. Теперь осталось выучить предметную область, которая тебе интересна. Ты же когда выучил русский язык не стал разбираться в поэзии, верно? Так и здесь. Ищи гайды как сделать вещь-Х, читай книги по интересующей тебя теме, смотри как это реализовано в других проектах. Написать код - это малая часть работы программиста, основная доля времени как раз уходит на поиск решения проблемы/проектирование архитектуры приложения и т.д., т.е. на "решение на листочке".
Если хочешь написать что-то вроде квейка, то начни с основ компьютерной графики, а там и матешу подтянешь по ходу работы. Потом можно посмотреть код самого квейка, навернуть литературу по рендерингу, проектированию движков, шейдерам и т.д.
С драйверами такая же схема, сначала пойми, что такое драйвер и какие задачи он выполняет. Пойми где находится его место в системе и как он общается с ней. А там уже и самому станет понятно, что делать и куда дальше копать.

кот_волшебник 8 21 окт, 20:13 8 2494636

бамп годному треду

785 Кб, 570x818
кот_волшебник 9 21 окт, 20:18 9 2494642

10 22 окт, 10:12 10 2495050

перекат в легитимный тред
https://2ch.hk/pr/res/2495049.html (М)
https://2ch.hk/pr/res/2495049.html (М)
https://2ch.hk/pr/res/2495049.html (М)
https://2ch.hk/pr/res/2495049.html (М)
https://2ch.hk/pr/res/2495049.html (М)
https://2ch.hk/pr/res/2495049.html (М)
https://2ch.hk/pr/res/2495049.html (М)

11 22 окт, 10:13 11 2495051

перекат в легитимный тред
https://2ch.hk/pr/res/2495049.html (М)

Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 10 декабря 2022 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion