サイズの大きな配列の配置とアクセスについて

お世話になっております。

要素数が約3200個の2バイトの符号付整数の配列を、それを参照する関数の外においておきました。

関数から参照させると、「Expression must have pointer-to-object type」(式はオブジェクト型へのポインタである必要があります。)というコンパイルエラーとなってしまいました。

関数の外(別のソースファイル)に作成した配列は次のような記述です。 (抜粋)

static const int16_t thermistor_10K[3211] = {
      -400,-400,-399,-398,-398,-397,-396,-396,-395,-394,
      -394,-393,-392,-392,-391,-390,-390,-389,-389,-388,

      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

      689,690,690,691,691,692,692,693,693,694,
      695,695,696,696,697,697,698,698,699,699,
      700
};

 

関数の、配列を参照している箇所の記述は、次の通りです。

extern int16_t thermistor_10K;

void main(){

  int16_t hoge;

  hoge = thermistor_10K[1750];

}

 

//  ※ あまり詳細には書けませんので、必要な部分のみ書きました。

 

配列としては、普通の配列と思うのですが、サイズが大きい(約6KByte)ために、上記のようなエラーとなってしまったのでしょうか。

コンパイラの制限によるものなのか、それともそもそも定義の方法に誤りがあるのかわからず、困っております。

大変お手数をおかけしますが、ご教示何卒よろしくお願いします。

 

 

 

 

Parents
  • わわいです
    変数の定義は static で他ソースからの参照ができないようにしてるのに、
    extern で参照しようとしても見つけれないってことですな。

    まー、なにをどーしたいのかよく考えましょう、ってことで
Reply
  • わわいです
    変数の定義は static で他ソースからの参照ができないようにしてるのに、
    extern で参照しようとしても見つけれないってことですな。

    まー、なにをどーしたいのかよく考えましょう、ってことで
Children
No Data