0

我有兴趣进入 C 以接近金属性能,但想以 Pythonic 风格编写,不想滚动我自己的动态字符串、列表和字典。Cython 非常好,但如果可能的话,想知道如何在直接 C 中使用动态变量。

对于 C++,当然有 STL,它将为您提供 String、Vector 和 Map。当然,一种可能性是在 C++ 中以类 C 风格进行编程,仅使用这些功能。如果您需要 C 中的动态变量,这是标准做法吗?

4

2 回答 2

4

glib非常好并且被广泛使用:

GLib 为用 C 编写的库和应用程序提供了核心应用程序构建块。它提供了 GNOME 中使用的核心对象系统、主循环实现以及用于字符串和常见数据结构的大量实用程序函数。

事实上,glib它提供的不仅仅是字符串、列表和字典的 ADT。但是你可以很容易地从使用这些部分开始,以后再扩展。


也就是说,不要认为拥有动态字符串、列表和字典会使你的代码像 Python 一样。绝大多数复杂程度以上的 C 应用程序都有此类数据结构的实现,但我不熟悉任何以“Pythonic 风格”编写的此类应用程序。

于 2010-12-31T18:56:45.373 回答
3

使用 C++;它具有所有这些的标准和高度优化的版本。绝对没有理由或好处将自己限制在 C 中。

(ed: 换句话说,是的,这是一个非常标准的做法。请记住,在使用 C++ 时不需要使用 C++ 的任何特性;根据设计,您可以选择。例如,我经常禁用异常,因为它会导致到大量臃肿的可执行文件。根本没有理由用 C 编写代码。)

于 2010-12-31T19:03:52.307 回答