在C代码中添加到头文件时,全局数组没有'type'

Jor*_*len 2 c++ arrays arduino

我试图跨多个cpp文件使用全局变量.为此,我将变量添加到调用的头文件中,system.h并在其中创建了一个变量:

extern int test_variable[];
Run Code Online (Sandbox Code Playgroud)

现在在我file1.cppsystem.h头文件中包含标头并用值初始化变量:

int test_variable[10] = {0,2,4};
Run Code Online (Sandbox Code Playgroud)

file2.cpp我想新的号码添加到阵列中,然后打印出数组.system.h也包含在文件的顶部:

test_variable[4] = 7;

void saveToSD(){
for(int i = 0; i < 10; i++)
{
  Serial.print(test_variable[i]);
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误,指出test_variablein file2.cpp中没有命名类型.我错过了什么,因为我已经在头文件中初始化了它的类型并且也file1.cpp说明了它的类型?

dbu*_*ush 8

该行test_variable[4] = 7;是一个赋值(更一般地说,是一个可执行的代码行),而不是初始化,因此不允许在函数之外.

您需要在file1中将此值添加为初始化的一部分,或者将赋值移动到函数中.