LINUX.ORG.RU

Посоветуйте книгу по Си


1

1

Привет, я прочёл так называемую библию Си K&R и хотел бы продолжить изучение этого языка под Linux, но в виде чистого СИ (без плюсиков т.е. никакого ООП). Посоветуйте книгу, что бы сделать шаг номер два. спасибо.

Спецификация языка в качестве книги не сгодится?

geekless ★★ ()

Емнип к некоторым древним изданиям прилагался сборник с задачами. Можно их покурить.

eliriand ★★ ()

ISO/IEC 9899:1999 Programming Languages --- C.

А перед этим «Искусство программирования на C» за авторством Ричарда Хезфилда, Лоуренса Кирби и др.

ilias ()

думаю что книги №2 именно по языку С нет, тут уже куда двигаться - либо всяких Корменов, Лейзерсонов на пару с Кнутами и иже с ними осваивать либо в практику ударяться и влезать в реальный проект

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

Лучше всего ваши знания конкретизирует стандарт языка.

ilias ()

Прочтите еще Стивена Кочана, если читать о программировании нравится. Хорошая книжка для начинающих.

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

ИМХО книжки читать по С смысла нет особого. Минималистичный язык

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

> ИМХО книжки читать по С смысла нет особого. Минималистичный язык

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

ilias ()

Object Oriented Programming with ANSI C

И ещё была какая-то, но название забыл. А ещё будет полезно почитать книги Пайка, Стивенса и прочих уже про разработку на Си под Unix.

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

> Object Oriented Programming with ANSI C

Тут, пожалуй, надо посмотреть в исходники XINE. Лично мне буквально хватило одного взгляда на них, чтобы мигом понять ООП на C. :-)

ilias ()

Без ООП даже в Си никуда. Все серьезные проекты на Си используют ООП.

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

А вам много?

$ grep -c Synopsis n1256.txt 
305

Откройте спецификацию плюсов и сравните объёмы. Ну или руби какого-нибудь.

У С очень компактная библиотека. Нет, даже не так. ОЧЕНЬ компактная.

geekless ★★ ()

простите за оффтоп, но очень интересно а что сейчас пишут на си в промышленности? ну кроме ядер os и драйверов

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

> Откройте спецификацию плюсов и сравните объёмы.

Стандарт ISO/IEC 14882:2003: описание библиотеки с 345 по 702 страницы. Не сильно-то больше.

У С очень компактная библиотека. Нет, даже не так. ОЧЕНЬ компактная.

У C++, вы не поверите, тоже компактная библиотека.

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

> The C++ library includes the same definitions as the C language library organized in the same structure of header files

+ велосипедный ввод-вывод + строки + контейнеры и алгоритмы.

Тащем-то да, тоже достаточно компактная.

Что, впрочем, не делает смысла вашему исходному высказыванию.

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

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

В основном расширение системы типов + небезопасные функции работы со строками, памятью, файловый ввод/вывод да немного математики.

И сравните хотя бы с JDK той же.

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

> то что в стандарте - это два десятка заголовочных файлов.

Я видел массу велосипедов, применяемых вместо функций из этих «двух десятков файлов».

Да, насчет «обширной», пожалуй, погорячился.

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

>простите за оффтоп, но очень интересно а что сейчас пишут на си в промышленности? ну кроме ядер os и драйверов

кастуй ananas'a, он расскажет про свою экспу создания промышленного ПО (glib, gtk) для атомной энергетики (Украина, ЕМНИП).

Про профессиональное ПО стоит упоминать? Inkscape тот же у дизайнеров пользуется популярностью.

В телекоммуникациях на ссях много чего написано. У меня на работе периодически «грешим» :) на узких местах.

Deleted ()

советую прочесть «Advanced Programming in the UNIX Environment» Ричарда Стивенса и потом «Исскусство программирования для UNIX» Эрика Реймонда. Это не стандарт по языку, и даже наверное не совсем про язык Си. Но все же почитать стоит.

val-amart ★★★★★ ()

Шилдт. Полный справочник С (С99). Хорошая книга, заодно и узнаешь некоторые структуры данных и алгоритмы.

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

Ну так это не велосипед вовсе, так - катафот самодельный прилепить.

Велосипед это парсер xml свой писать или новую систему с нескучными обоями.

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

На правах ИМХО

После того, как я прочёл первые две книги Шилдта (если, конечно, это тот самый Херб Шилдт «из прошлого века»), у меня напрочь рухнуло какое бы то ни было доверие к этому автору.

С тех пор книги Шилдта не читаю и не рекомендую.

Возможно, я ошибаюсь (ещё раз: вышесказанное - ИМХО).

PS: Присоединяюсь к правильным рекомендациям - Стивенс APUE и Ван Дер Линдена. И ещё - Керниган, Пайк - Unix: Программное окружение (тоже не совсем про С, но много полезного)

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

> В основном расширение системы типов + небезопасные функции работы со строками, памятью, файловый ввод/вывод да немного математики.

О да, небезопасный Си такой небезопасный? Ты вообще понял, что сказал?

И что тебе не нравится по части математики? Я уверен, ты не знаешь и половины того, что на она может.

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

> О да, небезопасный Си такой небезопасный? Ты вообще понял, что сказал?

Он прекрасно понял, а ты молчи в тряпочку и учи функции strncpy, strncmp, snprintf и пр.

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

Нашёл для себя интересной книгу

Искусство программирования на C, бегло просмотрел сегодня, и первое мнение, немно пожалел что начал изучение языка, не с неё.

Спасибо!

Мне нравится читать про стили программирования про способы реализации алгоритмов, это не даёт мне «засохнуть», но к практике я еще не готов, так как написанные 4 программы общей полезной длиной не более 600 строк кода, вымотали из меня все нервы, поэтому я еще раз решил удариться в «идею». Выражаю благодарность за книги Исскусство программирования для UNIX и Полный справочник С (С99)

mordovorot ()

Слишком много читать вредно. Мне кажется, в твоем случае уже пора начать практиковаться.

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

Есть ещё P.J.Plauger «The Standard C Library» - видел в электронном виде английский оригинал, но она старенькая - 1991 года.

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

> Можно Peter Van Der Linden «Expert C Programming».

Не можно, а нужно!

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

> Ну так это не велосипед вовсе

С точки зрения стандартной библиотеки C, где это есть, все-таки велосипед.

Велосипед это парсер xml свой писать

В стандартной, опять же, библиотеке XML вообще не упоминается, так что о велосипедизме тут говорить просто бессмысленно. :-)

ilias ()

язык программирования C пятое издание Харбисон, Стил

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

>В основном расширение системы типов + небезопасные функции работы со строками, памятью, файловый ввод/вывод да немного математики.
setjmp, longjmp

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

CHAR_BIT тоже интересный дефайн.

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

> а что сейчас пишут на си в промышленности? ну кроме ядер os и драйверов

всякие системы кеширования данных, приходящих с нижнего уровня в основном на сях делаются. особенно когда цикл опроса достаточно мал

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

>Inkscape тот же у дизайнеров пользуется популярностью.

Inkscape на плюсах написан. На C написана большая часть гнома, gimp.

dn2010 ★★★★★ ()

Мне понравилась Х. Дейтел - «Как программировать на Си».

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