美文网首页
C-语言项目架构和命名规范

C-语言项目架构和命名规范

作者: 牧馬放飏 | 来源:发表于2018-12-22 22:39 被阅读11次

    背景

    C语言项目架构和命名规范

    • 1.定义宏
    • 2.尽量不用全局变量
    • 3.少用全局变量
    • 4.别忘记加上static
    • 5.别忘记加上const
    • 6.明确哪些结构体、枚举、联合体、宏、常量
    • 7.让C代码带上面向对象的思想

    1.定义宏

    将用得非常多的命令或语句,利用宏将其简化。

    #ifndef TRUE
    #define TRUE  1
    #endif
    #ifndef FALSE
    #define FALSE 0
    #endif
    #ifndef NULL
    #define NULL 0
    #endif
    #define MIN(a,b)            ((a<b)?(a):(b))
    #define MAX(a,b)            ((a>b)?(a):(b))
    #define ABS(x)          ((x>)?(x):(-x))
    typedef unsigned char  uint8;                                   /* 定义可移植的无符号8位整数关键字            */
    typedef signed   char  int8;                                    /* 定义可移植的有符号8位整数关键字            */
    typedef unsigned int   uint16;                                  /* 定义可移植的无符号16位整数关键字           */
    typedef signed   int   int16;                                   /* 定义可移植的有符号16位整数关键字           */
    typedef unsigned long  uint32;                                  /* 定义可移植的无符号32位整数关键字           */
    typedef signed   long  int32;                                   /* 定义可移植的有符号32位整数关键字           */
    

    2.尽量不用全局变量

    全局很容易破坏软件的结构,增加代码的耦合度,将模糊业务代码、数据库代码、控制代码的界限,害得维护人员在阅读代码时,第一要务就是要追踪全局变量在哪里,由于设计得不好,基本项目的所有源代码文件都涉及修改了全局变量,这一追踪下来,不是一天半会能够摸索清楚你要了解的某个功能,尽管这个功能很小,你还是要看完这整个项目,太浪费时间了,不值得啊。

    3.少用全局变量

    有些项目由于硬件资源的限制,比如嵌入式开发,你不得不使用全局变量。在这种不可避免的情况下,我们只能尽量减少使用全局变量。

    4.别忘记加上static

    如果你使用到的全局变量仅仅是某个源文件(模块)使用到,别忘记给这个全局变量加上static。

    5.别忘记加上const

    如果你设计的接口(函数)有入参,而你不想修改这个入参,别忘记加上const。

    6.明确哪些结构体、枚举、联合体、宏、常量需要全局使用,哪些需要全局使用

    如果有的结构体、枚举、联合体、宏、常量仅仅是某个模块需要使用,就没必要放置在公共的头文件中

    如果结构体、枚举、联合体是需要公用的,就要考虑是否需要仅仅在公用头文件中声明,在某个源文件中

    实现,这样可以避免某些类型重复定义的错误。

    7.让C代码带上面向对象的思想

    不像C++这样即面向过程又面向对象的语言,更不像Java、C#这样完全面向对象的语言,C语言仅仅是面向过程的,但是我们可以为C语言设计的项目插上面向对象的翅膀。

    相关文章

      网友评论

          本文标题:C-语言项目架构和命名规范

          本文链接:https://www.haomeiwen.com/subject/fxnwkqtx.html