了解C运行时

时间:2011-08-18 06:17:32

标签: c runtime

我正在学习C语言,我有一个问题。 如果我在一台Windows PC上编译并为BorlandC编写C程序的可执行文件,然后将此文件传输到另一台没有编译器的Windows PC,它如何在没有C运行时的情况下运行,以及内存管理如何工作?

2 个答案:

答案 0 :(得分:4)

如果使用静态链接,则可以相对轻松地执行此操作。这意味着在编译/链接(在您的机器上)时,运行时库被绑定到您的可执行文件中,而不是在运行时(在另一台机器上)动态加载。

如果使用动态链接,则必须在运行代码的运行时提供库,因此加载程序(操作系统的一部分)可以找到它们并将它们链接起来。

有关静态/动态链接差异的详细说明,请参阅here

答案 1 :(得分:2)

对于C语言,通常会有一个名为“libc”的共享库,应该与您的操作系统一起提供。内存管理由您自己的程序使用malloc(calloc等)和免费处理。他们也是图书馆的一部分。

另请注意,编译器和运行时是不同的东西(您可以在没有编译器的情况下安装运行时二进制文件),尽管有时它们捆绑在一起。