看板 C_and_CPP 關於我們 聯絡資訊
不好意思 所以是說在寫struct時,最好由小單位型別開時排嗎 像是 struct account { char id1; char id2; int age; }; 才能減少所佔用記憶體空間? ※ 引述《XYX16888 (XYX)》之銘言: : 跟上一篇的問題不太一樣 : 我用的是macbook pro xcode compiler : 應該是64bit的沒有錯 : (一) : #include <iostream> : using namespace std; : struct account : { : char id1; : int age; : char id2; : }; : int main (void) { : account x; : cout << sizeof(x) << endl; : return 0; : } : print:12 : (二) : struct account : { : long name; : char age; : }; : int main(void) { : account x; : cout << sizeof(x) << endl; : return 0; : } : printf:16 : 重點來了 64bit 以8byte為單位 : (二) 是16沒有問題 : 但是(一) 為什麼會是12呢? : 記憶體分配圖示 : ---- ---- || ---- ---- || : ^ ^^^^ ^ : chr int chr : 我的想法是這樣 但是為什麼不是16? : 感到非常疑惑@@ : 如果問題很蠢的話 請不吝給小弟我指教 感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.146.84 ※ 編輯: FAITHY 來自: 124.8.146.84 (02/25 23:07)
chingggg:你太小看 compiler 的能力了 02/25 23:27
purpose:不重要,寫到後面還在意這些,應該會被笑 02/26 00:05
FAITHY:嗯嗯 感謝指點 02/26 01:32