C语言指令心得由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言心得体会”。
C语言指令心得:
来自网上:
下面是培训时讲到的一个倒计时程序,对于back()函数,我不明白他是怎样实现自减的,希望高手帮我解释下,谢谢
#include using namespace std;
#include
cla Clock{
int h;int m;
int s;
public:void set(){
cout > h >> m >> s;
}void wait(){
long t=time(NULL);
while(time(NULL)==t);}
void back(){if(--s
s = 59;
if(--m
if(--h
}}
}
bool isZero(){return h==0&&m==0&&s==0;
}void show(){
cout
if(h
if(m
if(s
}
void run(){while(!isZero()){
show();wait();
back();
}cout
}};
int main()
{
Clock c;c.set();
c.run();}
poxiuu回复于19日15点00分
高
街头痞子回复于19日15点10分
C/C++ code void back(){ if(--s
则将小时数赋值为23 h = 23;} } }
金色翅膀回复于19日15点19分
C/C++ code //接上面 #include “Shi.h” Shi::Shi(){ } Shi::~Shi(){ } int main(){ Shi shi;if(shi.set())
{ shi.run();} }
走遍全国回复于19日15点28分
学习
zhuwei_43回复于19日15点39分
void wait(){
long t=time(NULL);
while(time(NULL)==t);
}
谁能解释下啊
bjshenhui回复于19日15点50分
void run(){
while(!isZero()){ //错误判断
show();//显示当前
wait();//等待1秒
back();//--
}
liulin回复于19日16点02分
ding
jiang821213回复于19日16点11分
time返回一个以秒为单位的整数,如果cpu足够快,在时间未增加前,使用循环占用cpu时间片,否
则减一,减的过程符合时分秒的进制关系,就是这样
我心永存回复于19日16点20分
学习中!
紫韵凝香回复于19日16点32分
void run(){
while(!isZero()){
show();
wait();
back();
}
哦,差不多明白了,run()函数自身也在循环调用show()wait()和back()
显示——等待——自减一直循环到0 0 0。
忽忽
贝家宝回复于19日16点41分
还是有点不明白,void back(){
if(--s
s = 59;
if(--m
m = 59;
if(--h
h = 23;
}
}
}
--s
danyarucha回复于19日16点49分
time()函数的参数为什么是NULL?
mycshimyc回复于19日16点58分
学习了,呵呵
bja6083回复于19日17点04分
C/C++ code void wait(){ long t=time(NULL);while(time(NULL)==t);}
应该是将当前时间的值给t,然后进入循环.当1秒种后,time(NULL)!=t时打破循环,执行函数后面的语句.而wait()的功能也就是一个定时器,让秒针刚好是1秒钟改变一次.tinazxy回复于19日17点11分
是先自减再比较大小。
--s,先自减1再执行后面操作,s--,先执行后面操作再自减1,fanxingchunshui回复于19日17点17分
C/C++ code //用户输入某一时间以后倒计时,00:00:00退出 #pragma once #include
#include #include using namespace std;cla Shi { public: int h;int m;int s;bool set(){ cout > h >> m >> s;if(h>24||m>60||s>60){ cout
back(){ if(--s
h==0&&m==0&&s==0;} void show(){ cout
李伊文回复于19日17点24分
time(0),time(null)返回系统当前时间,单位为秒,从1900年1月1日0点起到当前时间的秒数。我是这样理解time()的!
1、用于多分支选择的switch语句,其一般形式为:
switch(表达式){
case常量表达式1:语句1;
case常量表达式2:语句2;
…
case常量表达式n:语句n;
default:语句n+1;
}
其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
2、main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只能有一个主函数(main函数)。main()。
3、函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用。
4、include称为文件包含命令扩展名为.h的文件称为头文件,定义两个实数变量,以被后面程序使用,显示提示信息。
5、在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。
6、预处理命令都以“#”开头
关于波特率问题:
原理是很简单的,串口的电路是一个移位寄存器,定时器溢出时就会促使这个寄存器移出1bit数据。
根据你需要的波特率就可以算出移出1bit的时间间隔,然后你把定时器的溢出时间定
义为这个时间间隔就行了。
当然,上面的只是一个简单的原理,实际情况可能还有些细微的区别,比如实际计算的时候还有一个波特率因子,这个不同的单片机是不完全一样的,计算定时器初值时要把这个也算进去。