Arduino优化 减少重复代码 例2
Example->Blink:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
编译结果:
Sketch uses 924 bytes (3%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
运行了两遍digitalWrite和delay,完全可以合并。
需要增加一个bool全局变量,再合并代码:
bool b = false;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, b);
delay(3000);
b = !b;
}
编译结果:
Sketch uses 914 bytes (2%) of program storage space. Maximum is 30720 bytes.
干掉10字节的程序空间。
关键是:bool类型,true==1,false==0,使用!操作可以互换0 false和1 true。
积少成多+由浅入深
Arduino优化 减少重复代码 例2的更多相关文章
- 减少重复代码的书写--Lombok
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 在开发中,比如我们要写一个modol 实体类 要编写 get.set 这些获取和填值的方法,这样写也没错 ...
- Effective前端5:减少前端代码耦合
什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天.由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: ...
- 编写高质量代码改善C#程序的157个建议——建议98:用params减少重复参数
建议98:用params减少重复参数 如果方法的参数数目不定,且参数类型一致,则可以使用params关键字减少重复参数声明. void Method1(string str, object a){} ...
- Metalama简介2.利用Aspect在编译时进行消除重复代码
上文介绍到Aspect是Metalama的核心概念,它本质上是一个编译时的AOP切片.下面我们就来系统说明一下Metalama中的Aspect. Metalama简介1. 不止是一个.NET跨平台的编 ...
- [Android] Android开发优化之——从代码角度进行优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的.一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其中一点,就 ...
- 代码的坏味道(14)——重复代码(Duplicate Code)
坏味道--重复代码(Duplicate Code) 重复代码堪称为代码坏味道之首.消除重复代码总是有利无害的. 特征 两个代码片段看上去几乎一样. 问题原因 重复代码通常发生在多个程序员同时在同一程序 ...
- 优化C/C++代码的小技巧
说明: 无意看到一篇小短文,猜测作者应该是一个图形学领域的程序员或专家,介绍了在光线(射线)追踪程序中是如何优化C/C++代码的.倒也有一些参考意义,当然有的地方我并不赞同或者说我也不完全理解,原文在 ...
- Random获得的随机数怎么样减少重复率
C#中的Random在获得随机数的时,如果你想要随机循环取得100个随机数则使用如下代码会出现大量的重复数字.代码如下: using System; namespace ConsoleApplicat ...
- 优化C/C++代码的小技巧(转)
源:http://www.cnblogs.com/lizhenghn/p/3969531.html 说明: 无意看到一篇小短文,猜测作者应该是一个图形学领域的程序员或专家,介绍了在光线(射线)追踪程序 ...
- 【重构】 代码的坏味道总结 Bad Smell (一) (重复代码 | 过长函数 | 过大的类 | 过长参数列 | 发散式变化 | 霰弹式修改)
膜拜下 Martin Fowler 大神 , 开始学习 圣经 重构-改善既有代码设计 . 代码的坏味道就意味着需要重构, 对代码的坏味道了然于心是重构的比要前提; . 作者 : 万境绝尘 转载请注明出 ...
随机推荐
- js判断数据类型 && 判断是否为标准json格式
/** * 1. js判断对象的好方法 * 2. 判断是否为json格式化数据 * * Author: shujun * Date: 2020-8-09 */ import {print} from ...
- 2022-3-14内部群每日三题-清辉PMP
1.开发一款银行零售业务新产品的项目正在进行中,由于团队成员缺乏激励,该项目落后于进度.项目经理应该如何激励项目团队? A.提供认可与奖励 B.使用教练和指导技能 C.委托职责 D.应用创造性的问题解 ...
- mac大航海时代4
mac大航海时代4.dmg 下载安装即可 https://590m.com/f/28636472-500476378-c957e8 (访问密码:7410)
- labwindows/cvi activex 控件无法正常使用问题解决
在进行labwindows/cvi编程时,想使用时间控件,需要在界面上点击右键的activex选项中选择Microsoft Data and Time picker control6.0(SP4).如 ...
- sequelize 分页查询
分页原理: 第一步 下面的result 可以修改:
- image test
png: jpeg: jpg: gif:
- tomcat8.5.55启动失败service tomcat start 报错
问题描述: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these e ...
- 在Jupyter Notebook 中输出 HTML
在刚开始使用 Jupyter Notebook 时,我总想使输出结果更使人满意,而不是只把结果打印出来.在我知道可以用 HTML 输出之前,我是这样输出一个表格的(数据来源:软科中国大学排名). 中国 ...
- 设置mode='out-on'导致路由切换过快路由加载报错 Failed to execute 'insertBefore' on 'Node'
原代码: 解决代码: 原因未知
- Python生态工具
Python内置小工具 1秒钟启动一个下载服务器 在实际工作中,时常会有这样的一个需求:将文件传给其他同事.将文件传给同事本身并不是一个很繁琐的工作,现在的聊天工具一般都支持文件传输.但是,如果需要传 ...