现在的位置: 首页 > 综合 > 正文

warning: excess elements in array initializer

2012年08月02日 ⁄ 综合 ⁄ 共 527字 ⁄ 字号 评论关闭
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"};

抱歉!评论已关闭.