A. c语言循环函数用法
循环j*8505次.
假设j开始等于100,
while外循环则循环100次,
每次执行一次内循环,
内循环每次执行8505次.
总共100*8505次.
你这个硬件处理器的频率可能运算8505次计算为1秒(或毫秒/微秒/纳秒),
然后delay函数实现循环n秒(或毫秒/微秒/纳秒).
应该不是秒,
1秒才运算8000多次的话那.....
B. 请问C语言中clock()函数该怎么用
clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。
它的具体功能是返回处理器调用某个进程或函数所花费的时间。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型。
在time.h文件中,我们可以找到对它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其实就是long,即长整形。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0。
2、clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少。
3、建议使用time gettimeofday函数来计时。
(2)c语言纳秒扩展阅读:
C语言中clock()函数的程序例1:(TC下运行通过)
#include<stdio.h>
#include<time.h>
intmain(void)
{
clock_tstart,end;
start=clock();
delay(2000);
end=clock();
printf("Thetimewas:%f ",(double)(end-start)/CLK_TCK);
return0;
}
说明:CLK_TCK定义在TC中的time.h中:#defineCLK_TCK18.2。
在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2,而是1000。
实际上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。
C. c语言中delay 10000是延迟几秒
首先就是机器的CPU频率,快的CPU执行i--这句的机器时间短,慢的机器就很慢。
其次是当前机器的负荷情况,负荷较重时,系统给当前进程分配的CPU时间少,执行这些语句的机会就少,延迟就增加了。
影响因素还有很多在此不再列举。
做延迟程序主要有以下几种方法:
1.
定时器法
用CWnd::SetTimer()函数设置定时器,当定时时间到时发送WM_TIMER消息触发CWnd::OnTimer()函数,重载它把自己的代码放进去。
SetTimer()参数为毫秒,此方法定时不高,受系统负荷影响。
2.
休眠法
调用系统API函数Sleep(2000);
参数单位是毫秒,2000代表2秒。
此方法主要收到当前系统负荷的影响,定时不太准确
3.
时刻比较法
定义两个CTime变量,一个用于记录起始时刻,另一个放在循环体中不断刷新当前时刻,并减去起始时刻,自己计算是否到时间了。
此方法因CTime变量只能获取秒级的时刻,且收到系统负荷影响,精度也较低。
4.
CPU滴答查询法
利用两个API函数QueryPerformanceFrequency()和QueryPerformanceCounter()分别获取CPU的频率和CPU滴答数,依时刻比较法自己计算时刻差值。
因为CPU滴答数是等于CPU的机器周期的,所以是Windows系统里最最精确的计时方法了。现在的CPU主频都是GHz级的,因此理论上计时精度可以到纳秒。
只要系统负荷不太重,此法可用于极其精确的延时程序。
因为Windows并不是实时操作系统,因此对于太过精确的计时,还是无能为力的。
D. 24MHZ单片机中 C语言一条指令需要多少时间
看是什么的单片机,普通的51就是12倍频的,需要把晶振除以12才是每条指令的执行时间,如果是stc之类的1t单片机就是晶振的振荡频率
E. c语言有办法取得当前纳秒或微秒级的时间吗
QueryPerformanceCounter,但是有人质疑其准确性,具体请自信网络
F. sleep()函数怎么具体在c语言中怎么用
Sleep方法是Java线程(Thread)开发中一种概念。是线程TIMED_WAITING状态中的一种方法。使用方法为:
1、类名为创建线程的类名。
注意事项:
Sleep函数可以使计算机程序(进程,任务或线程)进入休眠,使其在一段时间内处于非活动状态。当函数设定的计时器到期,或者接收到信号、程序发生中断都会导致程序继续执行。
G. 问个弱弱的问题,C语言里usleep的单位是多少,是不是百万分之一秒
标准C中没有标准的usleep函数吧? 要看你对应平台的实现。
按字面意思,usleep就是微秒,就是百万分之一秒。
H. C语言如何实现纳秒级随机
哥们 实现不了的 受机器体系结构和处理器限制 时间相关的都是用汇编做的 这样才能精确计算时间
I. C语言如何精确计算程序运行时间除clock()函数之外。。。急急急!!!!
如果你要更精确的,就需要使用系统API来获取了。
windows sdk下面有几个获取CPU时钟的函数,我记得一个gettickcount(),返回开机到调用时的毫秒数(像360之类的软件的计算系统启动时间就是调用这个api)可以用来计算运行时间。实际上还有更精确的,我没有用过(因为毫秒对我就够用了),所以不记得名字,我搜了一下,给你附了个链接。
记得#include <windows.h>
再想到一点,如果你是用linux的话,我就不太熟了……
J. c语言编程中的%.1s是什么意思
用在printf中是:在屏幕当前光标所在处开始将它对应的字符串的第1个字符打印出来。