Microsoft C++完整词法分析(三)
luyued 发布于 2011-02-03 07:35 浏览 N 次5常量
在C++语言中,常量主要有4种:整数、字符、浮点和字符串常量。下面分别加以介绍。
5.1整数常量
整数常量显然有4种情况。十进制、八进制和十六进制这3种整数我们已经很熟悉了。除了这3种整数以外,在C++中也可以把一个普通的字符来当整数用。比如:int a=’a’;整数由整数体和整数后缀构成。比如:int a = 128ul。
整数常量的文法如下:
integer-constant :
decimal-constant integer-suffixopt
octal-constantinteger-suffixopt
hexadecimal-constantinteger-suffixopt
'c-char-sequence'
decimal-constant :
nonzero-digit
decimal-constantdigit
octal-constant :
0
octal-constantoctal-digit
hexadecimal-constant :
0x hexadecimal-digit
0Xhexadecimal-digit
hexadecimal-constanthexadecimal-digit
nonzero-digit : one of
1 23456789
octal-digit : one of
0 1234567
hexadecimal-digit : one of
0 123456789
abcdef
ABCDEF
integer-suffix :
unsigned-suffix long-suffixopt
long-suffixunsigned-suffixopt
unsigned-suffix : one of
u U
long-suffix : one of
l L
64-bit integer-suffix :
i64
64位的后缀一般不需要,编译器会自动识别出来的。其对应的正则表达式为:
unsigned_suffix : u|U
long_suffix : l|L
integer_suffix : {unsigned_suffix}{long_suffix}?|{long_suffix}{unsigned_suffix}?
nonzero_digit : [1-9]
octal_digit : [0-7]
hex_digit : [0-9a-fA-F]
dec_constant : {nonzero_digit}{digit}*
octal_constant : 0{octal_digit}*
hex_constant : 0(x|X){hex_digit}*
integer_constant : ({dec_constant}|{octal_constant}|{hex_constant}){integer_suffix}?|\’{c_char_sequence}\’
5.2字符常量
普通字符常量只有一个字符,但是,Mircosoft C++支持宽字符。总体来说,它支持3种类型的字符常量:普通字符常量、多字符常量和宽字符常量。下面是几个例子:
1int a = ’b’; 2int a = ‘ab’; 3wchar_t c = L‘ab’; wchar_t类型定义在文件stdlib.h中。
字符常量的文法如下:
character-constant :
'c-char-sequence'
L'c-char-sequence'
c-char-sequence :
c-char
c-char-sequencec-char
c-char :
any member of the source character set except the single quotation mark ('), backslash (\), or newline character
escape-sequence
escape-sequence :
simple-escape-sequence
octal-escape-sequence
hexadecimal-escape-sequence
simple-escape-sequence : one of
\' \"\?\\
\a\b\f\n\r\t\v
octal-escape-sequence :
\octal-digit
\octal-digitoctal-digit
\octal-digitoctal-digitoctal-digit
hexadecimal-escape-sequence :
\x
- 06-02· 【转】 给Ubuntu安装netboo
- 06-02· Netbook
- 05-31· 你搜“联宝戏” 揭示你未
- 05-31· 联宝戏一切成功都是那么
- 05-31· 联宝(LINPO)
- 05-31· 台湾联宝CY25 ¥1400
- 05-31· 透视!笔记本奸商的无间道
- 05-31· 沈阳惠普笔记本维修千万
- 05-31· 重庆联宝活性炭恭祝各位
- 05-31· [转载]第十步:移联宝移动
- 05-28· 高端便携商务本 富士通
- 05-27· 富士通推首台器MeeGo新本
- 05-27· 富士通云计算方案三级跳
- 05-26· 惠普 Compaq 6530B(VA078PA)
- 05-26· of Alienware M14xAkku HP Compaq
- 05-26· ASUS HP COMPAQ DELL 笔记...
- 05-26· 惠普Compaq Presario CQ40 313A
- 05-25· 2011年03月25日
- 05-25· 如何安装在您的康柏Evo
- 05-25· 康柏斯校园购物网康柏斯