5

我正在查看 Objective-C,我注意到,例如,类接口声明以@interface. 很好,没问题。@因此,该文本表明和之间不允许有空格interface。但是,当我将以下简单示例传递给*.m文件中的 GCC 编译器时:

@ interface A
@ end

编译器毫无怨言地接受代码。任何人都可以将我指向明确说明@ interfaceObjective-C规范是否也可以接受的参考吗?除了问题前面提到的简单文字外,我在 Apple 的 2008 年和 2011 年的文件中没有发现任何一种说法。

提前致谢。

编辑:值得注意的是,Emacs 根据标识符是否是关键字来执行文本着色;关键字是蓝色的,非关键字是黄色的。颜色为@interface蓝色和@ interface黄色。在 Vim 中也会发生类似的行为。

4

1 回答 1

3

Objective-C 没有正式的规范(在Objective-C 编程语言之外)。空白约定绝对没有 BNF 风格的定义。如果它编译,那是我们最接近“合法”的。许多语言都是如此。例如,Perl 最好定义为“perl可执行文件不会拒绝的那些字符串”。(至少在我看来....)

也就是说,正确的样式是@interface没有空格的。请参阅定义类

于 2012-07-13T19:07:20.253 回答