目錄
10年積累的網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先做網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有興隆免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。一、什么是位段
二、位段的內(nèi)存分配
三、位段的跨平臺問題
四、舉例
位段的聲明和結(jié)構(gòu)體類似,但有兩個不同:
1、位段的成員必須是int、unsigned int或signed int(char其實也可以)
2、位段的成員名后邊有一個冒號和一個數(shù)字。
eg:
struct A
{
int a:2;
int b:5;
int c:10;
int d:30;
};
A就是一個位段類型
那位段A的大小是多少呢?這就不得不先講講位段的內(nèi)存分配問題。
二、位段的內(nèi)存分配1、位段的成員可以是unsigned int,signed int或char
2、位段空間上是按照需要以4個字節(jié)(int)或者1個字節(jié)(char)的方式來開辟的。
3、位段涉及很多不確定因素,位段是不跨平臺的,注重可移植的程序應(yīng)該避免使用位段。
三、位段的跨平臺問題1、int位段被當成有符號數(shù)還是無符號數(shù)是不確定的。
2、位段中大位的數(shù)目不能確定。(16位機器大16,32位機器大32,寫成27,在16位機器下就會出問題)
3、位段中的成員在內(nèi)存中從左向右分配還是從右向左分配標準尚未定義。
4、當一個結(jié)構(gòu)體包含兩個位段,第二個位段成員比較大,無法容納第一個位段剩余位時,是舍棄剩余位還是利用,這是不確定的。
四、舉例在vs2019環(huán)境下舉例:首先,int是32bit的,a占了2bit,b占5bit,c占10bit
然后,這32字節(jié)就只剩下15個bit了,不夠30bit,所以,再拿32bit給d,struct
A就總共占8字節(jié)(64bit)。
struct A
{
int a:2;
int b:5;
int c:10;
int d:30;
};
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