warning: excess elements in array initializer
警告:数组初始值设定项中有多余元素 (定义的数组长度比赋值的个数小)
/* 全局处理字符模式,默认不改变字符 */ static char *g_echo_flag_show[ECHO_CHG_MAX] = {"min", "none", "no chg", "upper", "lower", "max"}; /* 转换模式 */ typedef enum { ECHO_CHG_MIN, /* 无效值 */ ECHO_CHG_NONE, /* 没设置转换模式 */ ECHO_CHG_NOCHG, /* 不转换转换,直接return */ ECHO_CHG_UPPER, /* 转换为大写字母 */ ECHO_CHG_LOWER, /* 转换为小写字母 */ ECHO_CHG_MAX /* 无效值 */ } echo_chg_type;
ECHO_CHG_MAX作为枚举最后一个,值为5,所以数组长度是g_echo_flag_show[5],但是赋值的有6个字符串,所以会报警告
改为
static char *g_echo_flag_show[ECHO_CHG_MAX + 1] = {"min", "none", "no chg", "upper", "lower", "max"};