• Linux学习笔记:内核代码编码风格


    # 缩进
    使用8字符宽的缩进,使缩进更清晰。
    如果缩进超过3级,要考虑修改函数,可能过于复杂。
    case和switch对齐。

    # 断开过长的行、字符串

    # 使用括号
    除了函数,其他情况下 { 不单独占一行。

    # 命名
    不使用大小写混排的风格。
    不包含类型。
    全局变量命名要有描述性。
    局部变量命名要简短。

    # Typedef
    应该避免使用,会影响代码的可读性。

    # Function
    函数的长度与复杂度、缩进层级成正比。函数不应过长,不应由太深的缩进层级。

    局部变量的个数不能过多,小于5~10个。

    # Goto在特殊情况下可以使用

    # 注释
    清晰的代码不需要过多的注释。
    注释要说明what,而不是how。不要试图解释代码是如何工作的。
    在函数头前注释,说明what,函数体内不要有过多的注释。

    # 数据结构
    对于多个线程共享的数据,使用引用计数、Locking保护。

    引用计数:是内存管理技术。避免访问已经销毁的数据。
    Locking:保持数据的完整性。

    # Macro
    用大写字母命名。
    表达式必须用括号。
    不能包含控制流,如return。
    不能引用局部变量。
    定义多行语句时,包含在do-while语句块中。

    # 内存分配
    格式:p = kmalloc(sizeof(*p));
    这里推荐的方式和自己平时使用的不太一样:1) sizeof中没有使用类型,这样避免了不一致的可能性。2)返回指针不需要进行显式类型转换,C语言会完成从void* 到其它类型的转换。

    # inline
    避免使用inline,除非:函数小于3行,函数参数时编译时常量。
    过多使用inline会导致程序规模增大,增加了读硬盘的次数,执行效率反而降低。

    # 函数返回值的处理
    有两种返回值处理风格:
    1) error-code
    0~success, others-错误

    2) boolean
    0-false, 1-true

    使用规则:函数名称是动作、或命令,用风格1;函数名是判定,用风格2。



    # 缩进
    使用8字符宽的缩进,使缩进更清晰。
    如果缩进超过3级,要考虑修改函数,可能过于复杂。
    case和switch对齐。

    # 断开过长的行、字符串

    # 使用括号
    除了函数,其他情况下 { 不单独占一行。

    # 命名
    不使用大小写混排的风格。
    不包含类型。
    全局变量命名要有描述性。
    局部变量命名要简短。

    # Typedef
    应该避免使用,会影响代码的可读性。

    # Function
    函数的长度与复杂度、缩进层级成正比。函数不应过长,不应由太深的缩进层级。

    局部变量的个数不能过多,小于5~10个。

    # Goto在特殊情况下可以使用

    # 注释
    清晰的代码不需要过多的注释。
    注释要说明what,而不是how。不要试图解释代码是如何工作的。
    在函数头前注释,说明what,函数体内不要有过多的注释。

    # 数据结构
    对于多个线程共享的数据,使用引用计数、Locking保护。

    引用计数:是内存管理技术。避免访问已经销毁的数据。
    Locking:保持数据的完整性。

    # Macro
    用大写字母命名。
    表达式必须用括号。
    不能包含控制流,如return。
    不能引用局部变量。
    定义多行语句时,包含在do-while语句块中。

    # 内存分配
    格式:p = kmalloc(sizeof(*p));
    这里推荐的方式和自己平时使用的不太一样:1) sizeof中没有使用类型,这样避免了不一致的可能性。2)返回指针不需要进行显式类型转换,C语言会完成从void* 到其它类型的转换。

    # inline
    避免使用inline,除非:函数小于3行,函数参数时编译时常量。
    过多使用inline会导致程序规模增大,增加了读硬盘的次数,执行效率反而降低。

    # 函数返回值的处理
    有两种返回值处理风格:
    1) error-code
    0~success, others-错误

    2) boolean
    0-false, 1-true

    使用规则:函数名称是动作、或命令,用风格1;函数名是判定,用风格2。



  • 相关阅读:
    CAN器件
    团队赋能
    电子模拟开关
    名言出处
    危机管理
    隔离技术
    让CSS布局更加直观:box-sizing
    浅谈跨域以WebService对跨域的支持
    给初学者的20个CSS实用建议
    JS中eval处理JSON数据 为什么要加括号
  • 原文地址:https://www.cnblogs.com/weichsel/p/1845289.html
Copyright © 2020-2023  润新知