Для того чтобы создавать приложения для операционной системы iOS, вам надо разговаривать с ней.
Все, что вы скажете системе iOS, должно соответствовать ее интерфейсу API (т.е. интерфейсу прикладного программирования, представляющему собой список спецификаций того, что именно вы можете говорить.) Следовательно, вам нужны базовые знания языка программирования С, по крайней мере по следующим причинам.
Большая часть интерфейса API системы IOS использует язык Objective-C, так что в основном программирование для IOS будет вестись вами на языке Objective-C. ObjectiveC является надмножеством языка программирования С. Это означает, что Objective-C включает в себя С; все, что верно для С, верно и для Objective-C. Распространенная ошибка заключается в игнорировании того факта, что "Objective-C - это С~ и пренебрежении базовыми знаниями языка программирования С.
Часть интерфейса API системы IOS основана на С, а не на Objective-C. Даже при кодировании на Objective-C часто требуется использовать структуры данных и вызовы функций С. Например, прямоугольник представлен в виде структуры С CGRect, а для создания объекта CGRect из четырех чисел следует вызвать функцию С CGRectMake.
Очень часто документация интерфейса API системы IOS содержит выражения на языке программирования С и ожидает от вас их понимания. Один из лучших способов изучить язык С - прочесть книгу Брайана Кернингана (Brian W. Кernighan) и Денниса Ричи (Dennis М. Ritchie) Тhе С Рrоgтатт/пg Language (PTR Prentice Hall, 1988)1, известную также под аббревиатурой Kd-R (Ричи был создателем языка программирования С). Это одна из лучших когда-либо написанных компьютерных книг: краткая, насыщенная, потрясающе точная и понятная. Книга K&R настолько важна для эффективного программирования для IOS, что она всегда лежит у меня на столе, когда я занимаюсь программированием (советую вам сделать то же самое). Еще одним полезным справочником я бы назвал книгу Майка Банахана (Mike Banahan). Диклана Броди (Declan Brady) и Марка Дориана (Мark Doran) Тhе С Book.
Совершенно невозможно описать весь язык С в одной главе. Он не слишком большой и не слишком трудный, но имеет ряд "острых мест" и может быть исключительно тонким, мощным и низкоуровневым инструментом. Кроме того, поскольку язык С полно и корректно описан в вышеупомянутых книгах, было бы ошибкой повторять то, что уже было сказано в них лучше, чем мог бы сделать я. Так что данная глава - не типичное руководство по языку программирования С.
Для того чтобы эффективно использовать язык Objective-C, не обязательно знать о языке С все. Так что моя цель в этой главе - наметить те аспекты языка С, которые важно понять прежде всего, до того, как начать пользоваться языком Objective-C для программирования в операционной системе iOS. Эта глава так и называется - "Краткое описание языка С': Она предназначена для комфортного и безопасного начала работы.
Если вы вообще ничего не знаете о языке С, предлагаю вам в дополнение к данной главе прочесть избранные места из книги Kd-R. Вот предлагаемый мною план ее чтения.
Язык программирования С, определенный в книге Kd-R, не является в точности тем языком С, который образует основу для Objective-C. Со времен первого издания Kd-R язык постоянно развивался (появились стандарты ANSI С, С89, С99), да и компилятор Xcode также несколько расширяет стандартный язык программирования С. По умолчанию проекты Xcode рассматриваются как написанные на языке программирования, соответствующем стандарту GNU99 (расширению стандарта С99, хотя при желании вы можете указать и иной стандарт). К счастью, наиболее важные отличия языка из книги Kd-R и среды Xcode невелики и представляют собой улучшения для удобства использования, которые легко запомнить, так что Kd-R остается лучшим и наиболее надежным справочником по С.