MISRA_C小记

1. TAB键统一空格数,缩进最好手动空格

2. 函数入参个数最好小于4个

参数优先放入CPU寄存器R0~R3. 超过4个则使用压栈操作,会额外占用CPU的资源(RAM空间和操作)

栈:编译器自动分配内存,使用完之后会自动释放,属于先入后出结构。

堆:手动分配内存,使用完之后需要手动释放

i = 0;

for(i++;i++;i++;i++),属于未定义行为,大多数编译器会从最右侧开始操作,结果为4,3,2,1.

3. 赋值符前后加空格

4. 函数入参过多及过长时,最好1个参数1行

5. switch case的操作开销小于if else, case的条件原则,按执行几率排序,执行几率越高的排在最前。

case后接break, 且有default判断默认情况,if判断条件内部会有逻辑操作

case后方接的必须是整形常量,const int i =0; 'i'编译器可能会处理为只读变量。

6. 变量定义一个一行

7. if () 后需换行接大括号{},不能直接接';'

猜你喜欢

转载自www.cnblogs.com/Ryan-Ni/p/12203488.html