代码优化的小知识点

编译原理部分知识点总结 第一章 引论 翻译程序:能够把一种语言程序(源语言)转换成另一种语言程序(目标语言),而后者和前者在逻辑上是等价的。 编译程序:把某一种高级语言程序等价地转换成另一种低级语言程序的程序。 解释程序:不产生目标程序,翻译源程序的一条条语句后直接执行,边解释边执行源程序本身。 编译程序的工作过程一般可划分为五个阶段:①词法分析②语法分析③语义分析与中间代码生成④优化⑤目标代码生成 编译程序的结构:①词法分析器(扫描器):输入源程序,进行词法分析,输出单词符号 ②语法分析器(分析器):对单词符号进行语法分析,识别 阅读详情

1  for (int i=count-1; i!=0; i--)  比较好

要说效率,有一点可以让1和0不同:
for (int i=count-1; i!=0; i--)
比
for (int i=count; i!=1; i--)
可能会快一些,因为大多数的CPU指令都有直接判断是否为0的。


2 为什么大多数编程语言中的数组都是从0开始计数的,比从1开始计数有什么好处?


众所周知,C语言的数组是直接操作内存,那我们肯定得从内存的寻址开始说起:
以“以行为主序”的分配为例:设数组的基址为LOC(a c1 c2),每个数组元素占据l 个地址单元,那么aij 的物理地址可用一线性寻址函数计算:
LOC(aij)=LOC(a c1 c2)+( (i- c1) *( d2 - c2 + 1)+ (j- c2) )*l
推广到一般的三维数组:A[c1..d1] [c2..d2] [c3..d3],则aijk 的物理地址为:
LOC(i,j,k)=LOC(a c1 c2 c3)+( (i- c1) *( d2 - c2 + 1)* (d3- c3 + 1)+ (j- c2) *( d3- c3 + 1)+(k- c3))*l
显然,此处的c1 c2 c3 为0 会大大简化计算有木有啊!!越是多维数组效果越明显
这对于计算机寻址计算来说显然好处是大大的啊
这就是为什么最早C语言的数组起始都是0
至于什么其他的原因觉得美啊什么的都是后来人们YY的

20251121更新纷玩岛 【代码】20251121更新纷玩岛。 阅读详情

相关推荐

Halcon像素比例标定(误差大)-相机标定

一种简易标定: 像素比例标定,如果需要精确一些则需要在高度和宽度上都需要计算,然后求出比例系数。需要高精度标定板和相机,以及多次标定才能达到稳定的状态,这种标定简单,但是误差大。 read_image (Img0008, 'D:/00项目代码/000视觉软件/02Halocn算法20190501/04测量20190424/07_比例计算测量标定/IMG0008.jpg') rgb1_to_...

SSSS的博客 3984

代码优化,常见总结

用final关键字修饰类,直接声明其中方法不能被重写,提高jvm解析效率 尽量重用对象,建设对象创建 尽可能使用局部变量,局部变量用完直接销毁,节省空间 及时关闭流,避免不必要的资源占用 尽量减少对变量的计算 尽量使用懒加载的策略,什么时候用到再加载 如果能估计要添加数据的多少,直接声明集合的长度,避免集合重新计算分配空间,消耗性能 常量和变量比较,常量放在前面 不要在foreac

一个程序猿 2146

实战解析:从Innovus到Calibre的LVS错误排查全流程

本文详细解析了从Innovus到Calibre的LVS错误排查全流程,涵盖物理验证关键步骤与工具链协同。通过实战案例分享,重点解决器件不匹配、连接性错误等常见问题,并提供GDS导出规范、网表修正策略等实用技巧,帮助工程师高效完成芯片设计物理验证。

9o8p7i6u5y的博客 1034

微信小程序性能优化方案——让你的小程序如此丝滑

微信小程序如果想要优化性能,有关键性的两点: 提高加载性能 提高渲染性能 接下来分别来介绍一下: 提高加载性能 首先,问一个问题,当用户点击小程序后发生了什么? 上图中的三个状态,我们经常遇到,它们分别对应小程序的下面三个状态: 有三个点的白屏(左侧): 下载代码包的阶段 没有三个点的白屏(中间): 业务代码注入和渲染的阶段 加载中(右边): 业务代码中异步请求数据 总的来说,小程序呈现到用...

weixin_34367257的博客 1万+

AI落地困局与破局者FDE:从技术神话到价值实干的战略转型

AI落地困局与破局者FDE:从技术神话到价值实干的战略转型 当前AI企业级应用面临三大核心挑战:业务场景深度非标化、技术落地"最后一公里"困局、以及市场竞争焦点转向实用价值。前线部署工程师(FDE)作为破局关键,通过技术-业务-产品三维交汇的复合能力,将AI从实验室推向生产环境。FDE不仅是技术架构师,更是业务价值挖掘机和产品进化传感器,通过"碎石路-高速公路"双循环模式,将定制化需求沉淀为可复用的平台能力。这种模式颠覆了传统SaaS的销售逻辑,形成基于价值的J型增长

随笔记录-分享&记忆 3990

Qt 5.15.2静态编译避坑实录:MinGW 32位版从源码到Creator配置的全流程踩坑总结

本文详细介绍了Qt 5.15.2 MinGW 32位版本的静态编译全流程,包括环境准备、配置参数优化、编译过程监控及安装后配置。重点解决了静态编译中的常见问题,如参数顺序敏感、路径引号问题等,并提供了性能对比实测数据,帮助开发者高效完成静态编译。

weixin_26749245的博客 271

小程序代码体积优化

微信小程序在发布的时候,对提交的代码有 2 MB 大小的限制。开发之前就需要提前有个心理准备。由于我也是第一次做小程序开发代码大小就超过了2MB,开发者工具都无法预览了,这就很尴尬了。我自己的优化代码积的方式也不多,如果你有更好的方法,可以给我一些指导,感激不尽哦。 1.不要引用本地图片或者图标,最好是从服务...

