Re: [問題] struct 記憶體配置大小問題
印象中這個跟compiler或是cpu都有關係
舉個比較一般32bit的CPU吧
應該會是 4 bytes 排列
在傳遞的時候也是4bytes再傳
所以如果將這個structure寫成
struct account
{
char id1;
char id2;
char reserved1;
char reserved2;
int age;
};
會比較好
若有錯誤還請指教
※ 引述《FAITHY ()》之銘言:
: 不好意思
: 所以是說在寫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: 203.73.6.115
→
02/25 23:27, , 1F
02/25 23:27, 1F
→
02/26 01:33, , 2F
02/26 01:33, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章