我有一個數字像56789098.9899我想在usleep()中使用它只接受一個無符號整數作爲argument.how來解決這個問題?如何將double轉換爲int以將其用作usleep中的參數?
sleeptime = time_alloted - time_taken。
這裏休眠時間爲無符號整型變量。
我有一個數字像56789098.9899我想在usleep()中使用它只接受一個無符號整數作爲argument.how來解決這個問題?如何將double轉換爲int以將其用作usleep中的參數?
sleeptime = time_alloted - time_taken。
這裏休眠時間爲無符號整型變量。
首先,usleep
接受usenconds_t
arguement和useconds_t
不必是unsigned int
。請參閱usleep
規格。 http://pubs.opengroup.org/onlinepubs/7908799/xsh/usleep.html
其次,請注意參數不能大於1,000,000。並且請記住檢查返回值usleep
,因爲它可能會失敗。
然後只需使用類型轉換就足夠了。
它應該工作「原樣」 所以下面的代碼工作正常,我:
#include "stdio.h"
void func(unsigned int i)
{
printf("Going to sleep for %d\n", i);
usleep(i);
}
int main(void)
{
printf("hello world\n");
unsigned int sleep;
sleep = 56789098.9888 - 124234.45345;
func(sleep);
return 0;
}
它適用於你,因爲你假設第一個變量總是大於第二個變量。試着讓第一個變量更大,然後see.Also結果我得到,即睡眠時間內使用if條件中的if條件如睡眠時間> 0)然後執行此操作...您的代碼肯定會中斷。 – Phoenix225 2012-04-17 11:56:29
我必須使用它作爲睡眠(睡眠時間); – Phoenix225 2012-03-28 05:33:46
就C而言,對我而言已經很長時間了,但是你有沒有嘗試過; unsigned long int sleeptime; sleeptime = time_alloted-time_taken; – Terry 2012-03-28 05:38:40
它應該「只是工作」。有什麼問題? – 2012-03-28 05:39:22