我正在尝试为在 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 中创建字符串数组?