警告warning: missing braces around initializer [-Wmissing-braces]的解决办法

目录

一、产生原因

‌1、数组初始化‌

2、结构体初始化‌

二、解决方法

‌1、确保每个元素都被大括号包围‌

‌2、完整的初始化列表‌

三、案例

1、必要的定义

2、引起警告的错误代码书写

3、解除警告的正确代码书写


        warning: missing braces around initializer [-Wmissing-braces]‌ 警告通常出现在数组或结构体初始化时,编译器检测到初始化列表没有用大括号明确区分每个元素的初始化值。这种警告意味着初始化列表中的元素没有被正确地用大括号包围,导致编译器无法准确解析每个元素的初始值。例如:

一、产生原因

‌1、数组初始化

        在初始化数组时,如果直接使用一系列数值而没有用大括号将每个元素的值分开,就会触发这个警告。例如:

//错误的代码书写
const unint8 tansition_table[8][4]={0,1,0,1,
									5,2,5,1,
									3,4,5,6,
									7,8,9,0,
									6,7,8,9,
									2,3,4,5,
									1,3,1,4,
									5,2,0,1};
//正确的代码书写
const unint8 tansition_table[8][4]={{0,1,0,1},
									{5,2,5,1},
									{3,4,5,6},
									{7,8,9,0},
									{6,7,8,9},
									{2,3,4,5},
									{1,3,1,4},
									{5,2,0,1}
									};

2、结构体初始化

        在初始化结构体时,如果初始化列表中的值没有用大括号分开,也会导致这个警告。例如:

//错误的代码书写
typedef struct {
    int x;
    int y;
} Point;

int main() {
    Point points[3] = {0, 0, 0, 1, 1, 0}; 
    return 0;
}

//正确的代码书写
typedef struct {
    int x;
    int y;
} Point;

int main() {
    Point points[3] = {{0, 0}, {1, 0}}; 
    return 0;
}

二、解决方法

‌1、确保每个元素都被大括号包围‌

        在初始化数组或结构体时,确保每个元素的值都被大括号包围。例如:

int a‌:ml-citation{ref="1" data="citationList"} = {{1}, {2}, {3}};
struct Point point = {{1,0}, {2,2}};
void (*PanelMenuFun[9][7])(STR_PANELOPERRATION *p) = { 
/*0 RDY RDY			*/	{ KeyModeFunZero, 	NullFuntion, 	NullFuntion, 	NullFuntion, 	KeyLongShiftFunZero, NullFuntion, 	NullFuntion 	},
/*1 H00 H0D			*/	{ KeyModeFun1st, 	KeyUpFun1st,	KeyDownFun1st, 	KeyShiftFun1st, KeyShiftFun1st, 	 KeySetFun1st, 	KeySetFun1st 	},
/*2 H00.00 H0D.11 	*/	{ KeyModeFun2nd, 	KeyUpFun2nd, 	KeyDownFun2nd, 	KeyShiftFun2nd, KeyShiftFun2nd, 	 KeySetFun2nd, 	KeySetFun2nd 	},
/*3 14000 0200		*/	{ KeyModeFun3rd, 	KeyUpFun3rd, 	KeyDownFun3rd, 	KeyShiftFun3rd, KeyLongShiftFun3rd,  KeySetFun3rd,  KeySetFun3rd 	},
/*4                	*/	{ KeyModeFun4th, 	KeyUpFun4th, 	KeyDownFun4th, 	KeyShiftFun4th, KeyShiftFun4th, 	 KeySetFun4th, 	KeySetFun4th 	},
/*5 JOG    			*/	{ KeyModeFun5th, 	NullFuntion, 	NullFuntion, 	NullFuntion, 	NullFuntion, 		 NullFuntion, 	NullFuntion 	},
/*6                	*/	{ KeyModeFun6th, 	NullFuntion, 	NullFuntion, 	NullFuntion, 	NullFuntion, 		 NullFuntion, 	KeyLongSetFun6th},
/*7                	*/	{ KeyModeFun7th, 	NullFuntion, 	NullFuntion, 	NullFuntion, 	NullFuntion, 		 NullFuntion, 	NullFuntion 	},
/*8                	*/	{ NullFuntion, 		NullFuntion, 	NullFuntion, 	NullFuntion, 	NullFuntion, 		 NullFuntion, 	NullFuntion 	}
};// 

