Сложно ли изучать C, если вы знаете Objective-C? - PullRequest
4 голосов
/ 22 июля 2009

Я нахожусь в процессе обучения себя Objective-C через "Программирование в Objective-C 2.0" Стивена Кочана. Это отличная книга, и сейчас я читаю ее во второй раз, впервые я понял ее суть, и теперь она действительно начинает тонуть во второй раз.

Если у вас есть умеренное (о) знание Objective-C, насколько сложно будет выучить C? Я понимаю, что, кажется, бесконечные споры о том, какой язык изучать в первую очередь. Я решил пойти с Objective-C, потому что меня интересовали приложения Cocoa Mac / iPhone.

Примечание: для тех, кто знаком с физическим движком Бурундука ... Причина, по которой я могу начать преследовать C, в том, что он использует C. Сколько C мне нужно знать, чтобы адекватно использовать его. Я собирался использовать его вместе с Cocos2d, который использует Objective-C

Ответы [ 8 ]

5 голосов
/ 22 июля 2009

Учитывая, что C является строгим подмножеством Objective-C, если вы действительно полностью уже знаете Objective-C, вы также знаете и C.

4 голосов
/ 22 июля 2009

Нет. Я выучил C и пришел из C #.

Однако, действительно трудно найти обновленные учебники / блоги, вот некоторые из них, которые я использовал:

Блоги (я нашел только один обновленный):

Учебники:

2 голосов
/ 22 июля 2009

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

Тем не менее, если ваша цель заключается в написании программ ObjC, включающих библиотеки C, то изучение ObjC в первую очередь, безусловно, является правильным подходом, и книга Кочана - отличное начало (за которым следует Программирование какао для Mac OS X Хиллегасс). Использование такого движка, как Chipmunk или cocos2d, позаботится о некоторых более сложных деталях программирования на C для вас и определенно поможет вам освоиться.

1 голос
/ 22 июля 2009

Ну, я бы посоветовал получить некоторый опыт работы с C, прежде чем углубляться в Objective-C. Зачем? Потому что Objective-C изолирует вас от многих более сложных и интересных битов программирования, таких как очень ручное управление памятью, сумасшедшие указатели и т. Д. Поскольку Objective-C является строгим надмножеством C, может наступить время, когда вам понадобится использовать эти понятия, но без какого-либо опыта в C это может быть довольно запутанным. Я сделал ошибку, не тратя достаточно времени на C, прежде чем перейти к Objective-C, поэтому, когда я начал работать над более сложными приложениями, мне нужно было много читать на C.

1 голос
/ 22 июля 2009

В основном, C является Objective-C без:

  1. Все, что связано с отправкой сообщений (все эти [] скобки
  2. Все, что начинается с @ (ребята из Objective C решили использовать это перед всем, что они добавили, чтобы было понятно, что было расширением

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

  1. Синтаксис объявления функции (без методов)
  2. Функциональные указатели
  3. * 1016 Структуры *
  4. таНос () / свободный ()

В целом, я думаю, что, вероятно, легче перейти от Objective-C к C, чем начать изучать C с нуля. Хотя это всего лишь предположение, я сначала изучил C (около 15 лет назад) и почти целое десятилетие писал код Objective C.

0 голосов
/ 22 июля 2009

Глава 13 «Базовые особенности языка C» в книге Стивена Кочана об Obj-C, кажется, много говорит о указателях, структурах, функциях и т. Д. С C. Я никогда не читал это в первый раз (это как бы подсказало) только читайте его, если вам нужно) но после того, как я прочитал его во второй раз, я мог бы вернуться и прочитать Главу 13, он должен дать мне хорошее представление о C по сравнению с Obj-C.

0 голосов
/ 22 июля 2009

Указатели - это то, что делает C трудным, и звучит так, как будто они не являются большой частью программирования Objective-C.

0 голосов
/ 22 июля 2009

Я выучил C, прежде чем я изучил Objective-C, но у обоих есть свои сходства и различия. Все операторы if, for & while в C одинаковы, но то, как вы используете GTD, отличается. В Objective-C вы на самом деле не знакомы с указателем целиком, но это очень важно для C, и единственный способ разобраться в этом - это чтение и практика. Это может показаться пугающим, но как только вы освоитесь, это не так уж плохо. Функции немного отличаются от методов синтаксически и от того, как они называются, так что вам также придется изучить это, но если вы получите хорошую книгу (http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628), это не должно быть так сложно. Просто прочитайте и попрактикуйтесь!

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...