- 相關(guān)推薦
C語言為什么定義了這么多不同的時(shí)間標(biāo)準(zhǔn)
由于所使用的計(jì)算機(jī)和編譯程序不同,你可能會(huì)發(fā)現(xiàn)定義了許多時(shí)間標(biāo)準(zhǔn)。盡管有多種時(shí)間標(biāo)準(zhǔn)會(huì)帶來一定的方便,但把它們都寫出來顯然要花很長(zhǎng)的時(shí)間,并且把它們都存儲(chǔ)起來也會(huì)多占硬盤空間。那么,為什么還要這樣呢?其中有好幾個(gè)原因,具體情況如下,更多消息請(qǐng)關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!
首先,C是一種可移植的語言。因此在一臺(tái)計(jì)算機(jī)上編寫的C程序應(yīng)該能在另一臺(tái)計(jì)算機(jī)上運(yùn)行。通常,當(dāng)用C語言在一個(gè)新的系統(tǒng)上進(jìn)行開發(fā)時(shí),必須把專門在某個(gè)系統(tǒng)上使用的那些函數(shù)添加到C語言中。此后,當(dāng)C程序需要從一個(gè)系統(tǒng)移植到另一個(gè)系統(tǒng)中時(shí),將具體命令添加到目標(biāo)系統(tǒng)中通常就很容易了。這樣一來,同一函數(shù)的不同版本就都匯集在C語言中了。這種情況就曾多次發(fā)生在時(shí)間函數(shù)身上。
其次,時(shí)間(和日期)可能有多種不同的用法。你可能想按秒計(jì)時(shí),可能想從一個(gè)具體的時(shí)間和日期開始計(jì)時(shí)。此外,你還可能想按最小的時(shí)間間隔計(jì)時(shí),以確保計(jì)時(shí)盡可能精確。對(duì)于計(jì)時(shí),沒有一種最好的方法。當(dāng)你開始編寫一個(gè)涉及到時(shí)間的程序時(shí),你必須先把可以使用的函數(shù)分析一遍,并確定哪一種函數(shù)最適合于你的目的。如果你要用多種方法處理時(shí)間,你就可能要使用多種不同的時(shí)間格。
【拓展閱讀】
C語言中關(guān)于時(shí)間的函數(shù)的概念
在C/C++中,通過學(xué)習(xí)許多C/C++庫,你可以有很多操作、使用時(shí)間的方法。但在這之前你需要了解一些“時(shí)間”和“日期”的概念,主要有以下幾個(gè):
1. 協(xié)調(diào)世界時(shí),又稱為世界標(biāo)準(zhǔn)時(shí)間,也就是大家所熟知的格林威治標(biāo)準(zhǔn)時(shí)間(Greenwich Mean Time,GMT)。比如,中國內(nèi)地的時(shí)間與UTC的時(shí)差為+8,也就是UTC+8。美國是UTC-5。
2. 日歷時(shí)間,是用“從一個(gè)標(biāo)準(zhǔn)時(shí)間點(diǎn)到此時(shí)的時(shí)間經(jīng)過的秒數(shù)”來表示的時(shí)間。這個(gè)標(biāo)準(zhǔn)時(shí)間點(diǎn)對(duì)不同的編譯器來說會(huì)有所不同,但對(duì)一個(gè)編譯系統(tǒng)來說,這個(gè)標(biāo)準(zhǔn)時(shí)間點(diǎn)是不變的,該編譯系統(tǒng)中的時(shí)間對(duì)應(yīng)的日歷時(shí)間都通過該標(biāo)準(zhǔn)時(shí)間點(diǎn)來衡量,所以可以說日歷時(shí)間是“相對(duì)時(shí)間”,但是無論你在哪一個(gè)時(shí)區(qū),在同一時(shí)刻對(duì)同一個(gè)標(biāo)準(zhǔn)時(shí)間點(diǎn)來說,日歷時(shí)間都是一樣的。
3. 時(shí)間點(diǎn)。時(shí)間點(diǎn)在標(biāo)準(zhǔn)C/C++中是一個(gè)整數(shù),它用此時(shí)的時(shí)間和標(biāo)準(zhǔn)時(shí)間點(diǎn)相差的秒數(shù)(即日歷時(shí)間)來表示。
4. 時(shí)鐘計(jì)時(shí)單元(而不把它叫做時(shí)鐘滴答次數(shù)),一個(gè)時(shí)鐘計(jì)時(shí)單元的時(shí)間長(zhǎng)短是由CPU控制的。一個(gè)clock tick不是CPU的一個(gè)時(shí)鐘周期,而是C/C++的一個(gè)基本計(jì)時(shí)單位。
我們可以使用ANSI標(biāo)準(zhǔn)庫中的time.h頭文件。這個(gè)頭文件中定義的時(shí)間和日期所使用的方法,無論是在結(jié)構(gòu)定義,還是命名,都具有明顯的C語言風(fēng)格。
c語言入門經(jīng)典小程序
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 表示左對(duì)齊,占 3 位 */
}
printf("\n");/* 每一行后換行 */
}
}
2 、 /* 古典問題:有一對(duì)兔子,從出生后第 3 個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔
子都不死,問每個(gè)月的兔子總數(shù)為多少?
兔子的規(guī)律為數(shù)列 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");/* 控制輸出,每行四個(gè) */
f1=f1+f2; /* 前兩個(gè)月加起來賦值給第三個(gè)月 */
f2=f1+f2; /* 前兩個(gè)月加起來賦值給第三個(gè)月 */
}
}
【C語言為什么定義了這么多不同的時(shí)間標(biāo)準(zhǔn)】相關(guān)文章:
C語言宏定義07-01
C語言函數(shù)的定義07-13
C語言變量定義07-29
C語言標(biāo)準(zhǔn)定義的32個(gè)關(guān)鍵字05-06
C語言變量的定義與使用09-05
C語言結(jié)構(gòu)體定義06-25
C語言宏定義技巧09-03
C語言的宏定義分析09-10
C語言數(shù)組的定義及引用08-05