数组下标的类型WORD [int]无效

时间:2015-02-02 16:12:33

标签: c++ netburner

对我来说很容易,我仍然是一个使用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   */

截图:

Screenshot

1 个答案:

答案 0 :(得分:2)

您的真实代码(从屏幕截图转录)是:

DWORD u_data002;
WORD  u_data003;

u_data002[u_data_003] = whatever;

尝试将整数索引,就好像它是数组或指针一样。

据推测,u_data002应该是一个数组,或者你打算写一些u_data002以外的东西。