‌2、完整的初始化列表

        如果数组或结构体的所有元素都需要初始化,确保每个元素都被大括号包围。如果部分元素不需要初始化,可以使用默认值填充剩余位置。例如:

//正确的代码书写
typedef struct {
    int x;
    int y;
} Point points[3] = {{0, 0}, {1, 0}}; 

三、案例

        简单的结构体、结构体数组、数组的定义,容易一眼看穿错误在哪里。复杂一点的定义,不容易看穿警告的错误出现在哪里,或者模糊地知道错误的原因,但是做不到一步到位解除警告。

        本实例以摘录一段复杂的结构体数组为例,旨在说明出现题目所示的警告时,如何操作才能解除警告。

1、必要的定义

         仅列举与本文相关的必要的定义

/* Includes ------------------------------------------------------------------*/
/* 引用头文件 */

/* Private_Constants ---------------------------------------------------------*/
/* 宏定义 常数类*/

//下限表示显示类别 上限表示显示需要的页数
typedef struct{
    Uint16 Value;
    Uint16 LowerLmt;                 		//下限
    Uint16 UpperLmt;                 		//上限
    volatile UNI_FUNCODE_ATTRIBUTE Attrib;  //功能码属性
}STR_FUNCODE_DEFAULT;

//功能码属性表长度
#define	FUNCODEDFTLEN	(H3200DFTINDEX + H32LEN)

//每组功能码长度
#define H0BLEN	100
#define H0DLEN	25
#define H2FLEN	70
#define H30LEN	10
#define H31LEN	30
#define H32LEN	24

//功能码属性表中每组首个功能码序号
#define      H0000DFTINDEX       0
#define      H0100DFTINDEX       (H0000DFTINDEX + H00LEN)
#define      H0200DFTINDEX       (H0100DFTINDEX + H01LEN)
#define      H0300DFTINDEX       (H0200DFTINDEX + H02LEN)
#define      H0400DFTINDEX       (H0300DFTINDEX + H03LEN)
#define      H0500DFTINDEX       (H0400DFTINDEX + H04LEN)
#define      H0600DFTINDEX       (H0500DFTINDEX + H05LEN)
#define      H0700DFTINDEX       (H0600DFTINDEX + H06LEN)
#define      H0800DFTINDEX       (H0700DFTINDEX + H07LEN)
#define      H0900DFTINDEX       (H0800DFTINDEX + H08LEN)
#define      H0A00DFTINDEX       (H0900DFTINDEX + H09LEN)
//H0B组在辅助功能码中定义
#define      H0C00DFTINDEX       (H0A00DFTINDEX + H0ALEN)
//H0D组在辅助功能码中定义
#define      H0E00DFTINDEX       (H0C00DFTINDEX + H0CLEN)
#define      H0F00DFTINDEX       (H0E00DFTINDEX + H0ELEN)
#define      H1000DFTINDEX       (H0F00DFTINDEX + H0FLEN)
#define      H1100DFTINDEX       (H1000DFTINDEX + H10LEN)
#define      H1200DFTINDEX       (H1100DFTINDEX + H11LEN)
#define      H1300DFTINDEX       (H1200DFTINDEX + H12LEN)
#define      H1400DFTINDEX       (H1300DFTINDEX + H13LEN)
#define      H1500DFTINDEX       (H1400DFTINDEX + H14LEN)
#define      H1600DFTINDEX       (H1500DFTINDEX + H15LEN)
#define      H1700DFTINDEX       (H1600DFTINDEX + H16LEN)
#define      H1800DFTINDEX       (H1700DFTINDEX + H17LEN)
#define      H1900DFTINDEX       (H1800DFTINDEX + H18LEN)
#define      H1A00DFTINDEX       (H1900DFTINDEX + H19LEN)
#define      H1B00DFTINDEX       (H1A00DFTINDEX + H1ALEN)
#define      H1C00DFTINDEX       (H1B00DFTINDEX + H1BLEN)
#define      H1D00DFTINDEX       (H1C00DFTINDEX + H1CLEN)

