gpt4 book ai didi

c# - 为什么 C# -> CIL 在每条指令上都有一个标签?

转载 作者:行者123 更新时间:2023-11-30 13:19:02 25 4
gpt4 key购买 nike

在已编译的 C# 程序上使用 ILDASM.exe 时,它​​显示方法中的每条指令都有一个标签。

例如:

IL_0001:  ldc.i4.4
IL_0002: stloc.0
IL_0003: ldc.r8 12.34
IL_000c: stloc.1
IL_000d: ldc.r8 3.1415926535897931
IL_0016: stloc.2
IL_0017: ldstr "Ehsan"
IL_001c: stloc.3
IL_001d: ret

这是为什么?这样做不是效率低下还是 CIL 编译器自己优化了这些标签?

最佳答案

编译的 CIL 中不存在标签。为方便起见,它们显示在反汇编代码中。

这些特定的标签对应于指令偏移量,而手工编写的代码没有这样的限制(标签可以是任意字符串)。

关于c# - 为什么 C# -> CIL 在每条指令上都有一个标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34131396/

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