我有兴趣进入C以接近金属性能,但是想用Pythonic风格编写并且不想滚动我自己的动态字符串,列表和字典。 Cython非常好,但是如果可能的话,想知道如何在直接C中使用动态变量。
使用C ++当然有STL,它将为您提供String,Vector和Map。当然,一种可能性是使用C ++编程,只使用这些功能。如果您需要C中的动态变量,这是标准做法吗?
答案 0 :(得分:4)
glib相当不错且广泛使用:
GLib提供核心应用程序 图书馆和图书馆的基石 用C语言编写的应用程序 GNOME中使用的核心对象系统, 主循环实现,和 大量的实用功能 字符串和通用数据结构。
事实上,glib
提供了更多(更多......),而不仅仅是字符串,列表和字符串的ADT。但是你可以轻松地开始使用这些部分,稍后进行扩展。
那就是说,不要认为拥有动态字符串,列表和字典会让你的代码变成Pythonic。绝大多数高级复杂的C应用程序都有这种数据结构的实现,但我不熟悉任何用“Pythonic风格”编写的应用程序。
答案 1 :(得分:3)
使用C ++;它具有所有这些的标准和高度优化的版本。绝对没有理由或好处将自己局限于C。
(编辑:换句话说,是的,这是一个非常标准的做法。请记住,使用C ++时不需要使用任何C ++的功能;通过设计,你可以选择。我经常禁用例外,例如,因为它导致大量膨胀的可执行文件。没有理由在C中编写代码。)