gpt4 book ai didi

我们可以指望 C 结构表现良好的格式吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:44 25 4
gpt4 key购买 nike

我们能否预测编译器将如何实现 C 结构?

如果我编写(对齐非常糟糕的)结构:

struct {
uint16_t a;
uint32_t b;
uint8_t c;
} s;

char *p = (char*)&s;

我能保证p[6]s.c一样吗?结构字段是否以这种最明显和规范的方式分配,以便我们可以预测每个字段在内存中的位置?

编辑: struct __attribute__ ((__packed__)) {...} s; 会在 GCC 中得到这种行为吗?

最佳答案

不,你不能。不要那样做。

您只能保证顺序,并且相同的编译器将始终执行相同的布局。

如果您需要这样的东西,请查阅您的编译器文档以了解如何启用字节打包(始终可用)并自行填充。

关于我们可以指望 C 结构表现良好的格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5131319/

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