Objective c 在语句末尾添加反斜杠有什么意义?
我使用的是Xcode 5.1,观察到一种奇怪的语法。我在语句末尾添加了“\”:Objective c 在语句末尾添加反斜杠有什么意义?,objective-c,Objective C,我使用的是Xcode 5.1,观察到一种奇怪的语法。我在语句末尾添加了“\”: CGFloat x = 3.0;\ 令我惊讶的是,这不是一个语法错误,我的应用程序正在运行。但如果我加上两个斜杠,它就会给我错误。此外,我没有看到我的应用程序行为因此发生任何变化。由于我不熟悉Objective C,我想知道在语句末尾添加反斜杠的含义。由于源文件由预处理器处理,反斜杠换行被简单地删除,因此如下所示: CGFloat x = 3.0;\ CGFloat y = 4.0; 变成: CGFloat
CGFloat x = 3.0;\
令我惊讶的是,这不是一个语法错误,我的应用程序正在运行。但如果我加上两个斜杠,它就会给我错误。此外,我没有看到我的应用程序行为因此发生任何变化。由于我不熟悉Objective C,我想知道在语句末尾添加反斜杠的含义。由于源文件由预处理器处理,反斜杠换行被简单地删除,因此如下所示:
CGFloat x = 3.0;\
CGFloat y = 4.0;
变成:
CGFloat x = 3.0;CGFloat y = 4.0;
这仍然有效。然而:
CGFloat x = 3.0;\\
CGFloat y = 4.0;
即:
CGFloat x = 3.0;\
CGFloat y = 4.0;
这是无效的
请参阅。的第一节,您正在“转义”文本行末尾的新行字符(return)。因为在一行上有多个语句是合法的,所以没关系。如果在末尾加上第二个斜杠,则是在源代码中插入了一个文字'\'字符,这是无效的语法
在类似C语言的多行宏中,您经常会看到单个“\”字符,以使它们更具可读性。它只是行延续字符。这不是偶然出现在宏定义中吗?次要的一点,但是…。在最后一个示例中,我认为如果查看预处理器输出,换行符实际上不会被删除。