我需要了解多少编译时间与运行时间以便一般地编写代码

时间:2015-12-24 02:30:32

标签: android c++ iphone compile-time

我是一名自学成才的程序员,开始浏览有关开发iPhone和Android应用程序的C语言和面向对象原则的信息。我经常遇到的一件事是提到这种或那种语言在编译时或运行时所做的事情。我知道我最终会陷入深入学习的兔子洞,但是当我最终开始编写第一行代码时,我还需要学习有关编译和运行时的更多信息以指导我的决定?如果我花时间研究编译器等,它会更快更容易地编写代码吗?

1 个答案:

答案 0 :(得分:3)

C和C ++是statically typed编程语言,通常需要编译器来生成最终的可运行程序。要运行程序,首先需要编译它(至少在大多数典型的实现中,尽管理论上可以提出一个C ++解释器),然后运行生成的可执行文件。这个过程需要一些时间,但是你不应该过于关注它,特别是在初级阶段。如果您的代码分布在多个编译单元中,并且代码行上有数万个,则问题会变得更加严重。因此,对于您将要编写的程序,编译时间可以忽略不计。

每当你使用大量模板代码时编译时间会变得更加严重,需要为各种类型实例化(这需要花费时间进行编译),但同样,对于相对较小的程序,这不是问题。

还有另一个更高级的主题叫"template meta-programming",你可以让编译器在编译时为你执行“东西”。换句话说,编译器在代码编译过程中执行(有用的)计算。然而,即使这个主题很酷,并且这里有很多大师,你一开始就不需要它,你可以在掌握基本的C ++技术之后开始学习它。

研究编译器如何工作,这很有趣,但它不会使你的代码“更快”运行。使用适当的算法可以使您的代码更快。微优化仅在之后才出现。