成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

為什么編程語(yǔ)言的都要定義數(shù)據(jù)類型

wthee / 2710人閱讀

摘要:對(duì)于一個(gè)程序員來(lái)講,寫(xiě)代碼的第一件是請(qǐng),恐怕就是需要定義一些數(shù)據(jù)類型。更高級(jí)的語(yǔ)言,例如可以定義自己的數(shù)據(jù)類型和數(shù)據(jù)類型的算法,類的重載操作符就是一個(gè)例子。

對(duì)于一個(gè)程序員來(lái)講,寫(xiě)代碼的第一件是請(qǐng),恐怕就是需要定義一些數(shù)據(jù)類型。而程序本身,就是對(duì)這些數(shù)據(jù)類型進(jìn)行操作,有沒(méi)有人思考過(guò),為什么每種語(yǔ)言編寫(xiě)的程序,開(kāi)始都需要定義數(shù)據(jù)類型呢?

以下面的C代碼為例,我們來(lái)說(shuō)明這個(gè)問(wèn)題:

#include

int main()
{
    int a=100;
    int b=200;

    double a1=10.1;
    double b1=10.2;

    a=a+b;

    a1=a1+b1;

    getchar();
    return 0;
}

這段代碼非常簡(jiǎn)單,定義了四個(gè)數(shù)據(jù),兩個(gè)類型。大家看,a=a+b;和a1=a1+b1;這兩個(gè)語(yǔ)句,幾乎一樣,那么,我問(wèn)你,這兩個(gè)語(yǔ)句,在編譯時(shí),編譯器會(huì)用同一段代碼來(lái)替換這兩個(gè)語(yǔ)句嗎?

顯然不可是同一段代碼,因?yàn)楦↑c(diǎn)數(shù)和整數(shù),在計(jì)算機(jī)里面,使用了不同的處理器,整數(shù)使用普通的CPU,而浮點(diǎn)數(shù)必須使用浮點(diǎn)運(yùn)算器。所以,這兩句話,產(chǎn)生的機(jī)器代碼完全不同!

那么問(wèn)題來(lái)了,編譯器如何知道,在碰到兩個(gè)數(shù)相加的時(shí)候,是使用浮點(diǎn)運(yùn)算器的機(jī)器指令,還是使用普通CPU的機(jī)器指令?此時(shí),編譯器就會(huì)檢查進(jìn)行加法操作的兩個(gè)加數(shù)的數(shù)據(jù)類型,根據(jù)他們的數(shù)據(jù)類型,來(lái)確定到底使用哪一個(gè)運(yùn)算器的機(jī)器代碼。此時(shí),數(shù)據(jù)類型定義的意義就凸顯出來(lái)了。

總結(jié):

通過(guò)上述簡(jiǎn)單的描述,我們就能夠清楚,任何編程語(yǔ)言(除了匯編,匯編只規(guī)定數(shù)據(jù)的字長(zhǎng)),都會(huì)有自己的數(shù)據(jù)類型,數(shù)據(jù)類型背后,隱藏的是編譯器或者解釋器對(duì)數(shù)據(jù)處理方式的定義。知道了這個(gè)以后,我們?cè)诙x數(shù)據(jù)類型的時(shí)候,就應(yīng)該知道,我們定義的這種數(shù)據(jù)類型,可以進(jìn)行哪些操作,這些操作的規(guī)則是什么,這樣我們才算真正掌握了這個(gè)數(shù)據(jù)類型。

更高級(jí)的語(yǔ)言,例如C++可以定義自己的數(shù)據(jù)類型和數(shù)據(jù)類型的算法,類的重載操作符就是一個(gè)例子。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102063.html

