0

AM335x プロセッサで動作するアプリケーション用に多言語 GUI をセットアップしようとしています。CCS 6.0.1 で開発し、TI コンパイラ 5.1.8 を使用しています。概念は、列挙された辞書配列を取得し、現在の辞書ポインターをそれらのいずれかに切り替えて、意味のある列挙型を使用できるようにすることです。

enum dictionary_indexes {
name,
surname,
phone
}

const char *dictionary_en[60];

dictionary_en[name] = "Your name";
dictionary_en[surname] = "Your surname";
//and so on

残念ながら、CCS はそのようなコードをコンパイルしません。宣言の時点で初期化された配列のみを許可します。

//compiles nicely:
const char * const teststring[] = {
     "String1",
     "String2",
};

//doesn't compile:
const char *teststring2[2];
teststring2[0]="Hello";
teststring2[1]="World";

このようなコードはエラーになります

タイプ「char [6]」の値を使用してタイプ「int [0]」のエンティティを初期化することはできません

すべての配列エントリについても同様です。

ここで何か不足していますか?私は過去にそのようなコードを使用しましたが、うまくいきました。TI のコンパイラの問題ですか、それともプロセッサ固有の問題ですか? 動作するはずのコードは、次のスレッドに基づいています: C で文字列の配列を作成するにはどうすればよいですか?

4

2 に答える 2