gpt4 book ai didi

c++ - 压缩成员的引用地址不等于压缩成员的地址?

转载 作者:行者123 更新时间:2023-12-02 10:21:59 24 4
gpt4 key购买 nike

<分区>

我用 g++ 编译了这个程序。它打印出“不相等”。
如果我不使用“packed”属性,它会打印“equal”。
我不知道“打包”属性是如何导致差异的。

顺便说一下,由 clang++ 构建的可执行文件打印“等于”。

#include <iostream>

struct __attribute__ ((packed)) Packed {
char a;
int b;
int c;
char d;
};

void test(const int &i, int *ptr) {
std::cout << ((&i == ptr) ? "equal" : "unequal") << std::endl;
}

int main () {
Packed p;
p.c = 1;
test(p.c, &p.c);
return 0;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com