//辅助功能码
#define      H0B00DFTINDEX       (H1D00DFTINDEX + H1DLEN)
#define      H0D00DFTINDEX       (H0B00DFTINDEX + H0BLEN)
#define      H2F00DFTINDEX       (H0D00DFTINDEX + H0DLEN)
#define      H3000DFTINDEX       (H2F00DFTINDEX + H2FLEN)
#define      H3100DFTINDEX       (H3000DFTINDEX + H30LEN)
#define      H3200DFTINDEX       (H3100DFTINDEX + H31LEN)

typedef union
{
    volatile Uint32	all;
    volatile STR_FUNCODE_ATTRIBUTE_BIT	bit;
}UNI_FUNCODE_ATTRIBUTE;

/* 结构体变量类型定义 枚举变量类型定义 */
typedef struct{            		//bits 	description
    Uint32  Writable:2;    		//0-1  	00:RW;01:停机设定  02:显示  03:保留参数
    Uint32  rsvd:1;        		//2    	保留
    Uint32  UpperLmt:1;    		//3    	0:直接由上限限制 1:参数由上限相关功能码限制
    Uint32  LowerLmt:1;    		//4    	0:直接由下限限制 1:参数由下限相关功能码限制
    Uint32  DataBits:1;    		//5    	0:16位   1:32位
    Uint32  DispBits:4;    		//6-9 	5个数码管要显示的位数。0:显示0位,1:显示1位...5:显示5位
    Uint32  DotBit:3;      		//10-12 0:无小数位  1:1位小数位...4:4位小数位
    Uint32  Sign:1;        		//13    0:无符号   1:有符号
    Uint32  Active:1;      		//14   	0:立即生效   1:再次上电生效
    Uint32  DataType:2;    		//15-16	0:非数字数据  1:十进制数据  2:十六进制数据
    Uint32  DataIndex:1;   		//17    0:32位数据低十六位或16位数据  1:32位数据高十六位
    Uint32  OEMProtect:1;  		//18    0:不用保护  1:厂家保护
    Uint32  PanelAttrib:2;		//19-20	0: (PANEL_UNCHANGE)面板显示但不可更改											
    Uint32  CommSaveEn:1;  		//21  	0: 写时存Eeprom 1:写时不存Eeprom
    Uint32  CommReadEn:1;  		//22 	0: 读时返回真实值 1:读时返回0
    Uint32  Rsvd:9;        		//23-31	Rsvd10
}STR_FUNCODE_ATTRIBUTE_BIT;

2、引起警告的错误代码书写

        仅列举与本文相关的,错误书写的代码:

        本例定义了一个结构体数组FunCodeDeft[],共有60个成员。程序员按如下穷举所有成员的方法初始化该结构体数组。通过STM32CubeIDE编译后出现了本文讨论的警告。

