Странный код, который компилируется - PullRequest
0 голосов
/ 28 января 2012

Я написал в своем коде что-то вроде этого, и странно то, что он работает!

 MKAnnotationView *mapViewIzan = [[MKAnnotationView alloc] 
     initWithAnnotation:annotation 
     reuseIdentifier:reuse];;;;;;

Почему этот код компилируется и работает?Вы можете видеть, что я добавил ";;;;;"

Спасибо за ваши ответы.

Ответы [ 2 ]

2 голосов
/ 28 января 2012

Точка с запятой ; является допустимым утверждением в C (и, следовательно, в Задаче C).Этот оператор ничего не делает - он представляет собой пустую операцию.

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

while (*dest++ = *src++);

Точка с запятой в конце важна для работы этой конструкции.

2 голосов
/ 28 января 2012

Все операторы в Цели C завершаются символом ;.

do();;

, аналогичным

do();

, за которым следует пустой оператор, который ничего не делает, что вполне допустимо в Цели C.

Ваш ;;;;; - это всего лишь несколько пустых утверждений, ничего не делающих.

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