2010-03-07 3 views
2

Я последний раз пользовался C профессионально около 1997 года IIRC. С тех пор я использовал много C++. Теперь я считаю, что мне нужно снова использовать C.Где я могу найти хорошую ссылку для изучения C после лет C++?

Я уверен, что я не могу просто отказаться от очевидных возможностей C++ (например, классов) и ожидать, что все будет работать. Существуют различные менее очевидные изменения синтаксиса. Я просто не помню, что это такое.

Есть ли хорошая ссылка для того, чтобы сделать этот переход снова, но вернувшись на C? Если это объясняет изменения в C99 (и позже?), Это еще лучше.

ответ

6

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

  1. Перечитать Керниган и Ритчи

  2. Дополнительно: прочитать Питер ван дер Линдена великолепно Expert C Programming: Deep C Secrets.

  3. Не забывайте о библиотеках! Посмотрите на книгу П. Дж. Плаугера Стандартная библиотека C или просто перейдите к http://dinkumware.com/ (компания Plauger) и просмотрите их отличную документацию по библиотекам C99.

  4. В стандарте C отсутствуют библиотеки структуры данных. К счастью, есть отличная бесплатная сторонняя библиотека, которая заполняет несколько пустот: C Interfaces and Implementations Дейва Хэнсона.

+0

++ перечитать K & R. Он маленький и лаконичен. – Harvey

+0

+1 для рекомендации ван дер Линдена. Это действительно так хорошо. – Dan

1

Herbison and Steele: C: A Reference Manual, Fifth Edition может быть полезным w.r.t C99. Кроме того, прочитайте стандарт, документы, доступные на open-std.org. И, наконец, документацию по компилятору/инструментальной цепочке, которую вы планируете использовать. Последний ставит все в перспективе - как много нужно переучивать.

+0

560 страниц кажется немного для «быстрой справки». Мне не нужно учиться на C с нуля. Я надеялся на что-то с несколькими страницами главных ошибок - что-то, чтобы спасти меня, что первые несколько часов ругательства, поскольку каждая другая строка кода оказывается неправильной, в основном.Помните, у меня больше нет ни одной книги С, так что, возможно, эта книга имеет смысл. Но это все еще кажется немного большим. Что касается стандартов - да, я, вероятно, должен купить несколько из них. – Steve314

+0

Я не думаю, что вам нужно будет прочитать все это. Помогает книга в руке. – dirkgently

1

Не достаточно, но хороший стартер: C for C++ Programmers

+0

Это похоже на хорошую отправную точку - но я уверен, что это не актуально. Например, он говорит мне не использовать «//» для комментариев - я уверен, что теперь это действует на C. Я был в шоке от вида «<<" and ">>» в списке недоступных функций - пока не понял, что это означает но не для бит-сдвигов. – Steve314

0

C for Programmers, по Leendert Ammeraal, это, безусловно, самое лучшее, что я видел по этим линиям. К сожалению, почти 20 лет, трудно найти и (очевидно) не обновляется на C99.

+1

Он, вероятно, не использует C99, если он сталкивается с отсутствующими вещами, отличными от классов и шаблонов. Например, C++ добавила встроенные функции, объявление переменной среднего уровня и однострочные комментарии, все из которых получили C, но не многие встроенные компиляторы C. Даже если он использует C99 часть времени, он будет ценить знания, присутствующие в классическом C. –

1

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

+0

. Было бы большим вниманием к чтению особенно интересного файла или двух? – Steve314

+0

Посмотрите, как реализован GtkObject, а также замыкания. – cheez

0

Попробуйте следующую ссылку, я нашел, что это хорошо для справки:

http://www.techbooksforfree.com/ccpp.shtml 

Также Sarafi Книги или Books24x7 (у вас есть доступ к обоим, используя либо ACM или IEEE членства), отличные ссылки для технических книг ,

Кроме того, ничто не может бить K & R:

http://www.amazon.com/exec/obidos/ASIN/0131103628 

http://www.amazon.com/exec/obidos/ASIN/013089592X 

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

Смежные вопросы