不确定如何表达,但我会尝试一下
我有一组像这样定义的数组,它们是C风格的图像。
static uint8_t wsymbol_0043_mostly_cloudy[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
还有一组用于在数组中收集 C 风格图像的名称
String* symbols[] = {
"wsymbol_0001_sunny",
"wsymbol_0002_sunny_intervals",
"wsymbol_0003_white_cloud"};
现在使用 C 我希望能够将这里的符号数组映射到 C 风格图像集?但我不知道如何在 C 中做到这一点。
我需要将数组 wsymbol_0001_sunny[] 传递给方法,而不是名称 wsymbol_0001_sunny?
答案是C中的“map”函数吗?
C 中不支持字典,因此您必须自己实现字典或借用其他人的实现。
由于图像的名称已经有了标识符,因此您可以将原始图像数据放入嵌套数组中,如下所示:
static uint8_t image_data[][] PROGMEM = {
{/* wsymbol_0001_sunny */},
{/* wsymbol_0002_sunny_intervals */},
{/* ... */}
}
char *symbols[] = {
"wsymbol_0001_sunny",
"wsymbol_0002_sunny_intervals",
"wsymbol_0003_white_cloud"
};
然后您可以通过图像名称访问图像,如下所示:
image_data[atoi(symbols[1]+8)];