簡體   English   中英

簡單的c程序不會產生所需的輸出

[英]simple c program does not produce required output

我使用以下程序打印當前時間

int main() 
{
  printf("%s",__TIME__);
  return 0;
}

它只適用於第一次。 如果我在一段時間后運行它再次給出相同的舊時間。

為什么我需要刷新時間呢?

__TIME__是一個標准的預定義宏 ,它擴展為一個字符串常量,用於描述預處理器的運行時間

它在編譯之前被預處理器替換。 所以不會隨着不同的運行而改變。 但是如果你重新編譯你的程序,你會看到變化。

要獲取當天的當前時間,您可以使用timelocaltimeasctime函數:

time_t rawtime;
struct tm * timeinfo;

time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "Current local time and date: %s", asctime (timeinfo) );

__TIME__是由編譯器設置的宏。 由於它是在編譯時修復的,因此稍后運行程序不會更改輸出。 您可以調用gettimeofday()time()甚至其他函數來獲取運行時的時間/日期。 ctime()及其相關函數可以為您生成更多有用的字符串。

大家對__TIME__是正確的。 這是關於ctime庫的鏈接。

http://www.cplusplus.com/reference/clibrary/ctime/ctime/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM