今天继续写密钥生成部分,值得说的是,发现了union 联合类型在GCC下的问题。
union EXINT{
unsigned char c[8];
//unsigned short int s_i[4];
unsigned long int i[2];
};
这个时候 检查 exint 结构 得到 Start to check 0022FF40 and byte 8 。
然后调整为
union EXINT{
unsigned char c[8];
unsigned short int s_i[5];
unsigned long int i[2];
};
注意这是还需要clean一下,重新编译,检查 exint结构得到 Start to check 0022FF30 and byte 12 。
明明只是增加了一个 short int 呢,而 sizeof(short int) = 2 ,这样一来我就不明白编译器在干什么了。。