相關(guān)文章

  • JS中數(shù)據(jù)類型、內(nèi)置對(duì)象、包裝類型對(duì)象、typeof關(guān)系

    摘要:平時(shí)在復(fù)習(xí)基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到數(shù)據(jù)類型基礎(chǔ)數(shù)據(jù)類型內(nèi)置對(duì)象包裝類型對(duì)象,檢測(cè)數(shù)據(jù)類型時(shí),用到的值,感覺(jué)都差不多,但是又有差異。值與數(shù)據(jù)類型關(guān)系對(duì)比下圖,即可知值相較于基礎(chǔ)數(shù)據(jù)類型少多 平時(shí)在復(fù)習(xí)JS基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到JS數(shù)據(jù)類型、基礎(chǔ)數(shù)據(jù)類型、內(nèi)置對(duì)象、包裝類型對(duì)象,檢測(cè)數(shù)據(jù)類型時(shí),用到的typeof值,感覺(jué)都差不多,但是又有差異。今天特地整理下,方便理解。 JS數(shù)據(jù)類型 基礎(chǔ)數(shù)...

    OldPanda 評(píng)論0 收藏0
  • 前端知識(shí)點(diǎn)整理(待續(xù))

    摘要:知識(shí)點(diǎn)閉包問(wèn)題執(zhí)行機(jī)制定時(shí)器線程理解構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)屬性上方法的對(duì)比中都經(jīng)歷了什么深入理解中的屬性和特性中的方法詳解為什么編程語(yǔ)言的都要定義數(shù)據(jù)類型中與的區(qū)別輕松理解基本包裝對(duì)象中數(shù)據(jù)類型內(nèi)置對(duì)象包裝類型對(duì)象關(guān)系基礎(chǔ)之?dāng)?shù)組中的邏輯 JS知識(shí)點(diǎn) JS hoist JS閉包問(wèn)題 JS執(zhí)行機(jī)制 JS定時(shí)器線程理解 構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)prototype屬性上方法的對(duì)比 JS...

    silencezwm 評(píng)論0 收藏0
  • 網(wǎng)絡(luò)協(xié)議 19 - RPC 協(xié)議:遠(yuǎn)在天邊近在眼前

    摘要:一旦有一方改變,要及時(shí)通知對(duì)方,否則就會(huì)出現(xiàn)問(wèn)題。對(duì)于,主要處理高性能的傳輸,以及網(wǎng)絡(luò)的錯(cuò)誤和異常。這個(gè)框架是在協(xié)議中使用的。就是網(wǎng)絡(luò)文件系統(tǒng)。唯一標(biāo)識(shí)請(qǐng)求和回復(fù)。 【前五篇】系列文章傳送門(mén): 網(wǎng)絡(luò)協(xié)議 14 - 流媒體協(xié)議:要說(shuō)愛(ài)你不容易 網(wǎng)絡(luò)協(xié)議 15 - P2P 協(xié)議:小種子大學(xué)問(wèn) 網(wǎng)絡(luò)協(xié)議 16 - DNS 協(xié)議:網(wǎng)絡(luò)世界的地址簿 網(wǎng)絡(luò)協(xié)議 17 - HTTPDNS:私人定制...

    ASCH 評(píng)論0 收藏0
  • 網(wǎng)絡(luò)協(xié)議 19 - RPC 協(xié)議:遠(yuǎn)在天邊近在眼前

    摘要:一旦有一方改變,要及時(shí)通知對(duì)方,否則就會(huì)出現(xiàn)問(wèn)題。對(duì)于,主要處理高性能的傳輸,以及網(wǎng)絡(luò)的錯(cuò)誤和異常。這個(gè)框架是在協(xié)議中使用的。就是網(wǎng)絡(luò)文件系統(tǒng)。唯一標(biāo)識(shí)請(qǐng)求和回復(fù)。 【前五篇】系列文章傳送門(mén): 網(wǎng)絡(luò)協(xié)議 14 - 流媒體協(xié)議:要說(shuō)愛(ài)你不容易 網(wǎng)絡(luò)協(xié)議 15 - P2P 協(xié)議:小種子大學(xué)問(wèn) 網(wǎng)絡(luò)協(xié)議 16 - DNS 協(xié)議:網(wǎng)絡(luò)世界的地址簿 網(wǎng)絡(luò)協(xié)議 17 - HTTPDNS:私人定制...

    caige 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<