gpt4 book ai didi

c - 在 C 语言中,通用容器还是安全容器?

转载 作者:太空狗 更新时间:2023-10-29 16:56:30 24 4
gpt4 key购买 nike

在 C++ 中,您可以使用模板同时拥有通用容器和类型安全容器。但是在 C 中,如果你想要通用容器,你必须(afaik)使用 void*,这意味着你失去了类型安全。要拥有类型安全的容器,您必须为要保存的每种数据类型重新实现它们。

鉴于 C 比 C++ 更遵循 程序员知道他在做什么 的哲学,在 C 中更惯用的做法是:使用带有 的通用容器void*,还是为每种类型的数据制作自定义容器?

最佳答案

我的目标是通用容器:

  1. 一旦你习惯了它,当我不关心它的类型时,你只会认为 void * 是指某物的类型。这就像 Java 中的 Object —— 长期以来,通用容器也没有类型安全。

  2. 您只有一个地方可以改进。

  3. 您没有获得类型安全;但随着类型安全容器的重复实现,您将面临复制和粘贴错误的风险。这也可能导致错误。

关于c - 在 C 语言中,通用容器还是安全容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com