【转】嵌入式C语言代码优化方案】的更多相关文章

C代码优化方案 1.选择合适的算法和数据结构2.使用尽量小的数据类型3.减少运算的强度 (1)查表(游戏程序员必修课) (2)求余运算 (3)平方运算 (4)用移位实现乘除法运算 (5)避免不必要的整数除法 (6)使用增量和减量操作符 (7)使用复合赋值表达式 (8)提取公共的子表达式4.结构体成员的布局 (1)按数据类型的长度排序 (2)把结构体填充成最长类型长度的整倍数 (3)按数据类型的长度排序本地变量 (4)把频繁使用的指针型参数拷贝到本地变量5.循环优化 (1)充分分解小的循环 (2)…
C代码优化方案 原文地址:http://www.uml.org.cn/c++/200811103.asp 目录 C代码优化方案 1.选择合适的算法和数据结构 2.使用尽量小的数据类型 3.减少运算的强度 (1)查表(游戏程序员必修课) (2)求余运算 (3)平方运算 (4)用移位实现乘除法运算 (5)避免不必要的整数除法 (6)使用增量和减量操作符 (7)使用复合赋值表达式 (8)提取公共的子表达式 4.结构体成员的布局 (1)按数据类型的长度排序 (2)把结构体填充成最长类型长度的整倍数 (3…
嵌入式C语言优化小技巧 1 概述 嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域.嵌入式系统受其使用的硬件以及运行环境的限制,非常注重代码的时间和空间效率,因此选择一种合适的开发语言十分重要.目前,在嵌入式系统开发中可使用的语言很多,其中 C语言应用得最广泛.虽然用 C 语言编程具有许多优点,但基于嵌入式系统的C语言和标准 C语言又有很大区别.接下来我结合嵌入式系统的特点和自己的一些积累,讨论在程序设计中代码优化的一…
1.static关键字 这个关键字前面也有提到,它的作用是强大的. 要对static关键字深入了解,首先需要掌握标准C程序的组成. 标准C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分,也就是你的程序.一个程序只有一个副本:只读,这是为了防止程序由于意外事故而修改自身指令:       2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里.       3)非初始化数据段(bss段)——在程序中没有初始化的全局变量:内核将此段初始化为0. 注意:只有全局变量…
本节讲述内容: 1.嵌入式SQL 语言概述 2.变量声明与数据库连接 3.数据集与游标 4.可滚动游标与数据库的增删改 5.状态捕捉以及错误处理机制 (一)嵌入式SQL语言 之前我们所学的都是交互式SQL 语言:  select .. from  .. where.. 嵌入式SQL语言 表示 将SQL语言嵌入到 某一种高级语言中使用, 比如C++ ,Java, powerbuilder等 它们也称为宿主语言(host language). 复杂的检索不能用一条SQL语句完成, 需要结合高级语言中…
C# .net 语言加密方案 方案背景 当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码.桌面应用程序的 winform .Unity3d 的逻辑脚本都在使用.C# .net 具备强大的便捷特性,使得开发成本极低.而作为一款.net 语言,也有它让开发商头疼的弊病——非常容易被反编译.市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反编译出被混淆保护的C# .net 程序. 解决方案 深思自主研发了为 C# .net 语言做保护的外壳Virbox Pro…
2017-2018-1 20155205 嵌入式C语言--时钟 题目要求 基础知识 插入位(以分钟为例) 提取位(以分钟为例) 在提取分钟时,运用到了位运算,位运算有以下规律: &0 --> 清零 &1 --> 不变 |1 --> 置1 |0 --> 不变 秒占了五位,故将时间右移5位,这时我们要将它提取出来,故要将每位&1,即&0x3F. 问题解答 设置.提取小时:原理和设置.提取分钟一样,只不过这里的0X3F变为0X1F,因为小时只有五位. #d…
2017-2018-1 20155326信息安全系统设计基础>嵌入式C语言课上考试补交 PPT上的例子 已知位运算规则为: &0 --> 清零 &1 --> 不变 |1 --> 置1 |0 --> 不变 getMinutes部分 由于Seconds是0-5位,因此先右移5位将Minutes的最低位与位0对齐,再与上0000 0000 0011 1111,即0x3F,可将6-15位全部清0,获得minuts部分. SetMinutes部分 代码如下: #defi…
2017-2018-1 20155202 张旭 嵌入式C语言--时钟提取时分秒 任务要求: 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清零) 题目解答 提取位(以分钟为例) 插入位(以分钟为例) 定义地址 #define DATA_Addr 0x0C00000 #define DATA *(volatile int *)(DATA_Addr) DATA = 0x1234; 位运算有以下规律: &0 --> 清…
2017-2018-1 20155232 嵌入式C语言--时钟 任务: 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清零) 课上提交: 出错分析: 主要是因为没有分析透彻,只是一味的照搬课上讲的内容,没有搞清楚,把移位的位数搞错了.而且没有写完整,例如宏的定义等. 基础知识 提取位(以分钟为例) 插入位 课上正确代码 #define TIME_Addr 0xFFFFC0000 #define TIME *(vola…