我試圖一次使用gettimeofday()
功能的功能。我能夠獲得以微秒的時間,但是當試圖通過一個long
來劃分它在幾秒鐘內得到的時間我的值將被截斷單integer
。有沒有人有任何見解,爲什麼發生這種情況?我曾以爲,除以一個long = 1000000.0
會阻止這種截斷。司長被截斷 - Visual C
定時的功能:
struct timeval t1,t2;
gettimeofday(&t1, NULL);
// Computes C - C1 - using single thread
for (i=0; i < n; i++)
for (j=0; j < p; j++)
{
C1[i][j]=0;
for (k=0; k < m; k++)
C1[i][j] += A[i][k]*B[k][j];
}
gettimeofday(&t2, NULL);
司施加這裏:
long divider = 1000000.0;
long elapsed = ((t2.tv_sec - t1.tv_sec) * 1000000.0L) + (t2.tv_usec - t1.tv_usec);
elapsed = (elapsed/divider);
printf("Time in seconds: %ld seconds\n", elapsed);
任何幫助理解。
爲什麼你不使用雙? long是一個整數類型。 – rerun
你知道'long'是一個整數類型,不是嗎? –
ahhhh,我道歉。我已經使用double進行了測試,但我沒有更改printf的格式代碼。謝謝您的幫助。 –