相关疑难解决方法(0)

为什么structof sizeof不等于每个成员的sizeof总和?

为什么sizeof操作员返回的结构尺寸大于结构成员的总尺寸?

c c++ struct c++-faq sizeof

644
推荐指数
11
解决办法
18万
查看次数

未使用的成员变量会占用内存吗?

初始化成员变量而不引用或使用它会在运行时进一步占用RAM,还是编译器只是忽略该变量?

struct Foo {
    int var1;
    int var2;

    Foo() { var1 = 5; std::cout << var1; }
};
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,成员'var1'得到一个值,该值然后显示在控制台中。但是,根本不使用“ Var2”。因此,在运行时将其写入内存将浪费资源。编译器会考虑这种情况,而只是忽略未使用的变量,还是Foo对象总是相同大小,而不管是否使用其成员?

c++ memory struct

88
推荐指数
5
解决办法
6891
查看次数

什么时候c ++ 11中的类型允许记忆?

我的问题如下:

如果我想复制类类型,memcpy可以非常快速地完成.在某些情况下允许这样做.

我们有一些类型特征:

  • is_standard_layout.
  • is_trivially_copyable.

我想知道的是当类型是"可按位复制"时的确切要求.

我的结论是,如果两个is_trivally_copyableis_standard_layout特征都为真,则类型是按位可复制的:

  1. 这正是我需要按位复制的内容吗?
  2. 是否过度约束?
  3. 它不受约束吗?

PS:当然,memcpy的结果必须正确.我知道我可以在任何情况下记忆,但不正确.

c++ memory c++11

23
推荐指数
4
解决办法
2889
查看次数

布局兼容类型的联合

看看这段代码:

struct A {
    short s;
    int i;
};
struct B {
    short s;
    int i;
};

union U {
    A a;
    B b;
};

int fn() {
    U u;
    u.a.i = 1;
    return u.b.i;
}
Run Code Online (Sandbox Code Playgroud)

是否保证fn()退货1

注:这是一个后续问题要这个.

c++ unions language-lawyer standard-layout c++17

11
推荐指数
1
解决办法
294
查看次数

标签 统计

c++ ×4

memory ×2

struct ×2

c ×1

c++-faq ×1

c++11 ×1

c++17 ×1

language-lawyer ×1

sizeof ×1

standard-layout ×1

unions ×1