对我来说很容易,我仍然是一个使用C / C ++的新手。我知道这已被问过几次了,而且我试过按照给出的解决方案无济于事。此代码用于NetBurner处理器,DWORD是32位无符号,WORD是16位无符号。
header func.h:
class funcs
{
// ...
private:
void myfunc();
WORD data001;
DWORD data002[100];
DWORD data003[100];
// ...
}
我有这个函数调用我的类funcs.cpp中的数据。假设所有变量都已初始化:
void funcs::myfunc()
{
data001++;
data002[data001] = x; // random x for this example
data003[data001] = y;
}
我的编译器抱怨:“错误:无效类型'数组下标的DWORD [WORD]”。我已经将数组下标类型更改为“int”,“unsigned int”以及我能想到的所有其他类型,并且仍然得到错误。我尝试了以前帖子中给出的解决方案:
void funcs::myfunc()
{
data001++;
this->data002[data001] = x; // random x for this example
this->data003[data001] = y;
}
但是没有用。我也尝试在类中包含myfunc定义,同样的错误。任何想法/解决方案?我很难过。谢谢你们!
编辑:头文件中提供的数据类型:
typedef unsigned char BOOL;
typedef unsigned char BOOLEAN;
typedef unsigned char BYTE; /* Unsigned 8 bit quantity */
typedef signed short SHORT;/* Signed 16 bit quantity */
typedef unsigned short WORD; /* Unsigned 16 bit quantity */
typedef unsigned long DWORD;/* Unsigned 32 bit quantity */
typedef signed long LONG; /* Signed 32 bit quantity */
typedef volatile unsigned char VBOOLEAN;
typedef volatile unsigned char VBYTE; /* Unsigned 8 bit quantity */
typedef volatile short VSHORT; /* Signed 16 bit quantity */
typedef volatile unsigned short VWORD; /* Unsigned 16 bit quantity */
typedef volatile unsigned long VDWORD; /* Unsigned 32 bit quantity */
typedef volatile signed long VLONG; /* Signed 32 bit quantity */
截图:
答案 0 :(得分:2)
您的真实代码(从屏幕截图转录)是:
DWORD u_data002;
WORD u_data003;
u_data002[u_data_003] = whatever;
尝试将整数索引,就好像它是数组或指针一样。
据推测,u_data002
应该是一个数组,或者你打算写一些u_data002
以外的东西。