使用外部全局变量c ++分配数组大小

jar*_*ead 2 c++ global-variables

我有以下简单的示例代码:

1.

//param.h
extern int n;
Run Code Online (Sandbox Code Playgroud)

2.

//param.cpp
int n =10;
Run Code Online (Sandbox Code Playgroud)

3.

# include <iostream>
# include "param.h"
using namespace std;
int main()
{
    double Arr[n];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它没有编译,因为我不能定义n.

为什么,在保持相同结构的同时解决这个问题的最佳方法是什么?

Som*_*ude 6

两件事:首先,您需要链接从源生成的所有目标文件.第二个是变长数组不是有效的C++结构.

要解决第一个问题,您需要确保编译两个源文件.在命令行上,或者在链接在一起形成可执行文件的单独目标文件中.

第二个问题可以通过const在声明和定义中使用关键字来使其成为编译时常量来解决.