//功能码属性表(包含辅助功能码)
const STR_FUNCODE_DEFAULT   FunCodeDeft[FUNCODEDFTLEN] = {

/*默认属性:ANY_WRT| YNUM_TYP| DRCT_LMTL| DRCT_LMTH| ONE_WORD| ZERO_DOT| UN_SIGN| INST_ACT| LOW_WORD|UN_OEMPROTECT*/
/*注释      默认值  下限    	上限   	        属性*/
#if NONSTANDARD_PROJECT == IS600P
/*H00_00*/  6,       0,		65535, 	POSD_WRT|   DISP_5| NEXT_ACT,
#else
/*H00_00*/  14000,   0,     65535, 	POSD_WRT|   DISP_5| NEXT_ACT,
#endif
/*H00_01*/  0,       0,     65535, 	RSVD_WRT, 
/*H00_02*/  0,       0,     65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT,
/*H00_03*/  0,       0,     65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT| HIGH_WORD, 
/*H00_04*/  0,       0,     65535, 	DISP_WRT|   DISP_5|  ONE_DOT,
/*H00_05*/  0,       0,     65535, 	DISP_WRT|   DISP_5,
/*H00_06*/  0,       0,     65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT,
/*H00_07*/  0,       0,     65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT| HIGH_WORD, 
/*H00_08*/  0,       0,     65535,	POSD_WRT|   DISP_5| NEXT_ACT,
/*H00_09*/  0,       0,     65535, 	POSD_WRT|   DISP_1| NEXT_ACT| OEMPROTECT,


#if NONSTANDARD_PROJECT == LINEARMOT       //功率单位为W
/*H00_10*/  39,      0,    	65535, 	POSD_WRT| DISP_5|  NEXT_ACT|OEMPROTECT,
/*H00_11*/  230,     0,    	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_12*/  375,     0,    	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_13*/  690,     0,    	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_14*/  1900,    0,    	65535, 	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT,
/*H00_15*/  1900,    0,    	65535, 	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT,
/*H00_16*/  290,     0,    	65535, 	POSD_WRT| DISP_5| NEXT_ACT| OEMPROTECT,
/*H00_17*/  1,       0,   	65535,  POSD_WRT| DISP_3|  NEXT_ACT|OEMPROTECT,
/*H00_18*/ 	4000,    0,    	65535, 	POSD_WRT| DISP_5| THREE_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_19*/  100,     0,   	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
#else
/*H00_10*/  75,      0,   	65535,	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_11*/  470,     0,   	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_12*/  239,     0,    	65535,  POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_13*/  716,     0,    	65535,	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_14*/  3000,    0,   	65535, 	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT,
/*H00_15*/  6000,    0, 	65535,	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT,
/*H00_16*/  130,     0,    	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_17*/  4,       0,   	65535, 	POSD_WRT| DISP_3|  NEXT_ACT|OEMPROTECT,
/*H00_18*/  500,     0,   	65535, 	POSD_WRT| DISP_5| THREE_DOT|  NEXT_ACT|OEMPROTECT,
/*H00_19*/  327,     0,   	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT,
#endif


#if NONSTANDARD_PROJECT == LINEARMOT
/*H00_20*/  100,     0,  	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
/*H00_21*/  6700,    0,    	65535, 	POSD_WRT| DISP_5|THREE_DOT| NEXT_ACT|OEMPROTECT,
/*H00_22*/  1650,    0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
/*H00_23*/  25,      0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
/*H00_24*/  600,     0,    	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
#else
/*H00_20*/  387,     0,   	65535,	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
/*H00_21*/  3330,    0,   	65535,	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
/*H00_22*/  51,      0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,     
/*H00_23*/  654,     0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
/*H00_24*/  24,      0,    	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT,
#endif
/*H00_25*/  0,       0,   	65535, 	RSVD_WRT, 
/*H00_26*/  0,       0,   	65535, 	RSVD_WRT, 
/*H00_27*/  0,       0,   	65535, 	RSVD_WRT, 
/*H00_28*/ 	0,		 0,		65535,	POSD_WRT|DISP_11| TWO_WORD| NEXT_ACT| OEMPROTECT,
/*H00_29*/  0,       0,   	65535,	POSD_WRT|DISP_11| TWO_WORD| NEXT_ACT| OEMPROTECT | HIGH_WORD,


#if NONSTANDARD_PROJECT == IS600P
/*H00_30*/  0x01,    0,    	65535, 	POSD_WRT|HNUM_TYP|  DISP_3| NEXT_ACT|OEMPROTECT,
#elif NONSTANDARD_PROJECT == LINEARMOT
/*H00_30*/  0x30,    0,     65535, 	POSD_WRT|HNUM_TYP|  DISP_3| NEXT_ACT|OEMPROTECT,
#els
/*H00_30*/  0x13,    0,    	65535,  POSD_WRT|HNUM_TYP|  DISP_3| NEXT_ACT|OEMPROTECT,
#endif

#if NONSTANDARD_PROJECT == IS600P
/*H00_31*/  2500,    0,    	65535, 	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| OEMPROTECT,
/*H00_32*/  0,       0,   	65535, 	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| HIGH_WORD| OEMPROTECT,
#elif NONSTANDARD_PROJECT == LINEARMOT
/*H00_31*/  16,      0,    	65535, 	POSD_WRT|  DISP_4|NEXT_ACT| OEMPROTECT,
/*H00_32*/  100,     0,    	65535, 	POSD_WRT|  DISP_4|NEXT_ACT| TWO_DOT | OEMPROTECT,
#else
/*H00_31*/  0,       0,    	65535,	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| OEMPROTECT,
/*H00_32*/  0x10,    0,   	65535, 	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| HIGH_WORD| OEMPROTECT,
#endif

/*H00_33*/  1800,    0,  	3600, 	POSD_WRT|  DISP_4| ONE_DOT| NEXT_ACT| OEMPROTECT,
/*H00_34*/  1800,    0, 	3600,  	POSD_WRT|  DISP_4| ONE_DOT| NEXT_ACT| OEMPROTECT,
/*H00_35*/  0,       0,   	65535, 	POSD_WRT|  DISP_5,  
/*H00_36*/	2,		 0,		65535,	POSD_WRT|  DISP_5| NEXT_ACT,
/*H00_37*/  0,       0,   	65535, 	POSD_WRT|HNUM_TYP| DISP_2, 
/*H00_38*/  0,       0,    	65535, 	RSVD_WRT, 
/*H00_39*/  0,       0,    	65535, 	RSVD_WRT, 
/*H00_40*/  0,       0,    	65535, 	RSVD_WRT,
/*H00_41*/  0,       0, 	65535,	RSVD_WRT,
/*H00_42*/  0,       0,    	65535, 	RSVD_WRT,
/*H00_43*/  0,       0, 	65535, 	RSVD_WRT,
/*H00_44*/  0,       0,   	65535,	RSVD_WRT,
/*H00_45*/  0,       0,    	65535,	RSVD_WRT,
/*H00_46*/  1,       0,    	65535,	RSVD_WRT,
/*H00_47*/  0,       0,   	65535,	RSVD_WRT,
/*H00_48*/  0,       0,    	65535, 	RSVD_WRT,
/*H00_49*/  0,       0,  	65535,	RSVD_WRT,
/*H00_50*/  0,       0,   	65535, 	RSVD_WRT,
/*H00_51*/  0,       0,   	65535,  RSVD_WRT,
/*H00_52*/  0,       0,  	65535, 	RSVD_WRT,
/*H00_53*/  0,       0,    	65535, 	RSVD_WRT,
/*H00_54*/  0,       0,    	65535,	RSVD_WRT,
/*H00_55*/  0,       0,    	65535, 	RSVD_WRT,
/*H00_56*/  0,       0,   	65535, 	RSVD_WRT,
/*H00_57*/  0,       0,    	65535,	RSVD_WRT,
/*H00_58*/  0,       0,    	65535, 	RSVD_WRT,
/*H00_59*/  0x0A5C,  0,   	65535, 	RSVD_WRT,

};

