我去一家公司面试的时候,最后一题是这样的,看看大家都是怎么答这个问题。
我是这样与的:
#define DELETE(p)/
do/
{/
if(NULL != (p))/
{/
delete (p);/
(p) = NULL;/
}/
}while(0)/
------解决方案--------------------------------------------------------
这个题目的确在网上看过有的公司问,说实在的我还真没有总结过这个问题!
------解决方案--------------------------------------------------------
抛砖引玉了
是不是定义删除p的宏?
------解决方案--------------------------------------------------------
这样的写法在微软-很多提供的源代码中很多的。
------解决方案--------------------------------------------------------
宏很糟糕,完全不符合现代编程思想。
------解决方案--------------------------------------------------------
#define DELETE(p)/
do/
{/
if(NULL != (p))/
{/
delete (p);/
(p) = NULL;/
}/
}while(0)/
还是
#define DELETE(p)\
do\
{\
if(NULL != (p))\
{\
delete (p);\
(p) = NULL;\
}\
}while(0)\
------解决方案--------------------------------------------------------
下面的那个,我那个写错了。