C++技巧之五

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

// Original do/while Macro

//原始的do/while宏

#define MY_ASSERT_ONE(x) do { if (!(x)) { _asm int 3 } } while(0)

// new Macro that removes the loop

// 新宏移去了loop

#define MY_ASSERT_ONE(x) { if (!(x)) { _asm int 3 } }

代码清单 4 避免一个编译器错误

(a). /* This code will cause a compile error */

/* 此段代码将产生一个编译器错误 */

void main(void)

{

int i = 10;

printf("i: %d\n", i);

int j = 100; /* This statement will cause a compiler error since

it was not declared at the top of the function. */

/* 此语句将导致一个编译器错误,

因为它未在函数顶部声明过。 */

printf("j: %d\n", j);

}

(b). /* whereas this code will not */

/*而此段代码将不产生一个编译器错误*/

void main(void)

{

int i = 10;

printf("i: %d\n", i);

{

int j = 100; /* This statement is fine since it is akin

to defining a local function within the function. */

/* 此语句很精炼,

因为它在函数中定义了一局部函数的同族。*/

printf("j: %d\n", j);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有