• C语言编码风格 样例


          C语言程序各种各样的编码风格,我比较推崇的一种是K&R 书上的模式。下面是从《Unix Network Programming》上抄的一个样例,可以参看一下书写格式:

      1 /* This is a C program templete.
      2  */
      3 #include "unp.h"
      4
      5 int main(int argc, char **argv)
      6 {
      7     char *ptr, **pptr;
      8     char str[INET_ADDRSTRLEN];
      9     struct hostent *hptr;
     10
     11     while (--argc > 0) {
     12         ptr = *++argv;
     13         if ( (hptr = gethostbyname(ptr)) == NULL) {
     14             err_msg("gethostbyname error for host: %s: %s",
     15                     ptr, hstrerror(h_errno));
     16             continue;
     17         }
     18         printf("official hostname: %s\n", hptr->h_name);
     19
     20         for (pptr = hptr->h_aliases; *pptr != NULL; pptr++)
     21             printf("\talias: %s\n", *pptr);
     22
     23         switch (hptr->h_addrtype) {
     24             case AF_INET:
     25                 pptr = hptr->h_addr_list;
     26                 for ( ; *pptr != NULL; pptr++)
     27                     printf("\taddress: %s\n",
     28                             Inet_ntop(AF_INET, *pptr, str, sizeof(str)));
     29                 break;
     30
     31             default:
     32                 err_ret("unknown address type");
     33                 break;
     34         }
     35     }
     36     exit(0);
     37 }

    1、程序定义写在同一行。有人把返回值单独写在一行,不过我比较喜欢在一行里写的: int main(int argc, char **argc);

    2、函数体的大括号另起一行,如本例中第6行的样子。

    3、数据定义与代码中间有一空行,如本例第10行。

    4、while 语句, for 语句, if 语句后面的括号与while 或者 for 之间有一个空格。

    5、循环体 或者 条件判断语句 之后的大括号,一个写在 while 这样的语句之后,一个写在最下面。如本例中第13 行 到 17行。

    6、如果if 语句中有赋值的情况,则赋值的括号与最外面的括号之间有一个空格。如本例中第13行,if ( (hptr = …) == NULL)这个语句。

    7、如果循环体之内只有一句话,那么可以写大括号也可以不写。

  • 相关阅读:
    最优贸易 NOIP 2009 提高组 第三题
    Think twice, code once.
    luogu P1378 油滴扩展
    codevs 1002 搭桥
    codevs 1014 装箱问题 2001年NOIP全国联赛普及组
    洛谷P2782 友好城市
    洛谷P1113 杂务
    [HDU1848]Fibonacci again and again
    [POJ2420]A Star not a Tree?
    [SCOI2010]生成字符串
  • 原文地址:https://www.cnblogs.com/wangshuo/p/2025232.html
Copyright © 2020-2023  润新知