个 错 误 。
(6) C++的作用域也会成为引发这个错误的陷阱。 在花括号之内变量, 是不能在这个花括号之外使用的。 函数、 do(while)、 类、 if、 for 所 引 起 的 花 括 号 都 遵 循 这 个 规 则 。 ( 关 联 : 作 用 域 )
(7) 前面某句语句的错误也可能导致编译器误认为这一句有错。如果你前面的变量定义语句有错误,编译器在后面的编译中 会认为该变量从来没有定义过,以致后面所有使用这个变量的语句都报这个错误。如果函数申明语句有错误,那么将会引发同 样 的 问 题 。
6 编 直 错
.
error 号
C2086:
'xxxx' :
:
redefinition C2374
译
: 误
“xxxx”
重 分
复
申 析
明
。 :
变 量 “xxxx” 在 同 一 作 用 域 中 定 义 了 多 次 。 检 查 “xxxx” 的 每 一 次 定 义 , 只 保 留 一 个 , 或 者 更 改 变 量 名 。
7 编 直 错
.
error
C2374: 号
'xxxx'
:
redefinition; :
multiple
initialization C2374
译
:
“xxxx” 误
重
复
申
明 分
,
多
次 析
初
始
化
。 :
变
量“xxxx”在同一作用域中定义了多次,并且进行了多次初始化。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。
8 编 直 错
.
C2143:
syntax 号
error
:
missing
';' :
before
(identifier)
'xxxx' C2143
译
:
在
( 误
标
志
符
) 分
“xxxx”
前
缺 析
少
分
号
。 :
这是 VC6 的编译期最常见的误报,当出现这个错误时,往往所指的语句并没有错误,而是它的上一句语句发生了错误。其实, 更合适的做法是编译器
报告在上一句语句的尾部缺少分号。上一句语句的很多种错误都会导致编译器报出这个错误: ( 1 ) 上 一 句 语 句 的 末 尾 真 的 缺 少 分 号 。 那 么 补 上 就 可 以 了 。
(2) 上一句语句不完整,或者有明显的语法错误,或者根本不能算上一句语句(有时候是无意中按到键盘所致) 。 (3) 如果发现发生错误的语句是 cpp 文件的第一行语句,在本文件中检查没有错误,而且这个文件使用双引号包含了某个头 文 件 , 那 么 检 查 这 个 头 文 件 , 在 这 个 头 文 件 的 尾 部 可 能 有 错 误 。
9
.
error
C2137:
empty
character
constant
编 直 错 译 : 误
号 空 的 分 字
: 符 析 定 义
C2137 。 :
原因是连用了两个单引号,而中间没有任何字符。一般的,单引号表示字符型常量,单引号中必须有,也只能有一个字符(使 用转义符时,转义符所表示的字符当作一个字符看待) 两个单引号之间不加任何内容是不允许的。 。 需要注意的是:如果单引号中的字符数是 2-4 个,编译不报错,输出结果是这几个字母的 ASC 码作为一个整数(int,4B)整体 看 待 的 数 字 。
如 果 单 引 号 中 的 字 符 数 多 于 4 个 , 会 引 发 2015 错 误 : error C2015: too many characters in constant 。
10 编 直 错
.
error
C2374: 号
'xxxx'
:
redefinition; :
multiple
initialization C2374
译
:
“xxxx” 误
重
复
申
明 分
,
多
次 析
初
始
化
。 :
变量“xxxx”在同一作用域中定义了多次,并且进行了多次初始化。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。
第 1 编 直 错 误 译 .
二
部 error 号 : 未 少 解 main
分 LNK2001: unresolved
链