3、解除警告的正确代码书写

         结构体数组FunCodeDeft[]的数据类型结构体STR_FUNCODE_DEFAULT,其中,结构体STR_FUNCODE_DEFAULT由4个成员组成,这4个成员包含3个Uint16整型数据和1个联合体数据。FunCodeDeft[]是一个复杂的结构体数组。

        结构体数组FunCodeDeft[]共包含60个实例,可以采用穷举的方法进行初始化,但每个实例必须用{}括起来,{}之间用,分隔,{}内各成员之间也有,分隔。

        本例中,每个实例中的第4个成员是联合体数据类型,最好用{}括起来,在本例中可以省略{}。不影响编译器的结果。在不同的IDE版本下结果不一样,如果显示警告,把这个联合体成员括起来就没是了。

//功能码属性表(包含辅助功能码)
const STR_FUNCODE_DEFAULT   FunCodeDeft[FUNCODEDFTLEN] = {

/*默认属性:ANY_WRT| YNUM_TYP| DRCT_LMTL| DRCT_LMTH| ONE_WORD| ZERO_DOT| UN_SIGN| INST_ACT| LOW_WORD|UN_OEMPROTECT*/
/*注释      默认值  下限    	上限   	            属性*/
#if NONSTANDARD_PROJECT == IS600P
/*H00_00*/  {6,       0,	65535, 	POSD_WRT|   DISP_5| NEXT_ACT},
#else
/*H00_00*/  {14000,   0,    65535, 	POSD_WRT|   DISP_5| NEXT_ACT},
#endif
/*H00_01*/  {0,       0,    65535, 	RSVD_WRT}, 
/*H00_02*/  {0,       0,    65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT},
/*H00_03*/  {0,       0,    65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT| HIGH_WORD}, 
/*H00_04*/  {0,       0,    65535, 	DISP_WRT|   DISP_5|  ONE_DOT},
/*H00_05*/  {0,       0,    65535, 	DISP_WRT|   DISP_5},
/*H00_06*/  {0,       0,    65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT},
/*H00_07*/  {0,       0,    65535, 	DISP_WRT| HNUM_TYP|   DISP_5| TWO_WORD| TWO_DOT| HIGH_WORD}, 
/*H00_08*/  {0,       0,    65535,	POSD_WRT|   DISP_5| NEXT_ACT},
/*H00_09*/  {0,       0,    65535, 	POSD_WRT|   DISP_1| NEXT_ACT| OEMPROTECT},


#if NONSTANDARD_PROJECT == LINEARMOT       //功率单位为W
/*H00_10*/  {39,      0,    65535, 	POSD_WRT| DISP_5|  NEXT_ACT|OEMPROTECT},
/*H00_11*/  {230,     0,    65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_12*/  {375,     0,    65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_13*/  {690,     0,    65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_14*/  {1900,    0,    65535, 	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT},
/*H00_15*/  {1900,    0,    65535, 	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT},
/*H00_16*/  {290,     0,    65535, 	POSD_WRT| DISP_5|  NEXT_ACT| OEMPROTECT},
/*H00_17*/  {1,       0,   	65535,  POSD_WRT| DISP_3|  NEXT_ACT|OEMPROTECT},
/*H00_18*/ 	{4000,    0,    65535, 	POSD_WRT| DISP_5| THREE_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_19*/  {100,     0,   	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
#else
/*H00_10*/  {75,      0,   	65535,	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_11*/  {470,     0,   	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_12*/  {239,     0,    65535,  POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_13*/  {716,     0,    65535,	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_14*/  {3000,    0,   	65535, 	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT},
/*H00_15*/  {6000,    0, 	65535,	POSD_WRT| DISP_4|  NEXT_ACT|OEMPROTECT},
/*H00_16*/  {130,     0,    65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_17*/  {4,       0,   	65535, 	POSD_WRT| DISP_3|  NEXT_ACT|OEMPROTECT},
/*H00_18*/  {500,     0,   	65535, 	POSD_WRT| DISP_5| THREE_DOT|  NEXT_ACT|OEMPROTECT},
/*H00_19*/  {327,     0,   	65535, 	POSD_WRT| DISP_5|   TWO_DOT|  NEXT_ACT|OEMPROTECT},
#endif


#if NONSTANDARD_PROJECT == LINEARMOT
/*H00_20*/  {100,     0,  	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
/*H00_21*/  {6700,    0,    65535, 	POSD_WRT| DISP_5|THREE_DOT| NEXT_ACT|OEMPROTECT},
/*H00_22*/  {1650,    0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
/*H00_23*/  {25,      0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
/*H00_24*/  {600,     0,    65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
#else
/*H00_20*/  {387,     0,   	65535,	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
/*H00_21*/  {3330,    0,   	65535,	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
/*H00_22*/  {51,      0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},     
/*H00_23*/  {654,     0,   	65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
/*H00_24*/  {24,      0,    65535, 	POSD_WRT| DISP_5|  TWO_DOT| NEXT_ACT|OEMPROTECT},
#endif
/*H00_25*/  {0,       0,   	65535, 	RSVD_WRT}, 
/*H00_26*/  {0,       0,   	65535, 	RSVD_WRT}, 
/*H00_27*/  {0,       0,   	65535, 	RSVD_WRT}, 
/*H00_28*/ 	{0,		  0,	65535,	POSD_WRT|DISP_11| TWO_WORD| NEXT_ACT| OEMPROTECT},
/*H00_29*/  {0,       0,   	65535,	POSD_WRT|DISP_11| TWO_WORD| NEXT_ACT| OEMPROTECT | HIGH_WORD},


#if NONSTANDARD_PROJECT == IS600P
/*H00_30*/  {0x01,    0,    65535, 	POSD_WRT|HNUM_TYP|  DISP_3| NEXT_ACT|OEMPROTECT},
#elif NONSTANDARD_PROJECT == LINEARMOT
/*H00_30*/  {0x30,    0,    65535, 	POSD_WRT|HNUM_TYP|  DISP_3| NEXT_ACT|OEMPROTECT},
#els
/*H00_30*/  {0x13,    0,    65535,  POSD_WRT|HNUM_TYP|  DISP_3| NEXT_ACT|OEMPROTECT},
#endif

#if NONSTANDARD_PROJECT == IS600P
/*H00_31*/  {2500,    0,    65535, 	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| OEMPROTECT},
/*H00_32*/  {0,       0,   	65535, 	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| HIGH_WORD| OEMPROTECT},
#elif NONSTANDARD_PROJECT == LINEARMOT
/*H00_31*/  {16,      0,    65535, 	POSD_WRT|  DISP_4|NEXT_ACT| OEMPROTECT},
/*H00_32*/  {100,     0,    65535, 	POSD_WRT|  DISP_4|NEXT_ACT| TWO_DOT | OEMPROTECT},
#else
/*H00_31*/  {0,       0,    65535,	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| OEMPROTECT},
/*H00_32*/  {0x10,    0,   	65535, 	POSD_WRT|TWO_WORD| DISP_10| NEXT_ACT| HIGH_WORD| OEMPROTECT},
#endif

/*H00_33*/  {1800,    0,  	3600, 	POSD_WRT|  DISP_4| ONE_DOT| NEXT_ACT| OEMPROTECT},
/*H00_34*/  {1800,    0, 	3600,  	POSD_WRT|  DISP_4| ONE_DOT| NEXT_ACT| OEMPROTECT},
/*H00_35*/  {0,       0,   	65535, 	POSD_WRT|  DISP_5},  
/*H00_36*/	{2,		  0,	65535,	POSD_WRT|  DISP_5| NEXT_ACT},
/*H00_37*/  {0,       0,   	65535, 	POSD_WRT|HNUM_TYP| DISP_2}, 
/*H00_38*/  {0,       0,    65535, 	RSVD_WRT}, 
/*H00_39*/  {0,       0,    65535, 	RSVD_WRT}, 
/*H00_40*/  {0,       0,    65535, 	RSVD_WRT},
/*H00_41*/  {0,       0, 	65535,	RSVD_WRT},
/*H00_42*/  {0,       0,    65535, 	RSVD_WRT},
/*H00_43*/  {0,       0, 	65535, 	RSVD_WRT},
/*H00_44*/  {0,       0,   	65535,	RSVD_WRT},
/*H00_45*/  {0,       0,    65535,	RSVD_WRT},
/*H00_46*/  {1,       0,    65535,	RSVD_WRT},
/*H00_47*/  {0,       0,   	65535,	RSVD_WRT},
/*H00_48*/  {0,       0,    65535, 	RSVD_WRT},
/*H00_49*/  {0,       0,  	65535,	RSVD_WRT},
/*H00_50*/  {0,       0,   	65535, 	RSVD_WRT},
/*H00_51*/  {0,       0,   	65535,  RSVD_WRT},
/*H00_52*/  {0,       0,  	65535, 	RSVD_WRT},
/*H00_53*/  {0,       0,    65535, 	RSVD_WRT},
/*H00_54*/  {0,       0,    65535,	RSVD_WRT},
/*H00_55*/  {0,       0,    65535, 	RSVD_WRT},
/*H00_56*/  {0,       0,   	65535, 	RSVD_WRT},
/*H00_57*/  {0,       0,    65535,	RSVD_WRT},
/*H00_58*/  {0,       0,    65535, 	RSVD_WRT},
/*H00_59*/  {0x0A5C,  0,   	65535, 	RSVD_WRT},

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wenchm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值