Mic*_*ick 4 c++ memory-management
如果我有这样的全局变量列表......
int a;
char b;
float c[10];
double d[3];
Run Code Online (Sandbox Code Playgroud)
我在类中列出了相同的变量序列......
class test_type
{
int a;
char b;
float c[10];
double d[3];
}
Run Code Online (Sandbox Code Playgroud)
是否保证内存中所有变量的排列是相同的.ie'b'保证在全局列表和类列表中的'a'之后立即存储?
编辑:我问,因为我想A)将数据从一个复制到另一个作为"工作批次"和B)我想检查它们之间作为工作批次的任何差异.如果主要问题的答案是"否",那么是否有人对如何解决问题有任何建议,最好尽可能保持现有代码不变.
不,我认为C++标准不保证全局变量的内存布局.
为什么不简单地使用test_type类型的全局对象而不是定义多个全局变量?
class test_type
{
int a;
char b;
float c[10];
double d[3];
};
test_type global;
Run Code Online (Sandbox Code Playgroud)
现在,使用"global"副本初始化一个新的test_type对象是件小事.