小编Big*_*gle的帖子

互斥锁的指针进行双重NULL检查的原因是什么

我最近读了一本关于系统软件的书。其中有一个我不理解的例子。

volatile T* pInst = 0;
T* GetInstance()
{
  if (pInst == NULL)
  {
   lock();
   if (pInst == NULL)
     pInst = new T;
   unlock();
  }
  return pInst;
}
Run Code Online (Sandbox Code Playgroud)

为什么作者要检查(pInst == NULL)两次?

c++ if-statement locking

15
推荐指数
1
解决办法
1216
查看次数

结构零初始化方法

struct datainfo info = { 0 };
Run Code Online (Sandbox Code Playgroud)

与...相同

struct datainfo info;
memset(&info, 0, sizeof(info));
Run Code Online (Sandbox Code Playgroud)

有什么区别,哪个更好?

c memset

3
推荐指数
1
解决办法
92
查看次数

标签 统计

c ×1

c++ ×1

if-statement ×1

locking ×1

memset ×1