是否有更高级别的C抽象库,它可以帮助您轻松完成基本工作而无需担心内存/指针等。
Ex:Python提供了比C更高的抽象。它可以连接字符串,数组等。简单地说,我们在C中有任何lib来处理这项工作?
答案 0 :(得分:6)
用C编程只有几个目的。想到的主要目的是:
您需要一种具有存储持续时间概念的语言,您可以编写使用已经获得的内存的有界空间或就地算法,从而绝对不会失败案例。
您希望利用C语言的代码大小或性能优势,这些语言不是惯用语言,也不能用其他语言表达。同样,其中大部分最终都与现场数据处理有关,而不是将其移动到中间数据结构中或将其包装在抽象容器中。
如果你没有这样的需求或甚至不知道它们是什么意思,你可能会考虑是否应该真的使用C.带来低效的习语,如字符串连接,抽象容器类或懒惰的内存管理C语言的其他语言将否定使用C语言的大多数/所有可能的好处,同时为您提供较少或没有高级语言的好处。
答案 1 :(得分:4)
不要担心指针是非常棘手的,因为某人最终必须清理混乱,并且当东西超出范围时,C既没有垃圾收集器也没有析构函数。
char*
处理,所以你不能真正避免这里的指针。您当然可以执行typedef char* string
并使用该名称。您可能想问自己的一个重要问题:为什么您是否想要坚持使用C,如果您打算使用其他语言(如C ++)提供的功能?也许您的需求也可以通过一些混合语言编程来满足,您可以使用C ++编写应用程序的一部分,并使用C语言保留现有代码,或使用C调用约定进行库调用。这样,您可以在高级别编写新代码,并在合适的位置使用旧的C语言。
没有人因为你正在使用C ++而强迫你使用特定的编码风格。编写一个主要看起来像C程序的程序并且仍然使用C ++的功能和数据类型是完全可以的。你不必自己编写面向对象的东西,你可以坚持使用标准imperative paradigm中相互调用的简单函数。但是,知道你可以在那些有助于使你的代码更容易编写,阅读和维护的情况下使用对象仍然很好。