-1

簡単に言ってください、私はまだ C/C++ の初心者です.. これが何度か尋ねられたことは知っています。このコードは NetBurner プロセッサ用で、DWORD は符号なし 32 ビット、WORD は符号なし 16 ビットです。

ヘッダー関数.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   */

スクリーンショット:

スクリーンショット

4

1 に答える 1

2

実際のコード (スクリーンショットから転記) は次のとおりです。

DWORD u_data002;
WORD  u_data003;

u_data002[u_data_003] = whatever;

これは、配列またはポインターであるかのように整数にインデックスを付けようとします。

おそらく、u_data002は配列であると想定されているか、 以外のものを書くつもりu_data002でした。

于 2015-02-02T17:11:24.057 に答える