我有这个:

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。实际发生了什么。)

09-09 19:45