在`@`开始在Objective-C中声明之后是否允许使用空格?

xui*_*in. 5 declaration objective-c

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

@ interface A
@ end
Run Code Online (Sandbox Code Playgroud)

编译器接受代码而无需投诉.任何人都可以指向我的参考方向,明确说明@ interfaceObjective-C规范是否也被认为是可接受的?除了问题前面提到的简单文本之外,我在Apple的2008年和2011年的文档中都没有发现任何方式.

提前致谢.

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

Rob*_*ier 3

Objective-C 没有正式的规范(除了The Objective-C 编程语言)。空白约定绝对没有 BNF 风格的定义。如果它可以编译,那就是最接近“合法”的了。许多语言都是如此。例如,Perl 最好定义为“perl可执行文件不会拒绝的那些字符串”。(最起码,我是这么想的....)

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