【发布时间】:2010-06-25 19:47:18
【问题描述】:
这是对函数中传递的 DOUBLE 指针参数的有效空检查吗
if (!pdblValue) return E_POINTER;
【问题讨论】:
-
DOUBLE是什么类型? -
是的,如果它的指针指向一个双精度数,如果你想比较指针指向的内容,由于舍入错误。
这是对函数中传递的 DOUBLE 指针参数的有效空检查吗
if (!pdblValue) return E_POINTER;
【问题讨论】:
DOUBLE 是什么类型?
是的,这是对非空指针的正常检查。
【讨论】:
在 C++ 中,“if”语句使用布尔表达式。如果为true,则执行条件块内的部分。如果是 false,则不是。
pdblValue 是指针类型。否定它 (!pdblValue) 将给出一个长整数表达式,如果指针的值为 NULL,则该表达式不为零,否则为零。
这将被转换为布尔值,因为这是条件中需要的。非零值将转换为真,零值将转换为假。
因此,这将具有与更自然的形式相同的语义:
if (pdblValue == NULL) ...
您实际上在其中提供了一个布尔表达式 - 您真正想要的那个。
【讨论】:
是的。如果指针不为零,则指针评估为“是”,就像 C++ 中的所有其他原始类型一样。
【讨论】:
假设 pdblValue 是一个指针,它在初始化时设置为 NULL 并且无效然后是。
【讨论】: