gpt4 book ai didi

C#/CIL : type of native int

转载 作者:太空狗 更新时间:2023-10-30 01:29:04 25 4
gpt4 key购买 nike

我正在编写一些工具来帮助验证在运行时发出的 IL。此验证的一部分涉及维护 Stack<Type>因为 OpCodes 被发出,所以 future 使用这些堆栈元素的 OpCodes 可以被验证为使用正确的类型。我对如何处理 ldind.i 感到困惑然而,操作码。

Microsoft 文档指出:

The ldind.i instruction indirectly loads a native int value from the specified address (of type native int, &, or *) onto the stack as a native int.

在 C# 中,未定义 native int,我对哪种类型最准确地表示此数据感到困惑。我如何确定它的大小,以及应该使用哪种 C# 类型来表示它?我担心它会因系统硬件而异。

最佳答案

在我看来,您最好查看 VES 的定义方式并使用专用枚举为堆栈上的类型建模,而不是使用 C# 可见类型。否则,当我们谈到浮点类型时,您会大吃一惊。

来自 MS 分区 I.pdf1,第 12.1 节:

The CLI model uses an evaluation stack [...] However, the CLI supports only a subset of these types in its operations upon values stored on its evaluation stack—int32, int64, and native int. In addition, the CLI supports an internal data type to represent floating-point values on the internal evaluation stack. The size of the internal data type is implementation-dependent.

因此,那些以及引用之类的东西是您应该跟踪的东西,我建议您使用 它的 术语使用 VES 堆栈的显式模型来做到这一点。


1 ECMA C# and Common Language Infrastructure Standards

关于C#/CIL : type of native int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54711768/

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