Tag: 取消引用

为什么代码会通过空指针显式调用静态方法?

我在几个旧的项目中看到过这样的代码: class Class { static void Method() {} }; ((Class*)0)->Method(); 此代码包含未定义的行为,因为它包含解引用空指针(不pipe之后会发生什么)。 这真的没有任何意义 – 在那里将types名称提供给编译器,而编写上面代码的人可以写下这个代码: Class::Method(); 后者会好的。 为什么会有人写前代码? 这是一个很好的旧时代的成语吗?