Различное отношение к% d в ObjectiveC по сравнению с iOS - PullRequest
3 голосов
/ 17 марта 2011

1-й вопрос здесь. Пересмотрел FAQ, но не нашел ответа.

Я изучил Obj C, используя книгу Кочана, и он классифицирует% i для целых чисел,% f для чисел с плавающей запятой,% d для двойных.

При использовании iOS кажется, что это скорее:% i и% d для целого числа и% f для числа с плавающей запятой

Может ли кто-нибудь подтвердить и, возможно, объяснить обоснование. Я уже просмотрел руководство по строковому программированию Apple.

Заранее спасибо.

1 Ответ

5 голосов
/ 17 марта 2011

Соблюдается стандартный синтаксис C / C ++ . Таким образом,% d и% i оба представляют собой «целое число со знаком»,% f означает «десятичное число с плавающей запятой» и будет отображать числа с плавающей запятой или двойные числа.

Не зная, почему d и i дублируются, причина того, что% f действительно плавает и удваивается, состоит в том, что на вещи, переданные с помощью многоточия, распространяются правила продвижения C. Если вы передадите какой-либо целочисленный тип, меньший чем int, он будет переведен в полноразмерный тип int для передачи. Точно так же, если вы передадите поплавок, он будет повышен до двойного. Таким образом, объект, получающий аргументы, просто должен думать о целых числах по сравнению с плавающей запятой, а не о размере хранилища.

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