zoukankan      html  css  js  c++  java
  • 《C语言深度解剖》学习笔记之函数

    第6章 函数

    1.编码风格

    【规则6-1】每一个函数都必须有注释

    【规则6-2】每个函数定义之后以及每个文件结束之后都要加若干个空行

    【规则6-3】在一个函数体内,变量定义与函数语句之间要加空行

    【规则6-4】逻辑上密切相关的语句之间不加空行

    【规则6-5】复杂的函数中,在分支语句,循环语句结束之后需要适当的注释

    【规则6-6】不要随意删除别人的代码

    【规则6-7】用缩行显示程序结构,缩进量同意使用4个字符

    【规则6-8】同层次的代码在同层次的缩进层

    【规则6-9】代码行最大长度控制在80个字符以内

    【规则6-10】长表达式要在低优先级操作符处划分新行,操作符放在新行之首(以便突出操作符)

    if((very_longer_variable1 >= very_longer_variable2)         
               &&(very_longer_variable3 <= very_longer_variable4)
               &&(very_longer_variable5 <= very_longer_variable6))
               {
                     //code
                }

    【规则6-11】用正确的反义词组命名具有互斥意义的变量或相反动作的函数

    【规则6-12】用括号表达操作顺序

    【规则6-13】不要编写太复杂的表达式

    【规则6-14】不要编写多用途的表达式

    【规则6-15】原则上尽量少使用全局变量,因为它的生命周期太长

    【规则6-16】参数命名恰当,顺序合理

    【规则6-17】如果参数是指针,且仅作输入参数作用,则应在类型前加const,防止指针在函数体内被修改

    【规则6-18】不要省略函数的返回类型,如果函数没有返回值,则应声明为 void。如果缺省返回值类型,编译器默认为int

    【规则6-19】函数入口处,对函数参数的有效性进行检查

    【规则6-20】return语句不可返回指向“栈内存”的“指针

    【规则6-21】相同的输入产生相同的输出。尽量避免函数带有记忆功能,少用static局部变量

    【规则6-22】数组的大小应该显式声明

    2.函数递归

     1 void fun(int i)
     2 {
     3     if (i>0)
     4     {
     5         fun(i/2);
     6     }
     7     printf("%d
    ",i);
     8 }
     9 int main()
    10 {
    11     fun(10);
    12     return 0;
    13 }

    上面的递归应该展开为如下的形式:

    void fun(int i)
     {
          if (i>0)
          {
              fun(i/2);
              if (i/2>0)
               {
                fun(i/4);
                    {
                    }
                    printf("%d
    ",i/2);
                }
                printf("%d
    ",i/4);
              
          }
          printf("%d
    ",i);
      }
  • 相关阅读:
    新的开始
    0基础学习ios开发笔记第二天
    0基础学习ios开发笔记第一天
    Linux内核中SPI/I2c子系统剖析
    Linux内核之mmc子系统-sdio
    系统调用和中断处理的异同(以Linux MIPS为例)
    开始lisp的旅程
    Linux kernel驱动相关抽象概念及其实现 之“bus,device,driver”
    Linux kernel驱动相关抽象概念及其实现 之“linux设备模型kobject,kset,ktype”
    /etc/udev
  • 原文地址:https://www.cnblogs.com/love-u/p/3286791.html
Copyright © 2011-2022 走看看