相关疑难解决方法(0)

是否复制了POD类型的填充字节?

假设我有这样的POD类型:

struct A {
    char a;
    int b;
};
Run Code Online (Sandbox Code Playgroud)

在我的系统上,sizeof(A) == 8即使sizeof(char) == 1sizeof(b) == 4.这意味着数据结构有3个未使用的字节.

现在假设我们这样做

A x = ...;
A y =x;
Run Code Online (Sandbox Code Playgroud)

题:

难道是保证所有8个字节的xy将是相同的,即使是那些3分未使用的?

同样,如果我将某些A对象的底层字节转移到另一个不理解其含义或结构的程序,并将它们视为一个8字节的数组,那么其他程序可以安全地比较两个As的相等吗?

注意:在使用gcc 7的实验中,似乎会复制这些字节.我想知道这是否有保证.

c++ copy-constructor

47
推荐指数
3
解决办法
2181
查看次数

标签 统计

c++ ×1

copy-constructor ×1