我最近在当地图书馆的一次图书特卖会上看到了一本很棒的数据结构书,“ Data Structures Using C ”(c)1991,仅售 2 美元。正如书名所暗示的,本书涵盖了使用 C 编程语言的数据结构。
我知道这本书会过时,但可能包含许多我在其他地方不会遇到的高级 C 主题。
果然在 5 分钟内我发现了一些我不知道的关于 C 的东西。我遇到了一个讨论union
关键字的部分,我意识到我从未使用过它,也从未见过任何代码。我很感激能学到一些有趣的东西,很快就买了这本书。
对于那些不了解工会是什么的人,本书使用了一个很好的比喻来解释:
要完全理解联合的概念,有必要检查它的实现。结构可以被视为通往内存区域的路线图。它定义了如何解释内存。一个联合为同一内存区域提供了几个不同的路线图,程序员有责任确定当前使用哪个路线图。在实践中,编译器会分配足够的存储空间来包含最大的联合成员。然而,路线图决定了如何解释存储。
我可以很容易地想出我会使用联合的人为情况或技巧。(但我对人为的情况或黑客不感兴趣......)
您是否使用或看到过使用 Union 解决问题的实现**比不使用 Union 更优雅**?
如果您快速解释为什么使用联合比不使用联合更好/更容易,则会获得额外奖励。