c语言double(3.14是float还是double)

  • 时间:
  • 浏览:64
  • 来源:奥一装修网

4位数码管动态显示程序

Java字节码是基于堆栈的编码。这种编码方法对于解释器的设计非常方便,但同时又不利于程序分析,因此某些有效的代码优化技术无法轻松地在Java字节码上实现。 首先讨论Java字节码的特性。 Java的当前版本有大约200多个字节码指令,其中大多数是1字节指令,这就是为什么将其称为字节码的原因。一些指令是多字节或可变长度指令。对于口译员,通常在口译说明时操作这两个区域。一个是堆栈,另一个是局部变量表。例如,iload1指令将把本地变量表的插槽1中的数据放入操作数堆栈中,即* stack ++ = locals。

ptac语言分段函数

与C或其他常用编程语言不同,Java字节码的操作数类型是隐式的,显示操作的类型,并且C中的操作数类型都显示,但是操作是多态的。例如,对于C语言中的“ +”,“ +”两侧的操作数类型可以是int类型或double。上学堂程序员陈先生指出,Java字节码中的iadd指令清楚地表明要相加的两个数字必须是int类型。但是,当搁置iadd指令并直接观察操作数堆栈时,堆栈上操作数的类型是未知的。 Java字节码执行每条指令时,可以确定操作数堆栈的深度,局部变量表的大小以及它们上的操作数类型。此外,无论对特定指令执行哪个路径,都将确定操作数堆栈深度和操作数类型。 a = b + c的简单示例用于说明此翻译过程。

c语言输入AbC输出aBc

局部变量的类型是已知的。可以看出s0和s1具有与Java操作数堆栈相同的功能,以便存储临时计算结果。上面的代码可以简化为“ l1 = l1 + l2”。但是,不需要在早期阶段引入这种复杂性,并且可以通过后续优化来完成这种简化。 上面的示例实际上有一些问题。尽管存储在Java操作数堆栈和局部变量表中的数据都是类型,但是堆栈和局部变量表本身只是存储空间,并且不需要在其中存储什么类型的数据。