定义的同时初始化
#include <stdio.h>
typedef struct{
unsigned short u16TestData[16];
unsigned char u8TestData;
unsigned long u32TestData;
unsigned char u8TestData_Buffer[131];
}TestData_type;
const TestData_type TestData_type_Const = {
.u16TestData= {0x011F, 0x1f22, 0x2342, 0xF43, 0xF4, 0x5F, 0x56F, 0x7F, 0xF48, 0xF3F, 0xF62, 0xF74, 0x7F8, 0xF98, 0x90F},
.u8TestData= 0xFF,
.u32TestData= 0x00000001u,
.u8TestData_Buffer= {0x00}
};
int main()
{
/* Write C code in this online editor and run it. */
printf("Hello, World! \n");
for(unsigned char i=0;i<16;i++ )
printf("TestData_type_Const.u16TestData[%d]= %x\n",i,TestData_type_Const.u16TestData[i]);
printf("TestData_type_Const.u8TestData = %x\n" ,TestData_type_Const.u8TestData);
printf("TestData_type_Const.u32TestData = %x\n" ,TestData_type_Const.u32TestData);
for(unsigned char x=0;x<131;x++ )
printf("TestData_type_Const.u8TestData_Buffer[%d]=%x\n",x,TestData_type_Const.u8TestData_Buffer[x]);
return 0;
}
验证结果:
注意事项:
const TestData_type TestData_type_Const = {
.u16TestData= {0x011F, 0x1f22, 0x2342, 0xF43, 0xF4, 0x5F, 0x56F, 0x7F, 0xF48, 0xF3F, 0xF62, 0xF74, 0x7F8, 0xF98, 0x90F},
.u8TestData= 0xFF,
.u32TestData= 0x00000001u,
.u8TestData_Buffer= {0x00}
};
1、每个元素后边需要有逗号“,”分隔
2、最后一个元素不用有逗号“,”
3、buffer= {0x00},只有0x00会赋值所有buffer为0
buffer= {0x01}不会将所有buffer置1,只会buffer[0]=0x01,buffer[1]=随机或默认0