文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C语言若干语法分析 (一)

C语言若干语法分析 (一)

时间:2010-10-14  来源:syukayo


C语法分析 (一)


<一>. do {} while(0)的作用
用这个不会导致性能降低,反而更有效.
a. 分号问题. 用{} 包含多语句与用do {} while(0)的区别所在:

#define foo() { x = 1; y = x; }

if ( true )
    foo();
else
    dosomethingelse();

编译报错,parse error before else. 因为foo展开后,该行出现2个分号。

b. if语句问题,会匹配最近的else. 比如

#define ABC(x) if (x) dosomething()
                            
if ( true )
{
    ABC(x);
}
else
{
    dosomethingelse();
}

宏定义展开后,else则与展开后的if语句匹配。

c. 空的宏定义避免warning. #define foo() do {} while(0).
什么都不做,但是避免某些编译器发出警告信息.


d. 存在一个独立的block,可以进行多语句实现,定义变量等.

#define foo() do1(); \
              do2();


if (x)
    foo();

这样展开后 do2()不会与do1()被同时执行. 这个的话用{}与do {} while(0)都可以.

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载