在C程序初始化中使用反斜杠有什么用?

时间:2017-10-05 15:05:34

标签: c escaping

  1. 没有反斜杠

    echo 'Filter by client: ';
      echo '<select name="client_list"><option value=""></option>';
      foreach ($client as $key => $row) {
        $value = $row->string;
        if($_GET['client_list'] == $value){ 
           echo '<option value='.$value.' selected>'.$value. '</option>';
        }else{
           echo '<option value='.$value.'>'.$value. '</option>';
        }
      $client = $_GET['client_list'];
      echo '</select>'; 
    
  2. 使用反斜杠

    unsigned char a=5;
    
  3. 鉴于两者的工作方式相同,那么反斜杠的实际用途是什么?

2 个答案:

答案 0 :(得分:3)

行尾的\字符表示应将以下行视为上一行的延续。

由于在赋值(=)运算符后允许你有空格,所以在这种情况下它是没有意义的。

答案 1 :(得分:0)

C标准以这种方式描述了程序翻译的第二阶段:

5.1.1.2翻译阶段

...

  1. 立即删除后跟换行符的每个反斜杠字符(\)的实例,将物理源代码行拼接成逻辑源代码行。只有任何物理源代码行上的最后一个反斜杠才有资格成为此类接头的一部分。不为空的源文件应以换行符结尾,在进行任何此类拼接之前,不得紧接在反斜杠字符之后。

因此,发布的2个代码片段之间没有语义差异。这些反斜杠换行符也可以出现在令牌中间:

\
u\
ns\
ign\
ed c\
har a\
 = 5;/\
/comment