作者FAITHY ()
看板C_and_CPP
標題Re: [問題] struct 記憶體配置大小問題
時間Fri Feb 25 23:02:34 2011
不好意思
所以是說在寫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