⑴ 请问在单片机C语言中,while(--t)和while(t--)有什么区别啊
两者的基层汇编语言不同,程序运行时间也不同。
一、基层汇编语言的差别
(1)while(--t)用到了减一不为0转移指令DJNZ
执行一次while(t--) 的结束时间
可得单片机在执行while(t--)指令时,共耗时:
(0.00050130s-0.00049479s)/(12/11059200Hz)=5.999616mc≈6mc,
可以发现,单片机在执行while(--t)时所消耗的时间比在执行while(t--)时所消耗的时间短了整整4个机器周期,验证了第一部分所得结论的正确性。
⑵ 单片机C语言,问题一:while(语句){语句}与while(语句);语句 是什么区别,程序是
首先问题一:while(语句){语句}中小括号中的语句是判断真假,如果为真,则执行大括号中的语句,如果为假,则不执行下面的语句。while(语句);中的语句也是一个判断,当小括号中的语句表达式值不为0时,就一直判断,直到里面的表达式值为0时结束判断,去执行下一步的程序;
对于问题二:
while(!k1);
语句1;
while(!k2);
语句2;
对于这个程序段,只要是没有把它放在一个循环里面,也就是说让这个程序顺序执行一次就不再去执行这个段,就能实现你想要的功能。因为这几个语句是顺序执行的,所以在执行语句2之前,必须得经过语句1,语句2是不能在语句1之前执行的。同时也实现你需要的K1、K2不为0则检测,为0则不再检测,继续执行下面语句的要求。使用的是你询问的问题一中第二种循环方式。
⑶ if(; ; )在单片机中啥意思
单片机采用 C语言编程,题目的语法是错误的,该结构应该是 for(;;);
for 的语言结构为 for(①变量初始化;②判断语句;③变量增量)④循环体内容;
程序执行到for时,会先进行①编译,而且整个for循环只执行一次①。
程序再根据②的真假(0为假,非0为真)来决定是否执行④。
每执行完一次④内容,for 将执行一次③。
这四个要素均可以省略,但分号不能省略。
①省略,则表示 不需要初始化;
②省略,则表示 判断条件为 空,空 非零,即恒为真。(一般会在④内增加无条件跳转语句以结束循环);
③省略,则表示 不需要增量变化。(一般也会在④内增加变量增量,或在外部中断中改变变量(个人不推荐此方法));
④省略,则表示,循环体执行内容为 空。