[英]simple c program does not produce required output
我使用以下程序打印當前時間
int main()
{
printf("%s",__TIME__);
return 0;
}
它只適用於第一次。 如果我在一段時間后運行它再次給出相同的舊時間。
為什么我需要刷新時間呢?
__TIME__
是一個標准的預定義宏 ,它擴展為一個字符串常量,用於描述預處理器的運行時間 。
它在編譯之前被預處理器替換。 所以不會隨着不同的運行而改變。 但是如果你重新編譯你的程序,你會看到變化。
要獲取當天的當前時間,您可以使用time
, localtime
和asctime
函數:
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庫的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.