我最近读了一本关于系统软件的书。其中有一个我不理解的例子。
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)两次?
是
struct datainfo info = { 0 };
Run Code Online (Sandbox Code Playgroud)
与...相同
struct datainfo info;
memset(&info, 0, sizeof(info));
Run Code Online (Sandbox Code Playgroud)
有什么区别,哪个更好?