新聞中心
c語(yǔ)言打印double類型?
相信很多人學(xué)C語(yǔ)言時(shí), 對(duì)long double的印象就是, 它能存儲(chǔ)精度比double更高的浮點(diǎn)數(shù).
但事實(shí)上并不完全是這樣.
C98的標(biāo)準(zhǔn)是: double類型的值是long double的子集

C++ 98 standard:
and the type long double provides at least as much precision as double. The set of values of the type float is a subset of the set of values of the type double; the set of values of the type double is a subset of the set of values of the type long double.
也就是說(shuō),long double只是定義為至少跟double一樣精度(即是可以一樣)
在wiki上的long double上找到:
On the x86 architecture, most C compilers implement long double
as the 80-bit extended precision type supported by x86 hardware (sometimes stored as 12 or 16 bytes to maintain data structure alignment), as specified in the C99 / C11 standards (IEC 60559 floating-point arithmetic (Annex F)).
為什么Linux沒(méi)有32位與64位之分?
是有32位和64位之分的。各大發(fā)行版linux中都會(huì)明確指出版本。下載ubuntu時(shí)會(huì)明確要求你選擇64位或32位的ubuntu;i386就是32位版本,x86_64為64位版本。在Shell中,可以用命令getconf LONG_BIT查看,或者命令uname -a(m)查看。
數(shù)據(jù)類型u_int32_t和int有什么區(qū)別?
驅(qū)動(dòng)開(kāi)發(fā)的原則:
能用__u32就最好用它,或者用u_int32_t之類的也可以,但不要直接用unsigned int等默認(rèn)的數(shù)據(jù)類型。
目的是讓別人明白,你這個(gè)變量占多大內(nèi)存
。原因:
你不能確定你的代碼未來(lái)只在一個(gè)平臺(tái)上運(yùn)行,它可能會(huì)被移植到非Linux平臺(tái)(確實(shí)有很多人這么做),它可能運(yùn)行在不同的CPU平臺(tái),比如64位環(huán)境,非x86環(huán)境。
因?yàn)镃語(yǔ)言中并
未明確規(guī)定int一定要占多少字節(jié)
,只是規(guī)定了long >= int >= short,所以__u32就是告訴別人,這變量占4字節(jié)。同樣的:__iomem也是能加就加,這樣當(dāng)你的驅(qū)動(dòng)被別人維護(hù)的時(shí)候,別人會(huì)明白,這塊內(nèi)存是用于IO的,可DMA的,而不是paged-memory。
說(shuō)到底,
這是一種良好的編碼風(fēng)格
,確實(shí),不加這些東西,對(duì)于編譯和運(yùn)行來(lái)說(shuō),可能是無(wú)任何影響的,但是,不寫(xiě)注釋的代碼一樣也對(duì)編譯和運(yùn)行無(wú)影響,你敢一句注釋都不寫(xiě)嗎?
驅(qū)動(dòng)中使用哪種類型最標(biāo)準(zhǔn),這個(gè)沒(méi)有正確答案,但建議是不使用C語(yǔ)言原始的數(shù)據(jù)類型(char/short/int/long),而是使用有明確字節(jié)大小的數(shù)據(jù)類型(u_int32_t/__u32/uint32_t/DWORD/UINT32均可)。保持代碼風(fēng)格的一致性即可。
Linux社區(qū)提倡開(kāi)放,并不嚴(yán)格限制開(kāi)發(fā)者必須用哪種類型,一切都只是
建議使用
。但有一種情況是例外的:開(kāi)發(fā)標(biāo)準(zhǔn)庫(kù)函數(shù),比如自己實(shí)現(xiàn)strlen,那么返回值就必須是size_t,因?yàn)闃?biāo)準(zhǔn)庫(kù)是標(biāo)準(zhǔn)的。到此,以上就是小編對(duì)于的問(wèn)題就介紹到這了,希望這3點(diǎn)解答對(duì)大家有用。
本文標(biāo)題:c語(yǔ)言打印double類型?windowsx86long
轉(zhuǎn)載源于:http://m.fisionsoft.com.cn/article/dhgeces.html


咨詢
建站咨詢
