问题描述
我目前正在从事基于Atmega2560的硬件项目,并且我已经写了大约2000行C ++代码-现在变得难以管理。这是一个针对本地社区的项目,可维护性很重要,因此我试图将所有内容都放入模块中并保持简单,以便对我了解甚少的C ++的人至少可以了解发生了什么。 / p>
项目的核心是一个全局多维整数数组,该数组最初在main.cpp中声明(在main.cpp中包含的所有函数中都可以正常工作):
// main.cpp
const int A = 30;
const int B = 20;
const int C = 10;
int gArray[A][B][C];
如果我在GLOBAL.h中执行相同的操作,它可以很好地编译-因此,显然,A,B和C被接受为常量。但是它不适用于所有模块。如果在代码模块中,我使用:
// setup.cpp
extern const int A;
extern const int B;
extern const int C;
extern int gArray[A][B][C];
我收到“数组绑定不是']'令牌之前的整数常量”的错误。
所以我的问题基本上是-如何在多个模块中使用全局多维数组,并且将固定维设置在单个位置以实现可维护性?
我一直在尝试进行一些排序,阅读并尝试了许多已读过的想法,但是我没有取得任何进展。同时,我已经创建了用于设置和读取数组值的函数,并将它们放置在GLOBALS.h中-这似乎不太雅致,但这是一种可以理解和实际的解决方法:
const int A=30;
const int B=20;
const int C=10;
int gARRAY[A][B][C];
void setARRAY(int A,int B,int C,int V) {
gARRAY[A][B][C] = V;
}
int getARRAY(int A,int C) {
return gARRAY[A][B][C];
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)