我对结构中当前的打包方案有点困惑。举这个例子
#include <iostream>
using namespace std;
struct Node
{
char c;
double d;
int s;
} Node;
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
cout << sizeof(char) << endl;
cout << sizeof(double) << endl;
cout << sizeof(int) << endl;
cout << sizeof(Node) << endl;
return 0;
}
这是输出:
Hello, World!
1
8
4
24
Program ended with exit code: 0
我知道有一定的包装方案。但是假设大小为 8。这应该是 1+8 +4 + 填充不应该是 16,但是它被报告为 24。有没有办法可以找出包装的默认值?我目前在不太旧的mac上使用xcode。