Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在语句末尾添加反斜杠有什么意义?_Objective C - Fatal编程技术网

Objective c 在语句末尾添加反斜杠有什么意义?

Objective c 在语句末尾添加反斜杠有什么意义?,objective-c,Objective C,我使用的是Xcode 5.1,观察到一种奇怪的语法。我在语句末尾添加了“\”: CGFloat x = 3.0;\ 令我惊讶的是,这不是一个语法错误,我的应用程序正在运行。但如果我加上两个斜杠,它就会给我错误。此外,我没有看到我的应用程序行为因此发生任何变化。由于我不熟悉Objective C,我想知道在语句末尾添加反斜杠的含义。由于源文件由预处理器处理,反斜杠换行被简单地删除,因此如下所示: CGFloat x = 3.0;\ CGFloat y = 4.0; 变成: CGFloat

我使用的是Xcode 5.1,观察到一种奇怪的语法。我在语句末尾添加了“\”:

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语言的多行宏中,您经常会看到单个“\”字符,以使它们更具可读性。

它只是行延续字符。这不是偶然出现在宏定义中吗?次要的一点,但是…。在最后一个示例中,我认为如果查看预处理器输出,换行符实际上不会被删除。