|
发表于 2018-12-26 20:29:32
|
显示全部楼层
警告可以消除,对于有严重强迫症的嵌入式工程师,绝对是不能容忍任何警告的:
类型及全局变量声明/定义:
- typedef union AnyUnionTag {
- int Int;
- float Float;
- char Char;
- char *pString;
- int *pIntArray;
- void (*pFunction)(void);
- union AnyUnionTag *pAnyUnion;
- } AnyUnionType;
- const AnyUnionType AnyUnionVariable1 = {
- .Int = 1,
- .Float = 1.2f,
- .Char = 'a',
- .pString = "Hello",
- .pIntArray = (int []){1, 2, 3, 4},
- .pFunction = SystemInit,
- .pAnyUnion = &(AnyUnionType){.Int = 2, .Float = 2.4f, .Char = 'b', .pString = "World", .pIntArray = (int []){5, 6, 7, 8}, .pFunction = SystemInit}
- };
- const AnyUnionType AnyUnionVariable2 = {
- .Int = 1,
- .Float = 1.2f,
- .Char = 'a',
- .pString = "Hello",
- .pIntArray = (int []){1, 2, 3, 4},
- .pFunction = SystemInit,
- .pAnyUnion = &(AnyUnionType){.Int = 2, .Float = 2.4f, .Char = 'b', .pString = "World", .pIntArray = (int []){5, 6, 7, 8}, .pFunction = SystemInit}
- };
复制代码
局部变量声明/定义:
- AnyUnionType AnyUnionArray3[] = {
- ((AnyUnionType){.Int = 1},
- (AnyUnionType){.Float = 1.2f},
- (AnyUnionType){.Char = 'a'},
- (AnyUnionType){.pString = "Hello"},
- (AnyUnionType){.pIntArray = (int []){1, 2, 3, 4}},
- (AnyUnionType){.pFunction = SystemInit},
- (AnyUnionType){.pAnyUnion = (AnyUnionType *)AnyUnionArray3}),
-
- ((AnyUnionType){.Int = 2},
- // (AnyUnionType){.Float = 2.4f},
- (AnyUnionType){.Char = 'b'},
- (AnyUnionType){.pString = "World"},
- (AnyUnionType){.pIntArray = (int []){5, 6, 7, 8}},
- (AnyUnionType){.pFunction = SystemInit},
- (AnyUnionType){.pAnyUnion = (AnyUnionType *)AnyUnionArray3},
- (AnyUnionType){.Float = 2.4f}),
- };
- //-------------------------------------------------------------
- AnyUnionType AnyUnionArray4[] = {
- ((AnyUnionType){.Int = 1},
- (AnyUnionType){.Float = 1.2f},
- (AnyUnionType){.Char = 'a'},
- (AnyUnionType){.pString = "Hello"},
- (AnyUnionType){.pIntArray = (int []){1, 2, 3, 4}},
- (AnyUnionType){.pFunction = SystemInit},
- (AnyUnionType){.pAnyUnion = (AnyUnionType []){(AnyUnionType){.Int = 2},
- (AnyUnionType){.Float = 2.4f},
- (AnyUnionType){.Char = 'b'},
- (AnyUnionType){.pString = "World"},
- (AnyUnionType){.pIntArray = (int []){5, 6, 7, 8}},
- (AnyUnionType){.pFunction = SystemInit},
- (AnyUnionType){.pAnyUnion = (AnyUnionType *)AnyUnionArray4}}}),
-
- ((AnyUnionType){.Int = 3},
- (AnyUnionType){.Float = 3.6f},
- (AnyUnionType){.Char = 'c'},
- (AnyUnionType){.pString = "Hello"},
- (AnyUnionType){.pIntArray = (int []){9, 10, 11, 12}},
- (AnyUnionType){.pFunction = SystemInit},
- (AnyUnionType){.pAnyUnion = (AnyUnionType []){(AnyUnionType){.Int = 4},
- (AnyUnionType){.Float = 4.8f},
- (AnyUnionType){.Char = 'd'},
- (AnyUnionType){.pString = "World"},
- (AnyUnionType){.pIntArray = (int []){13, 14, 15, 16}},
- (AnyUnionType){.pFunction = SystemInit},
- (AnyUnionType){.pAnyUnion = (AnyUnionType *)AnyUnionArray4}}}),
- };
复制代码
编译设置:
Union初始化:
Union成员赋值:
Union成员赋值:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|