LINUX.ORG.RU

K&R.

Ну блин, что ты вообще ожидал услышать в ответ? Дополнить что и до чего? В K&R есть всё.

Deleted
()

Практика в своём проекте. И чтение/правка чужого кода.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от a1batross

Ну так отличия совсем небольшие.

Достаточно почитать досконально K&R, а потом рекомендованную выше modern C. И то, из C11 практически нужно очень мало. Уж массивы на стеке точно нафиг не сдались!

OnlyAsk
()
Ответ на: комментарий от beastie

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

Harald ★★★★★
()

«Искусство программирования на C» Heathfield R., Kirby L. / Хэзфилд Р., Кирби Л.
(Не путать с монументальным трудом Дональда Кнута)

«Книга предназначена для опытных программистов, а также читателей, имеющих базовые знания по языку С и желающих повысить свою квалификацию до профессионального уровня.»

В этой действительно рассматриваются хорошие темы. Рекомендую.

Kroz ★★★★★
()

Походи по собеседованиям — всякие мудаки поназадают тебе таких каверзных вопросов по теме, чтобы показать, какое ты чмо, что на год хватит разбирать.

beaver
()

дополнять можно только практикой.

программируй. системные вещи тоже. можно ещё гуйню на gtk+, тоже скиллы прокачивает.

Deleted
()

Дополню ранее высказавшихся ораторов.

1 Во-первых, забейте на инвалидов-неосиляторов от программирования (с детства). Язык ни чем не хуже, а при грамотном использовании и получше будет того, что на его основе выросло.

2 Кроме всего сказанного (того же С99, С11), я бы ещё посмотрел на расширения gcc (gccизмы), которые пока в стандарт не входят, но там есть полно интересных вещей типа attribute (pure) или attribute (const), которые неиллюзорно намекают на то, что самое время почитать [Functional C (pdf-link!)][https://pdfs.semanticscholar.org/31ac/b7abaf3a1962b27be9faa2322038d1ac9ed7.pdf] С 1999г. можно. ;) А мужики-то и не знают… Видать, так хотят знать.

Ну и заодно вспомните что ФП это не про лямбды и замыкания, это про:

  • Минимизацию side effect (стороннего эфекта). Т.е., если есть некая ф-я для ввода-вывода, то она только это и должна делать, а не лезть никуда больше. Так же по возможности и со всеми остальными ф-ями в программе.

  • Использование только аргументов функции и ни в коем случае не глобальных значений.

Это подход снимает море головной боли с Вашей задницы при практической работе.

3 Кроме выше сказанного я бы ещё рекомендовал к изучению именно для Linux если, справочник по API от Майкла Керриска (Linux API. Исчерпывающее руководство). Есть даже перевод на русский, купил, доволен как слон. Брал здесь, да там именно 1248 страниц, весом 1.7кг. Ряд моментов именно Linux API там ну очень хорошо разжёван, на примерах кода. Рекомендую.

4 Свой код + чужой (с того же гитхаба). Всегда есть шанс узреть что-то новое.

5 Пишите код. И для командной строки и демоны и GUI с GTK+ (не важно под GNOME или XFCE). Т.е., «прокачивайте скиллы». Просто так «прочёл книгу и всё знаю», тут не выйдет. Тут сишечка как ни крутите. ;)

6 Не забывайте про безопасность. Стандарт CERT к ознакомлению и исполнению в обязательном порядке. ССылка на CERT C coding standart от 2016г., (pdf-link). Прочтение и применение этого документа даже не обсуждается.

Ну вот, как-то вот так…

Moisha_Liberman ★★
()
Ответ на: комментарий от Deleted

K&R.

на KR можно такие фокусы делать, что без поллитры не разберёшь

можно даже закрутить элементы ФП или комбинаторики. Там-же сырые регистры и стек, как они есть, без шлакбаумов..

MKuznetsov ★★★★★
()

Книга должна быть толстая … /преподаватель будет использовать ее «в педагогических целях»/.

anonymous
()
Ответ на: комментарий от anonymous

Дополнение.

Для лучшей «полировки знаний».

anonymous
()
Ответ на: комментарий от anonymous

Книга должна быть толстая

В порядке бреда. Ни одной книги до конца не прочёл (скорее даже читал кусками), но что то «пианиню» постояно и ничего с собой поделать не могу.

anonymous
()

Субъективно, лучшее изучение C/C++ - разработка небольшого проекта.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

захватили Владимиры.

По вангованию - 5. (чётко сработал)

anonymous
()

Альбатрос всю малину склевал, ота жопка :D

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Deleted

Без понятия.

А когда планируют войти?

В сообществе С отношение к стандарту более трепетное и нежное, чем в сообществе С++, поэтому туда что ни попадя не тянут. Это, кстати, хорошо заметно по разбуханию стандарта С++. С как-то более «строен».

