我试图使用命名空间和结构并遇到问题。
C++
#include<iostream>
using namespace std;
namespace One
{
struct Data
{
int val;
char character;
};
}
namespace Two
{
struct Data
{
int val;
bool boolean;
};
}
void functionOne(void)
{
using namespace One;
cout << "functionOne()" << endl;
cout << "The size of struct Data : ";
cout << sizeof(Data) << endl;
}
void functionTwo(void)
{
using namespace Two;
cout << "functionTwo()" << endl;
cout << "The size of struct Data : ";
cout << sizeof(Data) << endl;
}
int main()
{
functionOne();
functionTwo();
}
Output
functionOne()
The size of struct Data : 8
functionTwo()
The size of struct Data : 8
当我将“命名空间二”的代码更改为以下内容时:
namespace Two
{
struct Data
{
char val;
bool boolean;
};
}
Output :
functionOne()
The size of struct Data : 8
functionTwo()
The size of struct Data : 2
我无法弄清楚编译器如何为结构分配内存。提前致谢。