gpt4 book ai didi

c++ - 在哪里可以查看 GCC 对实现定义行为的实现?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:22 24 4
gpt4 key购买 nike

由于C++标准在很多方面都非常模糊,所以我想看看不同编译器的具体实现。目前,我想知道 GCC 是如何分配和对齐位域的。

对于 MS Visual C++ 编译器,这非常简单:有一个 nice page在关于位字段的用户手册中解释了所有开放的分配/对齐问题,甚至还有数字和示例。

我只想要 GCC 的相同信息,但它似乎要复杂得多。有一个page在 GCC 手册中仅声明“由 ABI 确定”。然后我们有一些关于ABI policy and guidelines的信息其中包含指向名为 Itanium C++ ABI 的文档的链接在 Github 上。现在,在这份文档中,我们可以找到以下内容:“位域是根据底层 C psABI 的要求分配的”。这就是我被困住的关键。搜索 C psABI 时找不到有用的站点。

谁能告诉我描述 GCC 位域实现的站点?它不可能那么复杂,不是吗?为什么 GCC 的文档往往比 Microsoft 的文档复杂得多?我使用了错误的资源吗?

最佳答案

这就是 GCC(它运行在很多很多不同的机器和操作系统上,每个都有自己关于如何做一些事情的约定,平台的 ABI)和 MS C 之间的区别,它只在一个平台上运行(本质上).但这还不是全部,还有其他领域的标准没有规定要做什么,以便给编译器编写者余地。如果平台也没有强制要求,编译器编写者可以随意选择。在同一平台上,选择甚至可能看似随机地从一个版本的编译器更改为下一个版本。编译器应该记录它的选择,但对于像 GCC 这样涵盖如此多平台的野兽来说,找到它可能是一项艰巨的任务。

关于c++ - 在哪里可以查看 GCC 对实现定义行为的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21557001/

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