自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

翻译 Chapter 8 SDCC Technical Data

公认的复杂度的行业标准是10,如果SDCC报告的圈复杂度超过10,您应该考虑简化功能逻辑。移除这类的代码有两种优点,不但可以减少程序的大小,还可以避免程序在执行中进行不相关的运算行为,减少它执行的时间。由于寄存器分配器的这种偏好,循环感应优化会导致寄存器压力的增加,这可能导致不必要的其他临时变量溢出到堆栈/数据空间中。如果您正在查看peeph*.def文件,您将看到编译到编译器中的默认规则,如果您厌倦了指定——peep-file选项,您可以在默认设置中添加自己的规则。它根据对生成的代码大小的估计做出决策。

2025-04-12 13:58:09 147

翻译 User‘s Guides for Keil C51 Development Tools-OBJECTADVANCED Compiler Directive

NOAREGS指令禁用寄存器R0-R7的绝对寄存器寻址。用NOAREGS编译的函数是独立于寄存器库的,可以在任何寄存器库中工作。此指令可用于从使用不同寄存器库的其他函数调用的函数。OBJECTADVANCED指令指示编译器在对象文件中包含链接器级程序优化的信息。此指令与OPTIMIZE指令一起使用,以缩小程序大小并降低执行速度。注意在堆栈上保存R7的不同方法。下面是同时使用NOAREGS和AREGS的源代码清单。

2025-04-08 11:14:46 170

翻译 User‘s Guides for Keil C51 Development Tools-Global Register Coloring

描述:REGFILE指令指示编译器使用寄存器定义文件进行全局寄存器优化。寄存器定义文件指定外部函数使用的寄存器。使用这些信息,编译器可以优化通用寄存器的使用。启用后,链接器生成一个寄存器定义文件,其中包含每个函数使用的寄存器表。编译器使用该表来优化寄存器的使用。您的项目将迭代地重新编译,直到无法进行进一步的寄存器优化。当启用全局寄存器着色时,编译器知道每个函数使用的寄存器。在外部函数中没有被改变的寄存器可以用来保存寄存器变量。下面的清单比较了使用全局寄存器优化和不使用全局寄存器优化生成的代码。

2025-04-08 10:39:02 196

翻译 User‘s Guides for Keil C51 Development Tools-OPTIMIZE Compiler Directive

在节省内存空间或执行时间的情况下,用简单的操作代替复杂的操作。数据覆盖:识别适合静态覆盖的数据和位段,并在内部进行标记。参数:一个介于0到11之间的十进制数,用圆括号括起来,后跟SIZE或SPEED,可选地指定代码大小或执行速度重点。Case/Switch优化:使用跳转表或跳转字符串优化涉及Switch和Case语句的代码。常量折叠:在可能的情况下,编译器执行将表达式简化为数字常量计算。简单访问优化:编译器优化8051系统中内部数据和位地址的访问。简单循环优化:用常量填充内存范围的程序循环被转换和优化。

2025-04-08 10:11:18 205

原创 java Map getOrDefault()

接口的新方法,它允许你在 Map 中查找键对应的值,如果没有找到则返回一个默认值。是如果找不到键时返回的默认值。是 Java 8 引入的。

2024-04-24 13:43:50 492 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除