这个类型是什么意思?

时间:2013-08-01 20:00:45

标签: c

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?我不熟悉那种类型的类型转换语法,并且有兴趣了解它的解释位置。

1 个答案:

答案 0 :(得分:5)

第三行是C ++语法,就像第四行一样。这意味着从funcptr构造NULL,在这种情况下具有效果。评论说明这​​也适用于C也是假的。

编辑:我即将编辑维基百科,但是有人打败了我:)