草庐IT

c++ - 奇怪的 static_cast 把戏?

在仔细阅读Qt源代码时,我遇到了这个gem:templateinlineTqgraphicsitem_cast(constQGraphicsItem*item){returnint(static_cast(0)->Type)==int(QGraphicsItem::Type)||(item&&int(static_cast(0)->Type)==item->type())?static_cast(item):0;}注意static_cast(0)->Type?我已经使用C++很多年了,但以前从未见过0在static_cast中使用过。这段代码在做什么,它安全吗?背景:如果您从QGrap

c++ - union ——无用的时代错误还是有用的老派把戏?

我最近在本地图书馆的一次图书销售中以仅2美元的价格看到了一本很棒的数据结构书,“DataStructuresUsingC”(c)1991。正如书名所暗示的,本书涵盖了使用C编程语言的数据结构。我知道这本书会过时,但可能包含许多我在其他地方不会遇到的高级C主题。果然在5分钟内我发现了一些我不知道的C代码。我很高兴学到了一些有趣的东西,并迅速买了这本书。对于那些不了解union是什么的人,本书使用了一个很好的比喻来解释:Tofullyunderstandtheconceptofaunion,itisnecessarytoexamineitsimplementation.AStructure