Я достаточно разбираюсь в Objective-C, но я искал некоторые фреймворки и библиотеки, которые я мог бы использовать в будущем, и я все чаще вижу использование C. До сих пор единственные написанные мной приложения содержали только Objective-C, Я знаю, что Objective-C является надмножеством C, но я имею в виду, когда я говорю, что я написал только в Objective-C, это то, что я использовал только методы Objective-C и синтаксис Objective-C, который явно отличается от C синтаксис. Я занимаюсь вопросами, связанными с отношениями между C и Objective-C (см. Ссылки ниже), и я хочу начать изучение C, но, судя по всему, существует три типа C (K & R, C89 и C99) и Мне интересно, какой тип я должен научиться помогать мне с Objective-C. Я знаю из изучения Objective-C, я тоже неосознанно узнал С, но я хочу больше понять все входы и выходы C и ознакомиться с его функциями, синтаксисом, функциями и т.д. Кроме того, Objective-C основан на любом из три типа C?
Обучение C для Objective-C
Ответ 1
Есть еще больше типов C. В то же время были определены C0X и C11... Все они делают лишь небольшие эволюционные шаги от своих предшественников, поэтому вам не стоит беспокоиться об этом. Objective-C основан на C99 (минус прагматы с плавающей запятой, фактически), поэтому на данный момент это, вероятно, будет лучше всего подходит.
Это не совсем ясно из вашего вопроса, но вы заметили, что эти вариации C - это просто развивающиеся спецификации разных лет? K & R от около. 1978, C89 с 1989 года, C99 с 1999 года и т.д. Objective-C был разработан как строгий суперсет C, поэтому вы, вероятно, можете ожидать, что Objective-C будет включать функции C11 в какой-то день.
(NB: несколько изменений для включения информации из комментариев)
Ответ 2
Я предлагаю вам взглянуть на некоторые вводные тексты на C и узнать, какой диалект C диалект преподает текст. Вероятно, это C89 или C99.
K & R C отсутствует современные функции, такие как "прототипы" (объявление количества и типов аргументов для ваших функций). C89 добавляет все это.
C99 имеет, в основном, небольшие инкрементные функции, которые полезны в конкретных доменах. Основная часть материала, который вам нужно изучить, должна быть одинаковой на всех C89 и C99. Интересный факт: Microsoft никогда не беспокоилась о внедрении C99.
Собственно, я предлагаю конкретный вводный текст: используйте Второе издание K & R. Это в основном обновляет K & R до C89. K & R - замечательная книга и отличный выбор для изучения языка C.
https://stackoverflow.com/info/1646667/kr-1st-edition-vs-2nd-edition