C或C ++是否更适合制作可移植代码?

时间:2009-07-01 02:00:47

标签: c++ c portability

我想在夏天玩得开心。编写一段代码,支持在支持Unicode但不支持东方语言的系统中呈现阿拉伯语。我最初只编写逻辑而没有集成代码。

我应该使用C ++还是C?

编写可移植代码并且更容易与Python集成的哪种语言更容易?


编辑:

我对C / C ++相当不错,尽管我认为自己更接近C ++。但似乎更容易编写C并将其插入每个地方或我错了?我会编写一些函数来处理阿拉伯语Unicode字符串。呈现阿拉伯语言需要一些处理,因为ALMOST ALL字符在不同的上下文中具有不同的形状。


编辑:

似乎我会使用C ++,只是为了让它变得更有趣。

8 个答案:

答案 0 :(得分:4)

我会使用C ++,主要是因为它提供了更多“东西”使用,并且我的经验是像C一样可移植。但是,我没有使用直接C / C编译器10年或更长时间。


修改

一位评论者质疑我的便携性经验。我主要限于Linux和Win32。我认为这将是本练习的足够操作系统。

答案 1 :(得分:4)

我强烈不同意在可移植性问题时C和C ++具有可比性的断言。没错,如果你限于最近的Visual Studio和g ++,C ++是“可移植的”。但是像升级这样的东西是一个维护的噩梦,如果你关心更多的平台而不是(旧的gcc / visual studio,许多其他旧的编译器在专有的unices上)。在这种情况下,根据我的经验,C比C ++更便携。如果你看一下大多数使用C ++的开源项目(mozilla,一些谷歌代码),他们将自己局限于一个非常有限的C ++子集。

现在,对于字符串处理,我会说C和C ++都是非常糟糕的语言:)我肯定会看到更高级别的东西,并且对unicode字符串处理有很好的支持。

答案 2 :(得分:3)

如果它很有趣,请选择您想要学习的语言。

我敢打赌,有更多最近的库可以支持C ++中的各种语言包,但也许这很有趣,就是用C编写自己的版本。

答案 3 :(得分:3)

我会用C ++编写它并提供一个C接口来获得最广泛的集成足迹。此外,您可以使用SWIG为许多常用语言生成包装器。

答案 4 :(得分:2)

尝试查看下一个网站:

"boost.org/"(参见与python的集成)

"pocoproject.org/"

两个网站似乎都对C ++的创建者Stroustrup表示同情

答案 5 :(得分:2)

您需要强大的支持。为此,C ++有更多丰富的选项。如果你使用像QT这样的框架,它几乎是微不足道的。它在所有系统上都非常便携。与Python集成也很简单(尽管我喜欢boost::python)。

答案 6 :(得分:1)

如果你小心的话,C或C ++中的任何一个都应该能让你编写可移植的代码。对于Unicode处理,您可能还需要支持Unicode的字符串工具;对于C,Glib非常有用。

当然,您可以从一开始就用Python编写它。这是相当便携的,也许最简单。

答案 7 :(得分:1)

我认为最好用C语言编写。因为C会为你提供比C ++更多的生成优化和可移植代码的方法。如果用C语言编写,那么用python集成就更容易了。