在头文件中,我声明了一个具有数组和数组长度的结构,如下所示:
typedef struct {
unsigned char *frame;
int length;
} ResponseFrame ;
extern ResponseFrame rf;
在我的主文件中,我有以下内容:
ResponseFrame rf;
int main(void)
{
while(1) {
if (receive() == 0x01) {
uint8_t val;
rf.length = 6;
for(int i = 0; i < 6; i++){
val = receive();
rf.frame[i] = val;
transmit(val); // LINE 1
}
for (uint8_t i=0; i<rf.length; i++){
transmit(rf.frame[i]); // LINE 2
}
}
}
}
我收到的数组是
{ 00 00 FF 00 FF 00 }
初始传输用这个接收到的数据做出响应[见第 1 行]。但是,当我尝试使用全局变量 rf.frame [参见第 2 行] 进行传输时,第一个值与此不同----
{ 13 00 FF 00 FF 00 }
为什么第一个初始值这样不同?