【发布时间】:2013-05-21 12:54:57
【问题描述】:
我想在一个联合中组合一个结构和一个字节数组。编译器是gcc。
以下是否被认为适用于 32 位嵌入式控制器 (AVR)? 我需要担心字节对齐吗?
#include <stdint.h>
typedef int8_t S8;
typedef union {
struct {
S8 a;
S8 b;
S8 c;
S8 d;
S8 e;
};
S8 array[5];
} s_t;
初始化:
s_t s = {.array = {0, 0, 0, 0, 0}};
访问:
s.a = 50;
s.c = 42;
【问题讨论】:
-
编译器可能一直在处理该自动。字节顺序很重要。
-
你应该使用
stdint.h数据类型uint8_t而不是char。 -
@claptrap,谢谢。我已经编辑了问题。
标签: c struct unions memory-alignment avr-gcc