我有这个:
typedef void (*funcptr) (void);
int main(){
funcptr(); //this can compile and run with no error . WHAT DOES IT MEAN? WHY NO ERRORS?
}
最佳答案
该语句通过其默认构造函数*创建一个funcptr
实例,并将其丢弃。
它类似于代码
int main () {
double();
}
(注意:*从技术上讲,由于并非所有类型都具有构造函数,因此它会执行默认初始化。这些类型将返回默认值(零初始化),例如0。有关详细信息,请参见C++ 98§5.2.3/2和§8.5/5。实际发生了什么。)