小程序

void u16_outlento_u8(unsigned char *d,unsigned char len,unsigned int *s)
{
unsigned char i=0,j=0;
for(;i<len||j<len;i++,j++)
{
*d++=(unsigned char)(*s/0x100);
//printf("0x%x ",*d);
if(++j<len)
{
*d++=(unsigned char)(*s%0x100);
//printf("0x%x ",*d);
}
}
}

或者通过定义指针通过强制类型转换

void main(void)
{
unsigned char i;
unsigned int b[4]={0x1234,0x5678,0x9abc,0xdef0};
unsigned char *s=(void *)0;
s=(unsigned char *)&b[0];
for(i=0;i<8;i++)
{
printf("0x%x ",*s++);

}
getch();
}

2再认识for结构:先初值->执行循环体->变量变化->变量判断,满足?是继续循环体:结束循环体。当变量变化放在循环体内也易一样:只有执行完循环体后才进行判断,并非像操作系统监控那样检测到不满足立即退出,也就是说期间变量变化后后面至循环体结束中间的代码还是会执行的。可实际验证

#define num 4

void main(void)
{
unsigned char i;

for(i=0;i<num;)
{
printf("i=%d ",i);
if((++i)>=4)
printf("it is ok ");
}
getch();
}

原文地址:https://www.cnblogs.com/jieruishu/p/4462125.html