是否可以将大数组声明为静态,并将其用作c中其他文件中的extern

Joh*_*ohn 2 c arrays static extern

我有一个非常大的数组,它在vc项目的许多文件中的许多函数之间共享.我的问题是,我必须在main()中声明它并在头文件中使用extern.由于数组对于堆栈而言太大,我必须使用静态,因此无法在头文件中使用extern声明.

我怎么解决这个问题?

编辑:

我所做的就像你说的那样但我得到错误LNK2001:未解析的外部符号

这是我的全球声明和外部声明:

main.c中

static unsigned char bit_table_ [ROWS] [COLUMNS];

hdr.h

extern unsigned char bit_table_ [ROWS] [COLUMNS];

ROWSCOLUMNS分别可以增长到1024和1048576

Car*_*rum 5

声明一个全局指针并在所有源文件中共享它(通过extern标题).然后填充该全局指针main().

编辑:

您对问题的评论似乎表明您将堆与堆混淆.只需使您的数组全局并extern通过标头中的声明共享对它的访问.问题解决了,没有搞笑的技巧.