首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Define 话语中的do{} while(0)

2012-11-05 
Define 语句中的do{} while(0)经常在define语句中看到用do{} while(0)将一个程序片段包起来,一直感觉很奇

Define 语句中的do{} while(0)
   经常在define语句中看到用do{} while(0)将一个程序片段包起来,一直感觉很奇怪,经查找,才发现这是在define语句使用中的一个tricky的情况。
   define表达使用do{} while(0)的两个例子:

 if(1 == 0)  {(&head)->next = (&head); (&head)->prev = (&head);}; else  head.val = 0;

  然后编辑就会报错:main.c:13: error: ‘else’ without a previous ‘if’
  相信看到这里后各位就会明白使用do{}while(0)的原因了吧。

热点排行