目的:要将多个字符串保存在Flash中,同时将这些字符串的指针数组也保存在Flash中。目前试过能行得通的写法是:
typedef const char * GUI_ConstString;
const char Null_Str[] = "";
const GUI_ConstString _lvTable_00[6] = {Null_Str,Null_Str,Null_Str,Null_Str,Null_Str,Null_Str};
这种方法比较灵活,且节省空间,每个字符串的长度可以不一样。
下面这种写法,行不通,字符串是保存在Flash中了,但指针数组保存在Ram中。
const char * _lvTable_00[6] ={Null_Str , Null_Str , Null_Str , Null_Str , Null_Str , Null_Str };
还有一种写法,和第一种写法看起来类似,但编译器警告,说const 重复使用,且结果也不是我们想要的。
const const char * _lvTable_00[6] ={Null_Str , Null_Str , Null_Str , Null_Str , Null_Str , Null_Str };
还有一种写法,虽然能达到目的,但不是很省空间了,要求每个字符串长度要一样,就是二维数组方式。
const char _lvTable_00[6][1] = {"","","","","",""};
这些代码在Keil MDK 4.12,Stm32上验证的,不知道还有没有别的写法。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>