警告 C4114:同一类型限定符使用超过一次

6

将VC++ 6.0开发的代码迁移到Visual Studio 2008时,在我的代码中以下行出现了警告。

const int const CImportContext::PACKETSIZE = 4096;

我知道如何修复指针。
static const int const * PACKETSIZE;   // C4114
static const int * const PACKETSIZE;   // Correct

但我的问题是如何解决这个警告,如果它像下面这样(没有指针),
static const int const PACKETSIZE;
2个回答

13

指针有两种不同的const限定符,一种是用于指针本身,另一种是用于指针所指向的内容。

但对于int类型来说,使用两种不同的const限定符并没有意义。只需使用一种即可:

const int CImportContext::PACKETSIZE = 4096;
或者
int const CImportContext::PACKETSIZE = 4096;

谢谢@Yu Hao。我明白了我的错误。已经纠正了它!! - user3360310

0

"const" 限定符是左结合的,它总是应用于其左侧的数据类型,除非没有左侧的数据类型,那么它将应用于其右侧的数据类型。你的示例中的数据类型是 "int" 和 "*" - 对其中任何一个或两个都应用 "const" 都是有意义的。对单个数据类型应用两次 "const" 是没有用处的,但提示存在问题 - 这就是警告的原因。("static" 是存储的限定符。"PACKETSIZE" 是变量对象名称。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接