C語言那些小事 sizeof補齊

2021-06-02 07:55:46 字數 821 閱讀 5099

sizeof定義:用於計算資料型別所佔的位元組數。ok,說道資料型別所佔位元組數,那就總結下:

char  字元型 在記憶體佔乙個位元組,表示範圍 0~2的7次方

int 整形 在記憶體佔四個位元組 ,表示範圍-2的31次方到2的31次方

float 單精度型別浮點型 在記憶體佔 4個位元組,表示範圍 7位有效數字

void 空值 在記憶體佔0位元組 ,無值

double  在記憶體佔8個位元組,絕對值範圍10(-37)~10(38)

言歸正傳,接著說sizeof。

sizeof可以用於資料型別也可以用於變數,比如sizeof(int)就是4個位元組;再比如char a;sizeof (a)是1位元組。

好,下面看個程式:

#include

struct x;

void main()

printf("%d",sizeof(struct x));

答案16.為什麼呢?補齊原則。有些人可能認為答案是10,如果那樣的畫系統會乙個位元組 乙個位元組取,效率太低了,為了提高效率char b要與int a一樣,補4個位元組,

後面同理。問題來了,如果是struct x;答案就是12啦,第二個char補4個位元組,自己用乙個剩下3個,後面char照樣可以使用前面1個位元組。但後面int需要4個位元組,剩餘2個位元組不能滿足了,所以需要額外開4個位元組。好了答案12出來了。還有個實驗就是structx;答案是8.從中我們可以看出,系統從前向後檢視找到位元組數最大的,然後從頭補齊,第乙個char4個位元組,後面兩個char享受前面剩餘3個位元組中的2個,後面int d位元組開4個位元組。

以上是個人看法,可能有些不專業,希望看到此篇文章朋友多多交流,提出寶貴的想法。

HTTP那些小事

這是一篇資訊整理文章,可以當作工具來看 http全稱是超文字傳輸協議,構建於tcp之上,屬於應用層協議。請求或響應在傳輸途中,遭攻擊者攔截並篡改內容的攻擊被稱為中間人攻擊 man in the middle attack,mitm https是在通訊介面部分用 tls transport layer...

const的那些小事

關於const 為什麼需要const?請看以下語句 for int index 0 index 512 index 在此語句中有兩個問題 1 512這個常量含義不明確,也並不清楚index與512比較有什麼作用 2 假如在程式中多次使用到512這個常量時,在後來的工作需要把512改為111的話修改的...

談談React那些小事

而對於react的開發者來說,如何利用react構建現代化的前端專案,產出高質量的前端 才是學習react的重點。所以本文就我自己平時利用react開發專案的經驗和個人見解,來談談在react專案中需要了解和容易忽略的 小事 俗話說 千里之堤毀於蟻穴 在react開發中我們不能忙於進度而忽視了細節。...