日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android size_t在哪个头文件,size_t

發布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android size_t在哪个头文件,size_t 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

size_t 類型定義在cstddef頭文件中,該文件是C標準庫的頭文件stddef.h的C++版。它是一個與機器相關的unsigned類型,其大小足以保證存儲內存中對象的大小。

例如:bitset的size操作返回bitset對象中二進制位中1的個數,返回值類型是size_t。

例如:在用下標訪問元素時,vector使用vector::size_type作為下標類型,而數組下標的正確類型則是size_t。vector使用的下標實際也是size_t,源碼是typedef size_t size_type。

中文名

size_t

外文名

unsigned int定????義

在cstddef頭文件中

64位系統中

long long unsigned int

size_t來源

編輯

size_t是標準C庫中定義的,在64位系統中為long long unsigned int,非64位系統中為long unsigned int。

數據類型"socklen_t"和int應該具有相同的長度,否則就會破壞BSD套接字層的填充。POSIX開始的時候用的是size_t,Linus Torvalds(他希望有更多的人,但顯然不是很多)努力向他們解釋使用size_t是完全錯誤的,因為在64位結構中 size_t和int的長度是不一樣的,而這個參數的長度必須和int一致,因為這是BSD套接字接口標準。最終POSIX的那幫家伙找到了解決的辦法,那就是創造了一個新的類型"socklen_t"。Linus Torvalds說這是由于他們發現了自己的錯誤但又不好意思向大家伙兒承認,所以另外創造了一個新的數據類型 。

size_t使用

編輯

一個基本的無符號整數的C / C + +類型,它是sizeof操作符返回的結果類型,該類型的大小可選擇。因此,它可以存儲在理論上是可能的任何類型的數組的最大大小。換句話說,一個指針可以被安全地放進為size_t類型(一個例外是類的函數指針,但是這是一個特殊的情況下)。 size_t類型通常用于循環、數組索引、大小的存儲和地址運算。雖然size_t可以存儲一個指針,它的目的是更好地使用另一個unsigned整數類型uintptr_t。在某些情況下,使用size_t類型是更為有效,比習慣性使用無符號類型的程序會更安全。

size_t是在基于無符號整數memsize類型的C / C + +的標準庫中定義的。C語言中,此類型位于頭文件stddef.h中,而在C++中,則位于cstddef中。

size_t實現方式

編輯

在C++中,設計size_t 就是為了適應多個平臺的。size_t的引入增強了程序在不同平臺上的可移植性。size_t是針對系統定制的一種數據類型,一般是整型,因為C/C++標準只定義一最低的位數,而不是必需的固定位數。而且在內存里,對數的高位對齊存儲還是低位對齊存儲各系統都不一樣。為了提高代碼的可移植性,就有必要定義這樣的數據類型。一般這種類型都會定義到它具體占幾位內存等。當然,有些是編譯器或系統已經給定義好的。經測試發現,在32位系統中size_t是4字節的,而在64位系統中,size_t是8字節的,這樣利用該類型可以增強程序的可移植性。

size_t詳細解釋

編輯

size_t在C語言中就有了。

它是一種“整型”類型,里面保存的是一個整數,就像int、long那樣。這種整數用來記錄一個大小(size)。size_t的全稱應該是size type,就是說“一種用來記錄大小的數據類型”。

通常我們用sizeof(XXX)操作,這個操作所得到的結果就是size_t類型。

因為size_t類型的數據其實是保存了一個整數,所以它也可以做加減乘除,也可以轉化為int并賦值給int類型的變量。

類似的還有wchar_t, ptrdiff_t。

wchar_t就是wide char type,“一種用來記錄一個寬字符的數據類型”。

ptrdiff_t就是pointer difference type,“一種用來記錄兩個指針之間的距離的數據類型”。

通常,size_t和ptrdiff_t都是用typedef來實現的。你可能在某個頭文件里面找到類似的語句:

typedef unsigned int size_t;

而wchar_t則稍有不同。在一些舊的編譯器中,wchar_t也可能是用typedef來實現,但是新的標準中wchar_t已經是C/C++語言的關鍵字,wchar_t類型的地位已經和char, int的地位等同了。

在標準C/C++的語法中,只有int float char bool等基本的數據類型,至于size_t或size_type都是以后的編程人員為了方便記憶所定義的一些便于理解的由基本數據類型的變體類型。

例如:typedef int size_t;定義了size_t為整型。

size_t示例代碼

編輯

int?i;//定義一個int類型的變量i

size_t?size?=?sizeof(i);//用sizeof操作得到變量i的類型的大小

//這是一個size_t類型的值

//可以用來對一個size_t類型的變量做初始化

i?=?(int)size;//size_t類型的值可以轉化為int類型的值

char?c?=?'a';//c保存了字符a,占一個字節

wchar_t?wc?=?L'a';//wc保存了寬字符a,占兩個字節

//注意'a'表示字符a,L'a'表示寬字符a

int?arr[]?=?{1,2,3,4,5};//定義一個數組

int?*p1?=?&arr[0];//取得數組中元素的地址,賦值給指針

int?*p2?=?&arr[3];

ptrdiff_t?diff?=?p2-p1;//指針的減法可以計算兩個指針之間相隔的元素個數

//所得結果是一個ptrdiff_t類型

i?=?(int)diff;//ptrdiff_t類型的值可以轉化為int類型的值

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android size_t在哪个头文件,size_t的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。