Посвящен прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне. Пожалуйста, пользуйтесь 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://www.iso-9899.info/wiki/Books#Learning_C Онлайн-утилиты: https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов). http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.