Ⅰ 用c語言,怎麼算出主函數調用函數時,該函數的執行時間。舉個例子,謝謝啊。請高手幫忙
int main()
{
int TimeStart = GetTickCount();
Sum();//這個是你要調用的函數
int TimeEnd = GetTickCount();
int Time = TimeEnd - TimeStart;
//Time的值 就是調用Sum()函數所用的時間
}
簡單的寫了一下,希望能幫到你
Ⅱ C語言怎樣實現周期性調用某個功能函數呢
#include<stdio.h>
#include <windows.h>
void fun()
{
printf("c\n");
}
void main()
{
while(true)
{
Sleep(50); // 沒過50毫秒在控制台列印一個c字元
fun();
}
}
Ⅲ c51單片機中,每條c語言需要的時間是多少
應該是指令周期,根據指令的不同,一般一個指令需要1-4個機器周期來完成(比如乘法或除法就需要48個時鍾周期來完成),一般的51單片機都是12分頻,也就是說1個機器周期分為12個時鍾周期。請你好好理解時鍾周期--機器周期--指令周期三者之間的關系。
目前STC有不少型號的液頌單片機有單時鍾清埋敗周期指令,一個時鍾周期即為一個機器周期,不進行12分頻,就是在1個時鍾周期內可以執行一條指令,但只是部分指令可以單時鍾周期執行,大多指令需要1-6個時鍾周期來完成,相比較而言,已經比普通的12分頻單片機速度快多了。
Ⅳ C語言的for循環中執行一次需多少機器周期
機器循環,當然只是在單片機中,不同的單片機使用不同的編譯軟體,最終都轉換成匯編,把機器代碼燒錄成單片機。
不同的編譯軟體可以用不同的方式編譯語句。以keil為例。(我= 0;我< 1;N + +我+ +);(I, n是char或unsigned char)
賦值語句(I=0)有兩個機械循環,
一個判斷語句(I <1) 4個機械循環,
一個自加語句(n++) 1機械循環,
另一個自我遞增語句(i++)1機械循環,
另一個判斷語句(I <1) 4個機械循環,結束。
(4)函數調用指令周期c語言擴展閱讀:
指令周期:
每次CPU獲取一條指令並執行它,它就完成一系列操作,通常稱為指令周期。換句話說,指令周期就是猜掘獲取一條指令並執行它所花費的時間。由於每條指令的操作功能不同,每條指令的指令周期也不同。
例如加法指令的指令周期與乘法指令的指令周期是不同的。指令周期通常以CPU周期的數量表示,也稱為機器周期。所需的機器周期數隨指令的不同而變化。對於一些簡單的單位元組指令。
在指令取出周期中,將指令取出到指令寄段碰存器後,立即對其進行解碼並執行,不需要其他機器周期。對穗燃核於更復雜的指令,例如轉換和乘法指令,需要兩個或更多的機器周期。
具有一個機器周期的指令通常稱為單周期指令,具有兩個機器周期的指令稱為雙周期指令。
Ⅳ c語言運行一條指令要多少時間
這個需要分情況來看。
1.C語言源程序通過預處理然後編譯,產生匯編代碼,不同的匯編代碼和指令有不同的執行時間。
2.一個指令的執行時間,用其所需要的指令周期(執行一條指令所需要的時間)來衡量。對於單位元組指令,就是一個讀取-執行周期(fetch-execute cycle),對於多位元組指令,還需要更多的指令周期。
3.一個指令周期,一般是由若干個機器周期(完成一次基本操作需要的時間,比如獲取變數在RAM當中的地址)組成。
4.再一個,時鍾周期,這個可以形象一點地和通常所說的主頻聯系起來,比如CPU核心的主頻是2.5GHz,則時鍾周期為0.4ns,這個是計算機當中最小的時間計量單位。一個機器周期由若干個時鍾周期組成。
Ⅵ 怎麼用C語言來計算一個函數調用了多久
可以通過計算時間差的方法來計算一個函數調用了多久。
具體細節如下:
計算函數執行時間是評價程序效率的一種常用方法。
可以在調用一個函數之間獲取當前時間,在調用之後再次獲取當前時間,然後計算二者的時間差。
但是如果一個函數執行時間非常短,會得到兩個時間差為0的情況,此時可以修改程序為調用該函數1000次,然後把時間差除以1000。
得到當前時間的方法是:首先程序最前面添加頭文件#include<time.h>,然後通過調用time(NULL)獲取當前時間。
Ⅶ c語言如何實現定時調用函數
#include<stdio.h>
voiddelay(unsignedlongn){//延時時間與n有關系,業余你的電腦的運行速度有關,至於延時是否有5秒,請自行調整
unsignedlongi,j,k,m=n;
for(i=0;i<n;++i)
for(j=0;j<n;++j)
for(k=0;j<n;++i)
while(m--);
}
voidfun(){}
intmain(){
unsignedn=50000;
while(1){
fun();
delay(n);//延時
}
return0;
}