LINUX.ORG.RU

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

 , ,


3

2

Всем привет :)

Искал по трекерам, находил самую позднюю издания 2009 Керниган и Ритчи. Посоветуйте что-нибудь новее, если есть. Ну и желательно про всё-всё-всё, от переменных до GTK в одной книге. Спасибо :)

Перемещено beastie из talks


Ответ на: комментарий от sleepflint

Xellos как бы намекает, что ссылка длиной в 100500 символов, которая ведёт сразу на скачивание файла - повод набить морду.

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

На том же рутрекере лежит, не такой уж и редкий :)

На рутрекере видел C++, может, конечно, и есть где просто Си, не смотрел особо - на локалке есть :-D

UNIX and Linux System Administration Handbook, 4th Edition

Это-то для программера необязательно, но полезно. Я скорее про философию, в этом смысле, не так сказал. Философия в программировании и принцип KISS все же что-то да значат :-) Ссылку на педивикиую чуть ниже скинул. Еще было бы очень полезно разобраться с определениями и IT терминами, очень поможет в начале для правильного понимания (многие зачастую игнорируют, вследствие чего не совсем понимают то, о чем речь) (например, «функция», «каталог», «пакет», «оператор» и подобные - это всего лишь примеры) :-)

//http://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BB%D0%BE%D1%81%D0%BE%D1%84%D0%B8%D1%8F_UNIX

//http://books.google.ru/books?id=SOLy5EmvkzsC&printsec=frontcover&hl=ru#v=onepage&q&f=false

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

На английском и качество не очень, пишут с chm переработали. Но и за то спасибо :)

«функция», «каталог», «пакет», «оператор» и подобные

Это я понимаю, был небольшой опыт на Делфи. И понимаю разницу между «directory» и «folder», если мне правильно вдолбили в голову :)

Что я не понимаю, так это POSIX, наверное вы это и имели ввиду, когда говорили о переносимости. Обожаю Википедию за перекрестные ссылки. Спасибо :)

Pa
() автор топика
Ответ на: комментарий от lovesan

школьникам/штудентам нужно учиться по стандарту сразу?

dzidzitop ★★
()

Вряд ли ты по GTK найдешь книгу, иди штудируй K&R, а дальше ихучай нужные тебе технологии по официальным док-м.

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

И POSIX, и правило - «жертвуй производительностью в пользу переносимости». Но POSIX не такой простой, как кажется сначала :D

Обожаю Википедию за перекрестные ссылки.

Где ж такое еще-то найти... В английской, кажется, чем-то получше в этом плане, хотя perl'ы те еще бывают...

//алсо, коль заинтересует ASM - единственный адекватный с синтаксисом от AT&T, как мне кажется

//всегда пожалуйста :-)

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

«жертвуй производительностью в пользу переносимости»

Ага, здесь стоит плюсонуть высокоуровневым языкам :)

POSIX не простой, да, насколько я понял, это и есть стандарт?

Насчет Ассемблера даже не знаю что сказать :) одно время я плотно читал на wasm.ru, имхо, гениальнешего человека с ником The Svin. Но Ассемблер же не является переносимым, он же завязан на процессоре.

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

Вот здесь

Например, можно спрятать аппаратно-зави-симую структуру в программно задаваемые данные абстрактного типа. Другие модули системы будут работать с этими данными, а не с аппаратурой, используя набор некоторых функций. Когда ОС переносится, то изменяются только эти данные и функции, которые ими манипулируют. Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.

если я всё верно понял, программист должен положится на компилятор?

Вообще конечно, Ассемблер очень интересный, но, как парни говорят, от него один шаг на темную сторону, до Hardware Description Languages :)))

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

Ага, здесь стоит плюсонуть высокоуровневым языкам :)

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

POSIX не простой, да, насколько я понял, это и есть стандарт?

Он самый. OS X даже в теме. Поэтому, кстати, по сути, во фряхе возможно поднять софт от Линя (линуксулятор, там, правда, еще были таблицы трансляции, но все же)

он же завязан на процессоре

Да. Но все же где-то да нужно бывает и иногда-таки применяется. Правда, отладка веселая, интересная и увлекательная... Кстати, крекерство платного софта под виндой весьма забавно и интересно ;-)

если я всё верно понял, программист должен положится на компилятор?

По сути да. Проще говоря, делать _свою_ работу - писать алгоритм, переносимый, простой и, главное, работающий. Все для переносимости (и, видимо, распространения), поэтому не советуют лезть ниже - работа для разработчиков компилятора. GCC, ИМХО, отличный компилятор :-) И Intel там опять что-то обещал придумать...

до Hardware Description Languages

До паяльника :-D

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

Не хочу я Mono и C#, я хочу Си :D

Будет ли извращением PyGTK с CFFI?

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