一个数组的全部内容复制到另外一个数组
uchar Input_N_Valid_HL[4]="LLLL"; //错误
uchar Input_N_Valid_HL[5]="LLLL"; //正确
case 4:
EEPROM_Read(EEPROM_String_2,8,8);
sprintf(segString,%s,EEPROM_String_2); //方法1:sprintf函数,将某个数组内容打印到另外一个数组(不推荐)
sprintf(segString, "%s----", Input_N_Valid_HL); //方法2:正常
strcpy(segString,EEPROM_String_2); //方法3:有时候不正常 strcpy字符串copy函数(推荐)
strncpy(segString,EEPROM_String_2,4); //方法4:都正常 strncpy指定字符串长度copy函数(推荐)
break;
/*
注意:
蚂蚁科技直接写sprintf(segString,EEPROM_String_2); 第二参数 这样严格来说是不错误的,容易引发未知性错误
*/
字符数组的初始化:
uchar Input_N_Valid_HL[]="LLLL";
uchar Input_N_Valid_HL[]={"LLLL"}
这两个的字符长度都是5,系统自动后面'\0'结束,
如果:
uchar Input_N_Valid_HL[4]="LLLL";
uchar Input_N_Valid_HL[4]={"LLLL"}
也是合法的,但是如果涉及后续处理很可能会出现意想不到的结果。
建议这样:
uchar Input_N_Valid_HL[5]="LLLL";
uchar Input_N_Valid_HL[5]={"LLLL"}
// ------------------------分 隔 符---------------------------
在 C 语言中,全局数组和静态局部数组在未初始化时,数组元素会被自动初始化为 0。
e.g1:
int segBuf[8]={0};
数组定义及初始化说明
e.g2:
char segBuf[8]={0};
作者QQ4577105