weixin_34387284的博客 1699

【ORB_SLAM系列4】—— 一文搞定如何在Ubuntu20.04中安装运行ORB_SLAM3(包含ROS版本和非ROS版本)

ORB-SLAM3是一款基于特征点的实时单目SLAM系统,是SLAM领域的研究热点之一。它的核心算法是结合了ORB特征点提取和描述子匹配、单目RGB相机的深度估计、运动估计和地图优化等步骤,能够在实时性和精度之间取得平衡,适用于各种环境下的定位和建图任务。在各种应用领域都有广泛的应用。本教程主要是介绍了关于在ubuntu20.04中运行ORB_SLAM3的所有依赖的库的安装过程,和所遇到的一些报错的解决方法。有什么问题,可以评论区里面交流讨论

2401_82458959的博客 5039

Javascript代码优化的8个知识点

本篇文章给大家分享了关Javascript代码优化的8点总结,希望我整理的内容能够帮助到大家。写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 本文将详细介绍JS编程风格的几个要点 松耦合 当修改一个组件而不需要更改其他组件时,就做到了松耦合1、将JS从CSS中抽离:不要使用CSS表达...

weixin_34198881的博客 393

SuperMap iDesktop 9D三维倾斜摄影数据处理

OSGB格式的三维倾斜摄影数据进入时空大数据平台之前需要进行数据优化和格式转换

weixin_43204897的博客 1131

大模型微调部署实战及类GPT工具的高效使用

本文主要介绍了专栏《大模型微调部署实战及类GPT工具的高效使用》的核心内容,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 专栏亮点 3. 你的收获 4. 详细目录

herosunly的博客 22万+

【编译原理】编译原理知识点汇总·代码优化

为什么打算开始这一系列的文章——编译原理🎄🎄其实本学期开始就一直想持续更新,陆陆续续主要更新了实验部分。正好趁着快要考试,便和大家一起花费几天的时间回顾编译原理的知识点。目前,​本来没有想处理代码优化和目标代码生成部分,但是考虑到完整性还是选择肝一肝更新完整祝大家都能取得好成绩呀~~🥰🥰英文名:Compilers: Principles,Techniques,and Tools (龙书)🦖作者:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman。

十二月的猫 2199

ESP32网络开发实例-开发环境搭建

NodeMCU-ESP-32S开发环境搭建 NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDE ESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。 此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低

视觉与物联智能 3781

Javascript代码优化的8个知识点,分享web前端资料

篇文章给大家分享了关Javascript代码优化的8点总结,希望我整理的内容能够帮助到大家。写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 本文将详细介绍JS编程风格的几个要点 松耦合 当修改一个组件而不需要更改其他组件时,就做到了松耦合 1、将JS从CSS中抽离:不要使用CSS表达式 //不好的做法 .box{width...

weixin_45396666的博客 338

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

c++ 代码优化知识点

头文件尽量不要在头文件include,头文件中前向声明 cpp文件中include 参见: 减少与关联模块的耦合技巧(c++) 函数作为void*回调函数传入,void *user可以传入this,回调函数中可以使用this指针调用类中成员函数 新开线程中一定要注意使用sleep,不休眠会导致线程占用CPU过高,可能导致函数调用不到 ...

amin_hui的博客 153

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java基础——找出10000以内的所有质数(知识点:二重循环,代码优化)

问题:10000以内的质数有哪些? 知识点: 思路:不能被小于根号内的所有质数整除,则为质数;减少循环次数 int count=0;//计数换行 int circle = 1;//循环次数 int[]arr = new int[5000];//质数容器 arr[count++]=2; for (int i = 3; i <=10000 ; i+=2,circle++) { boolean isPrime = t

小小鱼 1132

ROS编程: 重要的代码优化知识点记录(1)

订阅多个话题并对其进行同步处理 本小节针对在ROS节点中需要订阅两个及两个以上的话题时,需要保持对这两个话题数据的同步,且需要同时接收数据一起处理然后当做参数传入到另一个函数中; 研究背景:realsenseT265 和 realsense D435 都有IMU数据,但是这两个传感器都将imu的数据拆开进行发布了,区分了线加速度和角加速,而在有一些场合我们需要合并使用; 详细...

weixin_30436891的博客 680

数十种嵌入式 C 语言代码优化的经验和方法_嵌入式代码优化方案(1)

因此,在代码优化时,我们的座右铭应该是确保内存使用和执行速度两方面都得到优化。

2401_85015172的博客 963

Java知识点汇总

在Java学习尤其是笔试面试中,经常遇到这些知识点 Java中泛型的本质Java中静态变量的适用场景Java类加载原理及类加载器Java中对Clone的理解Java中HashMap的实现Java中Collection和Collections的区别Java数组浅析Java代码

shuimuzhiyuan的专栏 291

编译原理前四章知识点

词法分析 (Scanning)是编译的第一个阶段。从左到右逐字符读取源代码,将字符组合成有意义的词法单元 (Tokens)。

weixin_74458697的博客 270

Android 程序员必须知道的 53 个知识点

Android 程序员必须知道的 53 个知识点 1. android 单实例运行方法 我们都知道 Android 平台没有任务管理器,而内部 App 维护者一个 Activity history stack 来实现窗口显示和销毁,对于常规从快捷方式运行来看都是 startActivity 可能会使用 FLAG_ACTIVITY_NEW_TASK 标记来打开一个新窗口,比如 Lau

ThomsonKang的博客 790
上一篇: 互联网——降级论
下一篇: mpi+openmp程序需要注意事项
crazyhacking
博客等级 码龄15年 299粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值