C语言中使用大括号与给函数命名的正确方法(转载)

简介: 使用大括号的正确方法:在C中,使用大括号的方法无所谓对还是错——只要每个开括号后都有一个闭括号,你的程序中就不再会出现与大括号有关的问题。

使用大括号的正确方法:

在C中,使用大括号的方法无所谓对还是错——只要每个开括号后都有一个闭括号,你的程序中就不再会出现与大括号有关的问题。然而,有三种著名的大括号格式经常被使用:
Kernighan和Ritchie,Allman,Whitesmiths。下文中将讨论这三种格式。

在《C程序设计语言(The C Programming Language)》一书中,Brian Kernighan和Dennis Ritchie介绍了他们所使用的大括号格式,这种格式如下所示:
if (argc<3) {
    printf (" Error! Not enough arguments. Correct usage is ..\n" ) ;
    printf("c:>eopyfile  <source_file>  <destination_file>\n") ;
    exit (1) ;
}
else {
    open_files () ;
    while (! feof(infile)) {
             read_data ( ) ;
             write_data() ;
    }
    close files() ;
}

注意,在Kb&R格式中,开括号总是与使用它的语句在同一行上,而闭括号总是在它所关闭的语句的下一行上,并且与该语句对齐。例如,在上例中,if语句的开括号和它在同一行上,|f语句的闭括号在它的下一行上,并且与它对齐。在与if语句对应的else条件语句以及出现在程序段后部的while语句中,情况也是这样的。

下面是用Allman格式书写的同一个例子:
if (argc<3)
{
    printf("Error! Not enough arguments. Correct usage is :\n" ) ;
    printf("C:>copyfile  <source_file>  <destination_file>\n") ;
    exit(1);
}
else
{
    open_files ( );
     while (! feof(infile))
    {
             read_data ( ) ;
             write data();
    }
     close_files() ;
}
注意,在Allman格式中,每个大括号都单独成行,并且开括号和闭括号都与使用它们的语句对齐。

下面是用Whitesmiths格式书写的同一个例子:
if (argc<3)
   {
    printf("Error! Not enough arguments, Correct usage is :\n" );
    printf ("C :> copyfile<source_file><destination_file>\n." ) ;
    exit(1);
}
else
    {
    open files () ;
     while (! feof(infile))
          {
             read_data() ;
             write data();
          }
     close files () ;
    }
与Allman格式相同,Whitesmiths格式也要求大括号单独成行,但是它们要和它们所包含的语句对齐。例如,在上例中,if语句的开括号是与第一个printf()函数调用对齐的。

不管你使用哪一种格式,一定要保持前后一致——这将有助于你自己或其它人更方便地读你的程序。

给函数命名的正确方法:

函数名一般应该以一个动词开始,以一个名词结束,这种方法符合英语的一般规则。下面列出了几个命名比较合适的函数:
    PrintReports();
    SpawnUtilityProgram();
    ExitSystem();
    Initia|izeDisk():

请注意,在这些例子中,函数名都以一个动词开始,以一个名词结束。如果按英语习惯来读这些函数名,你会发现它们其实就是:
    print the reports(打印报告)
    spawn the utility program(生成实用程序)
    exit the system(退出系统)
    initialize the disk(初始化磁盘)
使用动词一名词规则(特别是在英语国家)能有效地加强程序的可读性,并且使程序看起来更熟悉。

目录
相关文章
|
16天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
26 0
|
1天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
1天前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
2天前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
7 0
|
3天前
|
C语言 Windows
C语言中的fopen与fclose函数详解
C语言中的fopen与fclose函数详解
11 1
|
3天前
|
C语言
深入理解C语言中的printf函数及数据输出
深入理解C语言中的printf函数及数据输出
13 0
|
16天前
|
程序员 C语言 开发者
C语言库函数 — 字符串函数(含模拟实现字符串函数)
C语言库函数 — 字符串函数(含模拟实现字符串函数)
35 0
|
22天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
22天前
|
机器学习/深度学习 C语言
【C语言】函数的系统化精讲(三)1
【C语言】函数的系统化精讲(三)
|
22天前
|
编译器 C语言
【C语言】函数的系统化精讲(一)2
【C语言】函数的系统化精讲(一)2