11. CPU字长与存储器位宽不一致处理
例如:使用共用体来解决这一冲突:
union send_temp{
uint16 words;
uint8 bytes[2];
}send_buff;
eg:send_buff.bytes[0]=a;//此处a 是8位
send_buff.bytes[1]=b;//此处 b 是8位;
此时就将8位字拼成了16位字存储了。
发送时send(send_buff.words)就可以每次发送一个16位的数据了。
12. C语言符号优先级:
1>复合赋值运算符号:
a+=3*5;
等价于a=a+(3*5);
13.一个常见的调试策略是把一些printf函数的调用散布于程序中,确定错误出现的具体位置。但是,这些函数调用的输出结果被写入到缓冲区中,并不立即显示于屏幕上。事实上,如果程序失败,缓冲输去可能不会被实际写入,因此得到的错误位置就是错误的。解决的方法是在每个用于调试的printf函数之后立即调用fflush函数即可得到。
printf(“something or other”);
fflush(stdout);