Поэтому решениям дают «отлежаться» и смотрят – будут ли пользоваться данным решением. Если нет, то зачем оно в стандарте?

Moisha_Liberman ★★
()
Ответ на: Без понятия. от Moisha_Liberman

В сообществе С отношение к стандарту более трепетное и нежное

Я слышал другое мнение. Большинство зафиксировались на С89 из-за того, что используемых компиляторов С тьма и они (прежде всего винда) впринципе не намерены переходить на более свежий стандарт

Deleted
()
Ответ на: комментарий от Deleted

Это не правда для Linux.

Большинство зафиксировались на С89 из-за того, что используемых компиляторов С тьма и они (прежде всего винда) впринципе не намерены переходить на более свежий стандарт

В винде С это уже такой раритет, что даже можно со счетов списывать винду. Там сисярп преимущественно. Даже явно некогда «системные» вещи на сисярпе пишут и не краснеют.

Ну разве что, DDK на С в какой-то мере остался. Так что, что там с С в винде, а уж тем более, с gcc в винде… Да всем пофиг.

В Linux я бы предложил всё-таки, выставлять для своего кода -std=c11 и не думать долго. Хотя, некотрые возможности C11 были внедрены в gcc в какой-то из 4-х версий, ЕМНИП. Как подсказывает таблица соответствий, в версии 4.7, а небольшая часть в версии 4.6.

Так что, боюсь в gcc и Linux совершено пофиг что там в винде и где-то ещё. Это уже их проблемы. У нас со своими бы разобраться.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от insw

Не. Рано пока.

А лучше сразу gnu11. Или c17 уж.

Для с17 пока время не пришло. А так-то да, надо готовиться.

Moisha_Liberman ★★
()
Ответ на: Это не правда для Linux. от Moisha_Liberman

Так что, боюсь в gcc и Linux совершено пофиг что там в винде и где-то ещё

Это называется vendor lock. В фуксии С11 без gcc-змов, в винде и компилерах для разных железяк несгибаемый С89. Когда-нибудь линукс сменят другие платформы, а вместе с ним сгинет и софт, которому «пофиг что там в винде и где-то ещё»

Deleted
()
Ответ на: комментарий от Harald

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

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Чтоб знать все подробности. Которые не пишут в книгах. Чтоб черпать знания из первоисточника, а не в пересказе.

Harald ★★★★★
()
Ответ на: комментарий от Harald

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

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

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

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

Некорректная аналогия, телефонный справочник - это просто база данных

Harald ★★★★★
()
Ответ на: комментарий от Harald

Стандарт тоже «база данных», с кучей всякой ерунды, которая важна для полной имплементации, но скорее всего 99% не будут пользоваться этими фичами.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от Harald

Из-за природы и дизайна С они больше падают

vertexua ★★★★★
()
Ответ на: комментарий от Deleted

Тут осталось понять...

Это называется vendor lock.

Почему мне должно быть не пофиг как это называется и что это есть?

В фуксии С11 без gcc-змов, в винде и компилерах для разных железяк несгибаемый С89.

При чём здесь фуксия, если сайт linux.org.ru? При чём здесь винда ровно по той же причине?

Насчёт контроллеров. Кто Вам такой бред сказал? Вас жесточайше нае… «обманули», в общем. Специально открыл Code Composer Studio от Texas Instruments (у меня сейчас Version: 9.2.0.00013).

Начиная с апреля 2014г., там gcc 4.9 для тех же сс1310 или аналогичных. -std=c11 введён, как уже говорилось выше, с 4.7. Так что, с апреля 2014г. там далеко не с89. Более того. TI отдельно оговаривают использование gcc’измов в коде для их устройств на базе TI-RTOS.

Но самое важное что TI оговаривает использование стандартов. Смотрите таблицу 2.8 (Language options) в этом документе. Удивитесь тому, что в компиляторе TI для их же железа могут быть выставлены опции – –c89, –c99, –c11, –c++14.

Вот скажите, нафига Вы какую-то околесицу плетёте? Вам, за то что Вы явно врёте, денег платят?

Когда-нибудь линукс сменят другие платформы, а вместе с ним сгинет и софт, которому «пофиг что там в винде и где-то ещё»

Тут бы спросить где Вы умудрились сп… «угнать», в общем, машину времени и когда Вы наскоряк успели в будущее смотаться. Но я не буду.

Тут вопрос почему меня должно волновать что когда-то может будет, а может и нет? Жить в будущем или прошлом у меня не получается. Я здесь и сейчас денег зарабатываю. В Linux. При помощи gcc и С в общем и целом. А всякие фантазии… Это вон, тут неподалёку есть территории, где ни как не усвоят поговорку про то, что дурак, он думкой богатеет. Правильно, кто-то бабло зашибает, а кто-то… в общем, ладно.

Moisha_Liberman ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.