`
pipal
  • 浏览: 165875 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

关于C语言中的do{}while(0);使用

阅读更多
以前在群里有人问do{}while(false)有什么用,有人回答,是为了格式的工整,当时并没怎么理解,后来有了慢慢的体会。以下我自己写的一个小程序用到了这个结构。
以前写程序,当发生错误时都是直接用exit(int)或者return(int)来中止错误,现在这个结构也可以达到这个目的,并且优于前者。当你并不想直接中止程序时,这个结构用处就很大,这在大型的编程里是经常见到的。
/**
*The program is to read msg from filename argv[1] && print to the CRT
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FREEIF(PTR) {if (PTR) {free(PTR);PTR=NULL;}}
#define CLOSEIF(PTR) {if (PTR) {free(PTR);PTR=NULL}}
#define PRTMSG(MSG)	printf("%s\n",(MSG));

void
prtUsage (const char *str)
{
  printf ("Usage:%s inFile\n", str);
}

int
main (int argc, char **argv)
{
  char *ptr = NULL;
  FILE *fin = NULL;
  int iLen = 0;
  do
    {
      if (2 != argc)
	{
	  prtUsage (argv[0]);
	  break;
	}
      if (!(fin = fopen (argv[1], "r")))
	{
	  perror ("fopen err:");
	  break;
	}

      fseek (fin, 0L, SEEK_END);
      iLen = ftell (fin);
      rewind (fin);
      if (!(ptr = (char *) malloc (sizeof (char) * (iLen + 1))))
	{
	  perror ("malloc err:");
	  break;
	}
      memset (ptr, 0, iLen + 1);
      fread ((void *) ptr, iLen, 1, fin);
      PRTMSG (ptr);
    }
  while (0);
  CLOSEIF (fin);
  FREEIF (ptr);
  return 0;
}


0
0
分享到:
评论
5 楼 pipal 2010-03-01  
night_stalker 写道

另外如果纯粹为了层次分明,直接加个花括号 { .... } 就行了。

看看3楼的帖子,很好地回答了你的问题。
4 楼 pipal 2010-03-01  
RednaxelaFX 写道
这种用法在宏里也会见到,例如这样


里面的例子挺好的,但你写的宏我还是没看明白。
3 楼 RednaxelaFX 2010-02-28  
这种用法在宏里也会见到,例如这样
2 楼 night_stalker 2010-02-27  

另外如果纯粹为了层次分明,直接加个花括号 { .... } 就行了。
1 楼 Jonney 2010-02-21  
好办法

相关推荐

    C语言初学dowhile语句(对输入数字字符,特殊符号等,进行统计)[定义].pdf

    C语言do-while语句的应用和实现 在程序设计中,循环语句是非常重要的一部分,C语言中的do-while语句是一种常用的循环语句形式。下面我们将通过一个实验报告,了解do-while语句的定义、应用和实现。 do-while语句的...

    C语言实现求1+2+3+……+100的和,要求分别用while、do while、for循环实现。.txt

    C语言实现求1+2+3+……+100的和,要求分别用while、do while、for循环实现。.txt

    c语言while、do-while、for语句_c语言循环结构程序设计方法_源码

    本主题将深入探讨while、do-while和for三种基本的循环语句,以及它们在程序设计中的应用。 首先,while循环是最基础的条件循环。它的语法结构如下: ```c while(条件) { // 循环体 } ``` 在这个结构中,"条件...

    c语言实现while循环.zip

    这里我们将深入探讨C语言中的while循环的工作原理、语法结构以及如何使用。 ### while循环的基本语法 while循环的基本语法如下: ```c while(条件){ // 循环体(当条件为真时执行的代码) } ``` 这里的`条件`是...

    C语言23:用do-while语句控制P0口8位LED流水点亮.rar

    在本教程中,我们将深入探讨如何使用C语言的do-while循环来控制微控制器的P0端口,实现8位LED流水点亮的效果。这个实践项目是C语言学习过程中的一个经典例子,它不仅有助于理解控制流程语句的实际应用,还能让我们...

    DO-WHILE语句的翻译程序设计

    输入一个DO-WHILE的语句,进行词法分析,词法分析器利用超前搜索,状态转换等方法,将源程序转化成为一个一个的单词符号二元式,如果词法分析无误,则进入语法分析部分,使用简单优先法进行文法分析,为每个终极符与非终极符...

    C语言程序设计-dowhile语句.pptx

    在C语言中,`do-while`语句是一种循环控制结构,它允许程序至少执行一次循环体,然后再根据条件判断是否继续执行。这种循环结构在处理需要确保至少执行一次循环体的情况时非常有用。 `do-while`语句的基本语法如下...

    290-用do-while语句控制P0口8位LED流水点亮(51单片机C语言实例Proteus仿真和代码)

    290-用do-while语句控制P0口8位LED流水点亮(51单片机C语言实例Proteus仿真和代码)290-用do-while语句控制P0口8位LED流水点亮(51单片机C语言实例Proteus仿真和代码)290-用do-while语句控制P0口8位LED流水点亮(51...

    C语言中do-while语句的2种写法示例

    C语言中do-while语句的2种写法示例 在C语言中,do-while语句是一种特殊的循环结构,它可以使程序至少执行一次循环体,然后再次判断条件是否满足。在本文中,我们将通过两个示例程序,介绍C语言中do-while语句的2种...

    C语言编程技术实践 while和do while语句教学单元设计.doc

    本教学单元主要关注的是两种常见的循环语句:`while`和`do while`,它们在C语言中用于实现循环控制。 首先,我们要理解循环结构的工作原理。循环结构的基本思想是通过一个或多个条件检查来决定是否继续执行循环体内...

    单片机C语言中nop函数使用及延时计算.pdf

    单片机C语言中nop函数使用及延时计算是指在单片机C语言编程中使用nop函数来产生短延时的效果。nop函数相当于汇编语言中的NOP指令,延时几微秒。NOP指令为单周期指令,可以由晶振频率算出延时时间,对于12M晶振,延时...

    关于C语言 关于C语言

    - 控制结构:包括条件语句(if...else、switch...case)和循环语句(for、while、do...while)用于实现程序的流程控制。 - 函数:函数是C语言中代码复用的关键,可以将一组相关操作封装在函数内部,通过函数调用来...

    c语言实现pl0编译器的扩充

    在标准PL/0中,没有条件控制结构和循环结构。为了增强其功能,我们可以引入C语言的语法特性来扩展它。 1. **if-then-else语句**:这是条件控制的基本形式,允许程序根据条件执行不同的代码路径。在C语言中,我们...

    用C语言实现的PL0编译器

    在PL0原始版本中只有`while`循环,而`repeat`和`dowhile`提供了不同的控制流程,它们在执行时先执行循环体,再判断条件,这样可以确保循环至少执行一次。这种扩展使得程序的编写更灵活,也更符合程序员的习惯。 ...

    C语言编程技术实践 while和do while语句翻转课堂教学设计.docx

    在C语言编程中,循环语句是程序设计中不可或缺的一部分,它们允许代码重复执行特定的任务,直到满足某个条件为止。本节课重点介绍了两种常见的循环结构:`while`和`do while`语句。 1. **while循环语句**: - **...

    C语言中while与do-while的介绍与注意事项

    在C语言中,while和do-while循环是两种基本的控制流程结构,用于重复执行一段代码直到特定条件不再满足。让我们深入探讨这两种循环结构的详细信息。 ### 1. while循环 while循环遵循"测试-然后执行"的原则,即在...

    c语言中文API

    6. **控制流程**:C语言的流程控制语句包括条件判断(if...else)、循环(for、while、do...while)、switch语句,它们决定了程序的执行流程。 7. **指针操作**:C语言的指针是其特色之一,通过指针可以高效地访问...

    C语言程序设计-用do-while语句求1~100的累计和;.c

    C语言程序设计-用do-while语句求1~100的累计和;.c

    4.4.2.5 do-while-7.pptx

    在C语言中,do-while循环语句是一种常用的循环控制语句。它的基本结构为:do { statements } while (expression),其中statements是需要执行的语句,expression是循环条件。 从给定的文件中,我们可以看到多个do-...

    C语言讲课while循环结构PPT课件.pptx

    例如,在本例中使用了 `n 来确定循环何时结束。 - **循环控制变量的更新**:每次循环执行后,必须更新循环控制变量的值,以便循环能够在适当的条件下终止。如 `t = t * 2;` 和 `n++;`。 #### 四、具体实例分析 ...

Global site tag (gtag.js) - Google Analytics