C語言爲什麼定義了這麼多不同的時間標準

由於所使用的計算機和編譯程序不同,你可能會發現定義了許多時間標準。儘管有多種時間標準會帶來一定的方便,但把它們都寫出來顯然要花很長的時間,並且把它們都存儲起來也會多佔硬盤空間。那麼,爲什麼還要這樣呢?其中有好幾個原因,具體情況如下,更多消息請關注應屆畢業生網!

C語言爲什麼定義了這麼多不同的時間標準

首先,C是一種可移植的語言。因此在一臺計算機上編寫的C程序應該能在另一臺計算機上運行。通常,當用C語言在一個新的系統上進行開發時,必須把專門在某個系統上使用的那些函數添加到C語言中。此後,當C程序需要從一個系統移植到另一個系統中時,將具體命令添加到目標系統中通常就很容易了。這樣一來,同一函數的不同版本就都彙集在C語言中了。這種情況就曾多次發生在時間函數身上。

其次,時間(和日期)可能有多種不同的用法。你可能想按秒計時,可能想從一個具體的時間和日期開始計時。此外,你還可能想按最小的時間間隔計時,以確保計時儘可能精確。對於計時,沒有一種最好的方法。當你開始編寫一個涉及到時間的程序時,你必須先把可以使用的函數分析一遍,並確定哪一種函數最適合於你的目的。如果你要用多種方法處理時間,你就可能要使用多種不同的時間格。

【拓展閱讀】

C語言中關於時間的函數的概念

在C/C++中,通過學習許多C/C++庫,你可以有很多操作、使用時間的方法。但在這之前你需要了解一些“時間”和“日期”的概念,主要有以下幾個:

1. 協調世界時,又稱爲世界標準時間,也就是大家所熟知的格林威治標準時間(Greenwich Mean Time,GMT)。比如,中國內地的時間與UTC的時差爲+8,也就是UTC+8。美國是UTC-5。

2. 日曆時間,是用“從一個標準時間點到此時的時間經過的.秒數”來表示的時間。這個標準時間點對不同的編譯器來說會有所不同,但對一個編譯系統來說,這個標準時間點是不變的,該編譯系統中的時間對應的日曆時間都通過該標準時間點來衡量,所以可以說日曆時間是“相對時間”,但是無論你在哪一個時區,在同一時刻對同一個標準時間點來說,日曆時間都是一樣的。

3. 時間點。時間點在標準C/C++中是一個整數,它用此時的時間和標準時間點相差的秒數(即日曆時間)來表示。

4. 時鐘計時單元(而不把它叫做時鐘滴答次數),一個時鐘計時單元的時間長短是由CPU控制的。一個clock tick不是CPU的一個時鐘週期,而是C/C++的一個基本計時單位。

我們可以使用ANSI標準庫中的time.h頭文件。這個頭文件中定義的時間和日期所使用的方法,無論是在結構定義,還是命名,都具有明顯的C語言風格。

  c語言入門經典小程序

1 、 /* 輸出 9*9 口訣。共 9 行 9 列, i 控制行, j 控制列。 */

#include "stdio.h"

main()

{int i,j,result;

for (i=1;i<10;i++)

{ for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d 表示左對齊,佔 3 位 */

}

printf("n");/* 每一行後換行 */

}

}

2 、 /* 古典問題:有一對兔子,從出生後第 3 個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔

子都不死,問每個月的兔子總數爲多少?

兔子的規律爲數列 1,1,2,3,5,8,13,21....*/

main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i<=20;i++)

{ printf("%12ld %12ld",f1,f2);

if(i%2==0) printf("n");/* 控制輸出,每行四個 */

f1=f1+f2; /* 前兩個月加起來賦值給第三個月 */

f2=f1+f2; /* 前兩個月加起來賦值給第三個月 */

}

}