什么是这样的宏?

Ala*_*lan 4 c++ macros

#define ValidateReadPtr(p,cb) 0
Run Code Online (Sandbox Code Playgroud)

我想不出这种宏的用例,你怎么样?

Mic*_*urr 6

我只能在Windows Mobile SDK ValidateReadPtr()wxdebug.h标题中找到宏(尽管MSDN表明它是DirectShow API的一部分).

wxdebug.h它的定义为:

#define ValidateReadPtr(p,cb) \
    {if(IsBadReadPtr((PVOID)p,cb) == TRUE) \
        DbgBreak("Invalid read pointer");}
Run Code Online (Sandbox Code Playgroud)

我怀疑在你的项目中它的定义是0出于以下一个或两个原因:

  • 使用它的代码编译即使wxdebug.h标头不可用(即,不使用Windows Mobile SDK)
  • IsBadReadPtr()现在被认为是不应该使用的危险API.对于文档IsBadreadPtr()说,"重要的此功能已过时,不应使用.尽管它的名字,它并不能保证指针是有效的或者是内存指出,可以放心使用.如需更多信息,请参见备注... ".Raymond Chen写了一篇关于以下问题的文章IsBadReadPtr():IsBadXxxPtr应该真正被称为CrashProgramRandomly