自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C語(yǔ)言數(shù)據(jù)類型是如何被大多數(shù)計(jì)算機(jī)系統(tǒng)所支持?

開發(fā) 后端
異常處理是C語(yǔ)言中沒有的一種控制結(jié)構(gòu)。非局部的退出只有'setjmp()'和'longjmp()'兩種,只能提供保存和恢復(fù)某些部分的處理器狀態(tài)。相比之下,C++運(yùn)行時(shí)環(huán)境必須先遍歷函數(shù)調(diào)用棧,然后調(diào)用析構(gòu)函數(shù)和異常處理函數(shù)。

問題:

在讀K&R版的The C Programming Language一書時(shí),我在[介紹,第3頁(yè)]看到這樣一條說明:

因?yàn)镃語(yǔ)言提供的數(shù)據(jù)類型和控制結(jié)構(gòu)可以直接被大部分計(jì)算機(jī)系統(tǒng)所支持,所以在實(shí)現(xiàn)自包含程序時(shí)所需要的運(yùn)行庫(kù)文件一般很小。

這段黑體說明了什么?能否找到一個(gè)例子來說明C語(yǔ)言中的某種數(shù)據(jù)類型或控制結(jié)構(gòu)不被某種計(jì)算機(jī)系統(tǒng)直接支持呢?

[[131181]]

 

回答:

事實(shí)上,C語(yǔ)言中確實(shí)有不被直接支持的數(shù)據(jù)類型。

在許多嵌入式系統(tǒng)中,硬件上并沒有浮點(diǎn)運(yùn)算單元。因此,如果你寫出下面的代碼:

float x = 1.0f, y = 2.0f;
return x + y;

可能會(huì)被轉(zhuǎn)化成下面這種形式:

unsigned x = 0x3f800000, y = 0x40000000;
return _float_add(x, y);

然后編譯器或標(biāo)準(zhǔn)庫(kù)必須提供'floatadd()'的具體實(shí)現(xiàn),這會(huì)占用嵌入式系統(tǒng)的內(nèi)存空間。依此去計(jì)算代碼在某個(gè)微型系統(tǒng)(譯者注:也就是指微型嵌入式系統(tǒng))的實(shí)際字節(jié)數(shù),也會(huì)發(fā)現(xiàn)有所增加。

另一個(gè)常見的例子是64位整型數(shù)(C語(yǔ)言標(biāo)準(zhǔn)中'long long'類型是1999年之后才出現(xiàn)的),這種類型在32位系統(tǒng)上也不能直接使用。古董級(jí)的SPARC系統(tǒng)則不支持整型乘法,所以在運(yùn)行時(shí)必須提供乘法的實(shí)現(xiàn)。當(dāng)然,還有一些其它例子。

 

其它語(yǔ)言

相比起來,其它編程語(yǔ)言有更加復(fù)雜的基本類型。

比如,Lisp中的symbol需要大量的運(yùn)行時(shí)實(shí)現(xiàn)支持,就像Lua中的table、Python中的string、Fortran中的array,等等。在C語(yǔ)言中等價(jià)的類型通常要么不屬于標(biāo)準(zhǔn)庫(kù)(C語(yǔ)言沒有標(biāo)準(zhǔn)symbol或table),要么更加簡(jiǎn)單,而且并不需要那么多的運(yùn)行時(shí)支持(C語(yǔ)言中的array基本上就是指針,以NULL結(jié)尾的字符串實(shí)現(xiàn)起來也很簡(jiǎn)單)。

 

控制結(jié)構(gòu)

異常處理是C語(yǔ)言中沒有的一種控制結(jié)構(gòu)。非局部的退出只有'setjmp()'和'longjmp()'兩種,只能提供保存和恢復(fù)某些部分的處理器狀態(tài)。相比之下,C++運(yùn)行時(shí)環(huán)境必須先遍歷函數(shù)調(diào)用棧,然后調(diào)用析構(gòu)函數(shù)和異常處理函數(shù)。


via:stackoverflow

作者:Dietrich Epp 譯者:KayGuoWhu 校對(duì):wxy

責(zé)任編輯:林師授 來源: Linux中國(guó)
相關(guān)推薦

2015-04-09 14:34:06

C語(yǔ)言數(shù)據(jù)類型計(jì)算機(jī)系統(tǒng)支持

2010-08-03 09:19:50

云計(jì)算調(diào)查

2018-01-02 18:06:56

2013-03-28 10:01:50

云計(jì)算

2009-07-14 15:39:34

Swing大多數(shù)控件

2014-04-10 09:40:51

System 360計(jì)算機(jī)計(jì)算機(jī)系統(tǒng)

2014-01-02 10:34:54

設(shè)計(jì)設(shè)計(jì)師

2024-07-04 15:47:28

2019-10-09 10:06:22

網(wǎng)絡(luò)大數(shù)據(jù)物聯(lián)網(wǎng)

2011-05-26 10:50:31

2020-09-18 10:01:29

數(shù)據(jù)

2016-10-26 09:42:13

2015-02-13 10:51:46

Java

2020-11-20 10:27:55

云計(jì)算云遷移IT

2015-06-05 10:13:09

2021-05-24 08:30:47

計(jì)算機(jī)互聯(lián)網(wǎng) 技術(shù)

2021-09-17 16:00:33

Windows 11微軟虛擬機(jī)

2015-12-11 10:02:51

2021-08-02 15:23:16

Windows 10Windows微軟

2012-12-19 10:07:18

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)