Objective c 编译的奇怪代码

Objective c 编译的奇怪代码,objective-c,Objective C,我已经在我的代码中写了这样的东西,奇怪的是它正在工作 MKAnnotationView *mapViewIzan = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuse];;;;;; 为什么这段代码要编译并工作?你可以看到我添加了“;;;” 感谢您的回答。目标C中的所有语句均以结尾 do();; 就跟 do(); 然后是一个不做任何事情的空语句,这在目标C中是完

我已经在我的代码中写了这样的东西,奇怪的是它正在工作

 MKAnnotationView *mapViewIzan = [[MKAnnotationView alloc] 
     initWithAnnotation:annotation 
     reuseIdentifier:reuse];;;;;;
为什么这段代码要编译并工作?你可以看到我添加了“;;;”


感谢您的回答。

目标C中的所有语句均以
结尾

do();;
就跟

do();
然后是一个不做任何事情的空语句,这在目标C中是完全有效的


你的
只是一些空语句,它们什么也不做。

分号
在C中是有效的语句(因此在目标C中也是有效的)。此语句不执行任何操作-它表示一个空操作

在您的示例中,此语句不是必需的,但在某些情况下它很重要。例如,复制C字符串的操作如下:

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

结尾的分号对于该构造的工作至关重要。

如果代码工作,为什么会出现问题?分号本身在C中是有效的