当我使用常量nVar而不是数字时,出现以下错误。

constants.h:

extern const unsigned int nVar;

constants.cpp:
#include "constants.h"
const unsigned int nVar = 5;

main.cpp
#pragma once
#include "constants.h"
void foo(const double q[nVar])
{
    // ...
}

编译器:

数组常量不是']'标记之前的整数常量

预期在','标记之前的')'

预期的'const'之前的unqualified-id

最佳答案

我认为这是因为编译器应该在编译时就知道数组的大小,但是在您的示例中,由于extern,nVar的值仅在链接时才知道

关于c++ - 用常数初始化数组不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16866267/

10-11 22:59