2013-09-27 90 views
0

我發佈了一個我遇到的程序。任何人都可以解釋我這個程序中的ctime函數是如何工作的?

  1. 「0x7FFFFFFF」是什麼意思?
  2. ctime()函數是如何工作的?

#include<stdio.h> 
#include <time.h> 

int main() 
{ 
    time_t Variable = 0x7FFFFFFF; 
    printf("Variable value is = %s \n", ctime(&Variable)); 
    return 0; 
} 

回答

0

ctime轉換time_t值到字符串。從Wiki

time_t的作爲運算類型,但不指定任何特定類型

0x7FFFFFFF是十進制等於2^31 2147483647 - 1.最大值可在32來表示位有符號整數。

0

0x7FFFFFFF是可以用32位有符號整數表示的最大值。如果time_t是有符號整數類型,那麼ctime(&Variable)代表在32位系統上的end of the world。我們將從那裏進入未定義的世界。 ;-)

然而,已經爲time_t一直postponed通過使用64位的類型。

0

通常的ctime在以下的方式使用

/* ctime example */ 
#include <stdio.h>  /* printf */ 
#include <time.h>  /* time_t, time, ctime */ 

int main() 
{ 
    time_t rawtime; 

    time (&rawtime); 
    printf ("The current local time is: %s", ctime (&rawtime)); 

    return 0; 
} 

我們首先使用time()保存在rawtime可變電流時間,然後通過使用ctime()

人類可讀的字符串顯示它