`
huangxiaoshi8896513
  • 浏览: 8657 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

代码风格(一)注释、头文件、宏定义

 
阅读更多
 

做程序员已经两年多了,感觉代码风格很重要,所以决定抽点时间定制一下自己的代码风格。

参考文档:http://learn.akae.cn/media/ch09.html

代码风格的重要性:

1、  代码风格是一个规范,编写代码的时候就有了规矩,有规矩应该是成熟的标志。

       就像是一个人到了一定的年龄,做人处事的时候就有了自己原则一样。

2、  提高编程质量。优秀的代码规范可以使程序员与代码交流的时候,会发生共鸣。

....................................................................

4、  美观。爱美之心,人皆有之。

5、  此规范是针对自己的编程习惯和环境,请大家多提意见共勉之。

编程环境简介:

编程语言:Linux C

编辑器:vim

一、注释

1、文件注释--文件说明
  /*
  * The revision control tag appears first, with a blank line after it.
  * Copyright text appears after the revision control tag.
  */ 


2、单行注释
  /* Most single-line comments look like this. */
 

3、多行注释
 /*
  * Multi-line comments look like this.  Make them real sentences.  Fill
  * them so they look like real paragraphs.
  */


 二、头文件

1、重复包含保护
 #ifndef _SYS_SOCKET_H_
 #define _SYS_SOCKET_H_
 /*
  * Contents of #include file go between the #ifndef and the #endif at the end.
  */
 #endif /* !_SYS_SOCKET_H_ */
 
2、头文件分类,头文件类之间隔一个空行

系统头文件先行,系统头文件也可分类,依据个人习惯。同一类的头文件依据首字母排序。
 #include  <sys/types.h>            /* Non-local includes in brackets. */ 


 #include  <net/if.h>
 #include  <net/if_dl.h>
 #include  <net/route.h>
 #include  <netinet/in.h>
 #include  <protocols/rwhod.h> 

 
 #include  <assert.h>
 #include  <errno.h>
 #include  <inttypes.h>
 #include  <stdio.h>
 #include  <stdlib.h>

 
 #include  <paths.h> 
  
 #include "pathnames.h"              /* Local includes in double quotes. */


三、main函数 
 main()函数应该在所出现文件的顶部,所用到的同模块函数可做如下声明。


 static char *function(int, int, float, int);
 static int dirinfo(const char *, struct stat *, struct dirent *,
                struct statfs *, int *, char **[]);
 static void usage(void);


 int main(int, char *[]);


 四、宏定义

宏名称必须大写。

1、多行宏定义格式
 #define  MACRO(v, w, x, y)                           \
 do {                                                             \
      v = (x) + (y);                                            \
      w = (y) + 2;                                             \
 } while (/* CONSTCOND */ 0)
 

2、单行宏定义格式
 #define  DOUBLE(x) ((x) * 2)
 
 五、枚举变量定义格式
 enum enumtype {
      ONE,
      TWO
 } et;
 
 六、结构体定义

1、遵循对其原则,节省空间

2、变量名具有提示作用
 struct foo {
      struct foo *next;                     /* List of active foo */
      struct mumble amumble;        /* Comment for mumble */
      int bar;
      unsigned int baz:1,                /* Bitfield; line up entries if desired */
                  fuz:5,
                  zap:2;
      uint8_t flag;
 };
 struct foo *foohead;                    /* Head of global foo list */
 
 七、typedef 结构提别名应该和结构体同名,且大写。
 typedef struct BAR {
      int level;
 } BAR;

具体:http://www.verydemo.com/demo_c101_i43801.html

分享到:
评论

相关推荐

    google C++ 风格指南 - 中文版

    7.1. 注释风格 7.2. 文件注释 7.3. 类注释 7.4. 函数注释 7.5. 变量注释 7.6. 实现注释 7.7. 标点, 拼写和语法 7.8. TODO 注释 译者 (YuleFox) 笔记 8. 格式 8.1. 行长度 8.2. 非 ASCII 字符 8.3. 空格...

    C语言编程要点

    9.8. 为什么用const说明的常量不能用来定义一个数组的初始大小? 145 9.9. 字符串和数组有什么不同? 145 第10章 位(bit)和字节(byte) 147 10.1. 用什么方法存储标志(flag)效率最高? 147 10.2. 什么是“位屏蔽(bit ...

    你必须知道的495个C语言问题

    例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我...

    《你必须知道的495个C语言问题》

    例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 11  1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针...

    C 语言编程常见问题解答.chm

    9.8 为什么用const说明的常量不能用来定义一个数组的初始大小? 9.9 字符串和数组有什么不同? 第10章 位(bit)和字节(byte) 10.1 用什么方法存储标志(flag)效率最高? 10.2 什么是“位屏蔽(bit masking)”...

    C语言FAQ 常见问题列表

    例如定义一个包含 N 个指向返回指向字符的指针的函数的指针的数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了。 o 2.9 main() 的正确定义是什么? void main() 正确吗? o 2.10 对于没有...

    你必须知道的495个C语言问题(PDF)

    1.6 我似乎不能成功定义一个链表。我试过typedef struct f char *item; NODEPTR next; g *NODEPTR; 但是编译器报了错误信 息。难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常...

    编程高手箴言.rar

    内容涵盖了从认识CPU、Windows运行机理、编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题的认知过程和透彻的分析,以及优秀和精彩的编程经验。 性思维(2) 第2章认识...

    编程高手箴言(推荐)

    第5章 代码的规范和风格 220 5.1 环境的设置 220 5.1.1 集成环境的设置 220 5.1.2 TAB值的设置 221 5.1.3 编译环境的设置 222 5.1.4 设置herosoft.dsm宏 224 5.2 变量定义的规范 227 5.2.1 变量的命名规则 227 5.2.2...

    编程高手箴言(中文完整版)(13M)

    内容涵盖了从认识CPU、Windows运行机理、编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题的认知过程和透彻的分析,以及优秀和精彩的编程经验. 目录: 第1章 程序...

Global site tag (gtag.js) - Google Analytics