调用一个函数肯定会很长,因为这样会有堆栈枝含腊的保存和恢复。之所以有不同的函数,就是编码可读猛滑性高,代码复用率高,比如写一个add函数,很多流程可以直接调用,不用再重新写这个add函数。也可以在函数前加 inline ,编译器会把这个函数的老迅代码展开到调用的函数里
目前成都创新互联已为成百上千的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、无棣网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
下面的是我桐掘猜用定时器0做局型的延时函数,你看看,可以精确到10ms,如果你还想精确,调定时器的初值就可以。最高散此精度是1ms.
void initTimer0(void) reentrant // Initialize T0 for Timer 0.01s
{
TMOD |= (10);
TMOD = ~(11);
TH0 = 0xB0;
TL0 = 0x00;
}
// Timer0 interrupt
void timer0_ISR(void) interrupt 1 // Timer0 interrupt
{
TF0 = 0;
TH0 = 0xB0; // 0.01s
TL0 = 0x00;
delayCnt++;
}
// Delay Time
void delayTime(INT16U sec, INT16U msec) reentrant // Time Delay Function
{
INT16U dcnt;
delayCnt = 0;
dcnt = sec * 1000 / 10 + msec /10;
while(delayCntdcnt);
}
int main()
{
int TimeStart = GetTickCount();
Sum();//这个是你要调用的函数
int TimeEnd = GetTickCount();
int Time = TimeEnd - TimeStart;
//Time的值模兄 就是调用Sum()函数所用的时间轿凯
}
简单旦帆袭的写了一下,希望能帮到你
可以通过计算时间差判樱的方法来计算一个函数调用了多久。
具体细节如下:
计算函数执行时间是评价程携脊序效率的一种常用方法。
可以在调用一个函数之间获取当前时间,在调用之后再次获取当前时间,然后计算二者的时间差。
但是如果一个函数执行时间非常短,会得到两个时间差为0的情况,此时可以修改程序为调用该函数1000次,然后把时间差除以1000。
得到掘隐丛当前时间的方法是:首先程序最前面添加头文件#includetime.h,然后通过调用time(NULL)获取当前时间。