wikipedia entry for Typedef表示第一行之后的每一行:
typedef int (*funcptr)(double); // pointer to function of double returning int
funcptr x = (funcptr) NULL; // C or C++
funcptr y = funcptr(NULL); // C or C++
funcptr z = static_cast<funcptr>(NULL); // C++ only
funcptr在左侧用于声明变量,在右侧用于转换值。现在我理解第二行是向funcptr转换NULL,所以x是NULL,但第三行是什么意思呢?如果这应该是一个演员,因为维基百科条目建议那么为什么在括号中为NULL?我不熟悉那种类型的类型转换语法,并且有兴趣了解它的解释位置。
答案 0 :(得分:5)
第三行是C ++语法,就像第四行一样。这意味着从funcptr
构造NULL
,在这种情况下具有效果。评论说明这也适用于C也是假的。
编辑:我即将编辑维基百科,但是有人打败了我:)