Constant folding 常量折叠

2023-10-20 03:32
文章标签 常量 折叠 constant folding

本文主要是介绍Constant folding 常量折叠,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一种 编译优化技术。例如:2+2   应该在编译时就处理为4
比如你有以下代码。
const   double     PI   =   3;141592653589793;
const   double   d   =   10.0;
const   double   c   =   d/2*PI;
在编译时如果使用到c就用计算的结果来代替,这就是“常量折叠”

就是编译器不想浪费 静态内存。

就是 编译优化后, 对于常量数据, 就没有对应的变量存在了, 直接操作这个常量数值   ...
比如:
const   int   X   =   5;
那么   Y   =   2*X
在优化后是   2*5,没有这个   X   的存在

这篇关于Constant folding 常量折叠的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/244359

相关文章

从零开始学习JVM(七)- StringTable字符串常量池

1 概述 String应该是Java使用最多的类吧,很少有Java程序没有使用到String的。在Java中创建对象是一件挺耗费性能的事,而且我们又经常使用相同的String对象,那么创建这些相同的对象不是白白浪费性能吗。所以就有了StringTable这一特殊的存在,StringTable叫做字符串常量池,用于存放字符串常量,这样当我们使用相同的字符串对象时,就可以直接从StringTable

C++基础:折叠表达式(C++17)

C++基础:折叠表达式(C++17) 简介语法展开 示例 简介 C++17 引入了一种新的语法特性,叫做折叠表达式,它允许编译器在模板参数包展开时进行元编程操作。折叠表达式的引入极大地简化了元编程代码,使其变得更为直观和简介。 语法 折叠表达式,简单来说,就是以二元运算符对形参包进行折叠,总共有以下四种类型: 一元右折叠一元左折叠二元右折叠二元左折叠 其对应的语法如下:

Java之常量的概念

Java之常量的概念 零基础学Java什么是常量常量的分类了解下常量池动动手练习题 零基础学Java Java学习交流 : V:study_51ctofx 什么是常量 常量:程序运行中,固定不变的量 两种表现形式: 字面常量和final修饰的常量 public static void main(String[] args){//其中 1 为字面常量,固定不变的量int

【Java String】简述String类比较和常量池内存分析

一、引出正题 String 类型对象进行比较时,我们一般使用 equals() 的方式进行值比较,但是有时候可能会出现 == 对象比较的方式。 在使用 == 比较的时候,往往是和String在JVM内存存储结构有关,这也引起了部分同学使用时的错误,那么接下来我们来详细分析一下此问题。 二、举例说明 1、new String("xx")都是在堆上创建字符串对象。当调用 intern() 方

Java虚拟机--方法区(运行时常量池)

文章引用: 深入理解Java虚拟机 https://blog.csdn.net/huangfan322/article/details/53220169 一 方法区描述 方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已经被虚拟机加载的类信息/常量//静态信息/即时编译器编译后的代码等数据.虽然Java虚拟机规范把方法区描述为堆的

golang-基础知识(变量、常量以及基础数据类型)

1. 变量 变量定义一般有以下几种方式 var name type表示定义一个名称为name,类型为type的变量var name1, name2, name3 type表示同时定义多个类型为type的变量var name type = value定义变量并初始化值var name1, name2, name3 type = value1, value2, vaule3定义多个变量并同时初始化

Android Studio任意位置折叠代码

在Android Studio中 方法块、import区、{ }大括号块 都会有自动 代码折叠的 +号按钮, 这有利于开发者只关注核心逻辑,提高开发效率。          但有时我们希望其它区域也能使用折叠功能,比如 ButterKnife的BindView区,有时十多个BindView能占用一两屏,这么多自动绑定view的代码对我关注一个Activity的核心确实没有多大作

struts2 struts.xml常用常量配置

<constant name="struts.i18n.encoding" value="UTF-8" /> 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 <constant name="struts.ui.theme" value="simple" /> 设置页面struts标签的样式     <consta

java内存分配,常量池,各种类型==比较

字符串内存分配: 首先: (1)String a="123"; (2)a="456"; String为final常量,会把字符串存入常量池,当第一步会先"123"放入常量池并分配内存地址,a为“123”的引用,即他的的内存地址为“123”的内存地址,第二步a的地址为“456”的地址      对于字符串,其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)

可以折叠Gridview

可以折叠Gridview 实现原理 1、折叠实现 重写gridview的setAdapter方法 @Overridepublic void setAdapter(ListAdapter adapter) {if (foldNm > 0) {//进行折叠adapter = new FoldViewGridAdapter(adapter, foldNm);}super.setAd