【学习笔记】C语言之词法规则

一、字符

标准并没有规定C环境必须使用特定的字符集,但是它规定了字符集必须包含英语所有的大小写字母,数字0到9,以及下面的字符:

! # % ^ & * ( ) _ – + =  / . ? \ > < , ~ ; : [ ] { } '  " |

标准还规定了几个三字母词,是为了使C环境在某些缺少一些必需字符的字符集上实现。

??(    [
??)    ]
??!    |
??<    {
??>    }
??'    ^
??=    #
??/    \
??-    ~

为了可以在某些上下文环境使用特定的字符,例如在字符串中包含一个双引号,C语言定义了几个转义序列或字符转义,转义字符由反斜杠\加上一个或多个其他字符组成:

  • \?  在书写连续多个问号时使用,防止被它们解释成三字母词。
  • \"   用于表示一个字符串常量内部的双引号。
  • \'   用于表示字符常量'。
  • \\   用于表示一个反斜杠,防止它被解释为一个转义字符。

另外一些转义字符用于格式化程序输入输出或操纵终端显示屏。

  • \a    警告字符。它将奏响终端铃声或其他可听见或可看见的信号
  • \b    退格键
  • \f     进纸字符
  • \n    换行符
  • \r     回车符
  • \t    水平制表符
  • \v    垂直制表符
  • \ddd ddd表示1~3个八进制数字,这个转义字符表示给定的八进制数值所代表的字符
  • \xddd  同上,只是八进制换成了十六进制

二、标识符

标识符是变量、函数、类型的名称。它们由大小写字母、数字以及下划线组成,但是不能以数字开头。C语言是一个大小写敏感的语言。标识符的长度没有限制,但是标准规定编译器支持到63个字节,extern支持到31字节。以下是C语言的关键字,不能作为标识符使用,红色的表示C99新增的。

auto         do        goto        signed        unsigned
break        double    if          sizeof        void
case         else      int         short         while
for          continue  long        volatile      static
typeder      default   union       const         extern
enum         char      float       register      struct
switch       return
    restrict    inline       _Complex
_Imaginary   _Bool
posted @ 2013-08-31 20:31  薛遗山  阅读(709)  评论(0编辑  收藏  举报