zoukankan      html  css  js  c++  java
  • [总结]嵌入式高效C编程要点

    嵌入式高效C编程要点总结--适用于ARM相关的C语言编程

    absolute8511于2008-10-08

    1:尽量用其他运算代替除法操作。如:用X>Z*Y代替X/Y>Z比较。

    2:合并除法和求余计算。如:a/b+a%b

    3:用2的整数次幂作除数。

    4:尽量使除数为常数。

    5:关系操作最好转换成和0相关的。如:(x+y)>0,x!=0等

    6:循环应减计数到0中止,并将i!=0作为中止条件,而不是i>0。

    7:避免使用局部变量地址,如必须则应先把局部变量的值复制到另一个局部变量中。

    8:多次对同一个指针的访问,应先将其值取出到一个临时变量中。

    9:大量使用同一个全局变量时,应先将其拷贝到局部临时变量中,完成全部操作后再写回。

    10:局部变量应尽可能使用32位类型。

    11:变量定义应把所有相同类型的变量放在一起。

    12:限制函数参数在4个以内,超过时,应将多个相关参数组织在一个结构体中,用传递结构体指针来代替多个参数。

    13:使用_value_in_regs返回结构体。

    例子:typedef struct {int hi; uint lo;}int64;

              _value_in_regs int64 add64(int64 x,int64 y) {int64 res; ....... return res;}

    14:函数要先定义后调用。

    15:如果函数参数相同则其结果也相同,那么可以将此函数声明为纯函数,加_pure声明。

  • 相关阅读:
    [POJ 1050]To the Max
    P1678 烦恼的高考志愿
    P1873 砍树
    P1102 A-B 数对
    P6771 [USACO05MAR]Space Elevator 太空电梯
    P2347 砝码称重
    P1832 A+B Problem(再升级)
    P1679 神奇的四次方数
    P1877 [HAOI2012]音量调节
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/absolute8511/p/1649625.html
Copyright © 2011-2022 走看看