提胡枝子f维基百科条目指出,在第一行之后的每一行:
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++ onlyfuncptr在左边用于声明变量,而在右侧则用于转换值。现在我了解到第二行是将空转换为函数to,所以x是空的,但是第三行到底是什么意思呢?如果这应该像维基百科条目所建议的那样是一个强制转换,那么为什么括号中为NULL呢?我不熟悉这类类型的类型语法,我很想知道这是怎么解释的。
发布于 2013-08-01 20:02:32
第三行是C++语法,就像第四行一样。它意味着从funcptr构造一个NULL,在本例中它具有强制转换的效果。说明这在C中也有效的评论行是假的。
编辑:我正要编辑维基百科,但是有人打败了我:)
https://stackoverflow.com/questions/18003438
复制相似问题