C++技巧之五
2004-02-17 18:47
337 查看
//Originaldo/whileMacro
//原始的do/while宏
#defineMY_ASSERT_ONE(x)do{/
if(!(x)){/
_asmint3/
}/
}while(0)
//newMacrothatremovestheloop
//新宏移去了loop
#defineMY_ASSERT_ONE(x){/
if(!(x)){/
_asmint3/
}/
}
代码清单4避免一个编译器错误
(a)./*Thiscodewillcauseacompileerror*/
/*此段代码将产生一个编译器错误*/
voidmain(void)
{
inti=10;
printf("i:%d/n",i);
intj=100;/*Thisstatementwillcauseacompilererrorsince
itwasnotdeclaredatthetopofthefunction.*/
/*此语句将导致一个编译器错误,
因为它未在函数顶部声明过。*/
printf("j:%d/n",j);
}
(b)./*whereasthiscodewillnot*/
/*而此段代码将不产生一个编译器错误*/
voidmain(void)
{
inti=10;
printf("i:%d/n",i);
{
intj=100;/*Thisstatementisfinesinceitisakin
todefiningalocalfunctionwithinthefunction.*/
/*此语句很精炼,
因为它在函数中定义了一局部函数的同族。*/
printf("j:%d/n",j);
}}
相关文章推荐
- C++技巧之六
- C++技术技巧之一
- C++技术技巧之二
- 在 C++Builder 工程里使用 Visual C++ DLL——第2部分:C++ 类
- 在 C++Builder 工程里使用 Visual C++ DLL——第1部分:C函数
- C++对象模型之数据成员模型(1)
- 软件开发最重要的是技术吗?
- C++对象模型之函数成员(5)
- C++对象模型之函数成员(4)
- C++对象模型之函数成员(3)
- C++对象模型之函数成员(2)
- C++对象模型之函数成员(1)
- C++对象模型之数据成员模型(2)
- C++对象模型之简单对象模型(2)
- C++对象模型之简单对象模型(1)
- c++的尴尬
- 在 Borland C++BuilderX for Windows 中进行 GTK+ 编程
- The Boost C++ Metaprogramming (翻译)
- C++ FAQ (翻译自 www.cplusplus.com)
- C++ BuilderX的问题与展望(1,问题篇-上)