我需要了解多少编译时间和运行时间才能舒适地编写一般代码
How much do I need to know about compile time vs runtime to comfortably write code in general
我是一名自学成才的程序员,开始浏览有关用于开发 iPhone 和 Android 应用程序的 C 语言范围和面向对象原则的信息。我经常遇到的一件事是提到这种或那种语言在编译时或 运行 时的作用。我知道我最终会陷入学习的深渊,但我还需要进一步学习编译和 运行time 才能在我终于开始编写我的第一个作品时指导我的决定代码行?如果我花时间研究编译器之类的东西,它会让编写代码变得更快更容易吗?
C 和 C++ 是 statically typed 编程语言,它们通常需要编译器来生成最终的 运行 可用程序。要 运行 一个程序,您首先需要编译它(至少在大多数典型的实现中,尽管理论上可以提出一个 C++ 解释器),然后 运行 生成的可执行文件。此过程需要一些时间,但您不必太在意,尤其是在初级阶段。当您的代码分布在多个编译单元中并且有数万行代码时,问题会变得更加严重。因此,对于您将要编写的程序,编译时间可以忽略不计。
当你使用大量模板代码时,编译时间变得有点严重,需要为各种类型实例化(这在编译时需要时间),但同样,对于相对较小的程序,这是一个非问题。
还有一个更高级的话题叫"template meta-programming",你可以让编译器在编译时为你执行"stuff"。换句话说,编译器在代码编译过程中执行(有用的)计算。不过,即使这个话题很酷,而且这里有很多大师,一开始你也不需要它,等你掌握了基本的 C++ 技术之后就可以开始学习了。
研究编译器的工作原理等很有趣,但不会使您的代码 运行 "faster"。使用适当的算法可以使您的代码更快。之后才进行微优化。
我是一名自学成才的程序员,开始浏览有关用于开发 iPhone 和 Android 应用程序的 C 语言范围和面向对象原则的信息。我经常遇到的一件事是提到这种或那种语言在编译时或 运行 时的作用。我知道我最终会陷入学习的深渊,但我还需要进一步学习编译和 运行time 才能在我终于开始编写我的第一个作品时指导我的决定代码行?如果我花时间研究编译器之类的东西,它会让编写代码变得更快更容易吗?
C 和 C++ 是 statically typed 编程语言,它们通常需要编译器来生成最终的 运行 可用程序。要 运行 一个程序,您首先需要编译它(至少在大多数典型的实现中,尽管理论上可以提出一个 C++ 解释器),然后 运行 生成的可执行文件。此过程需要一些时间,但您不必太在意,尤其是在初级阶段。当您的代码分布在多个编译单元中并且有数万行代码时,问题会变得更加严重。因此,对于您将要编写的程序,编译时间可以忽略不计。
当你使用大量模板代码时,编译时间变得有点严重,需要为各种类型实例化(这在编译时需要时间),但同样,对于相对较小的程序,这是一个非问题。
还有一个更高级的话题叫"template meta-programming",你可以让编译器在编译时为你执行"stuff"。换句话说,编译器在代码编译过程中执行(有用的)计算。不过,即使这个话题很酷,而且这里有很多大师,一开始你也不需要它,等你掌握了基本的 C++ 技术之后就可以开始学习了。
研究编译器的工作原理等很有趣,但不会使您的代码 运行 "faster"。使用适当的算法可以使您的代码更快。之后才进行微优化。