一个有用的宏定义

By Minidxer | October 21, 2007

※作者:丁志刚  转载请注明:Minidx全文检索http://blog.minidx.com/2007/10/21/21.html

在cppblog上 发了篇《在删除一个指针delete p之前是否需要检查p是否为NULL?》,经过讨论,得到了一个比较实用的宏定义:

#define SAFE_DELETE(p) do{delete p; p=NULL;}while(false)

以前都是用if,先记下了,以后就这么用。:)

Topics: 程序开发相关 | 1 Comment » | Tags: , , , , ,

你可能还对下列文章感兴趣:

One comment | Add One

  1. 荔枝 - 06/7/2008 at 1:01 am

    #define SAFE_DELETE(p) do{delete p; p=NULL;}while(false)

    大哥的这代码好像很垃圾, 为什么还要 do { } while(false);
    这个可以直接去了, 而且编译器一定帮你优化去掉, 白写,
    而且这不可以达到你想要的效果. 可以这样 if(p) {delere p; p=NULL;}
    但这样唯一缺点就是不可以防止野指针, 还需要加个 try catch 那样异常处理就可以了.哈.
    要做到安全的销毁 new 开辟的空间, 在你的饿 debug 版本中进行 try 处理是最好.

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts