在语句末尾添加反斜杠的含义是什么?

时间:2014-07-28 12:10:55

标签: objective-c

我正在使用Xcode 5.1并观察到一种奇怪的语法。我添加了#34; \"在声明的最后:

CGFloat x = 3.0;\ 

令我惊讶的是,这不是一个语法错误,我的应用程序正在运行。但是,如果我添加两个斜杠,那么它会给我错误。此外,我没有看到我的应用行为发生任何变化。由于我是Objective C的新手,我想知道在语句末尾添加反斜杠的含义。

2 个答案:

答案 0 :(得分:3)

由于源文件由预处理器处理,因此只需删除反斜杠换行符,如下所示:

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;

无效。

请参阅this pretty old looking text的第一部分。

答案 1 :(得分:0)

您正在“转义”文本行末尾的新行字符(返回)。由于在一条线上有多个语句是合法的,这没关系。如果你在结尾添加第二个斜杠,那么你在源代码中插入一个文字“\”字符,这是无效的语法。

您经常会在类似C语言的多行宏中看到单个'\'字符,以使它们更具可读性。