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

时间:2014-03-14 12:28:32

标签: c++ visual-c++ const

在将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 个答案:

答案 0 :(得分:10)

指针有两种不同的const限定符是有意义的,一种是指针本身,另一种是指针所指向的。

int类型有两种不同的const限定符是没有意义的。只需使用一个:

const int CImportContext::PACKETSIZE = 4096;

int const CImportContext::PACKETSIZE = 4096;

答案 1 :(得分:0)

“const”限定符是左关联的,它总是适用于它的左侧数据类型,除了没有左侧数据类型的情况,因此只有在这种情况下才会使用它的右侧数据类型。示例中的数据类型是“int”和“*” - 将“const”应用于其中一个或两个都是有意义的。将它应用两次到单个数据类型是没有用的,但提示是一个问题 - 这就是警告的原因。 (“static”是存储的限定符。“PACKETSIZE”是变量对象名。)