run time和compile time的区别

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:10:58
如题~ 请详细解释,谢谢~

run time即运行时.
解释:
程序"运行时"即是程序被编译了之后,打开程序并运行它直到程序关闭退出这段时间.经常说到的"运行时错误",即是指程序在打开并执行里面的代码时发生的错误.
造成运行时错误的原因有很多,不过大多数是因为程序在最初设计时的代码没有写正确而留下的隐患.比如说下面的代码,能通过编译(编译时),但在运行时会出现错误.
int * p;
p=NULL;
*p = 123;

上面的*p = 123;这一句会发生运行时错误,但编译时却不会发生错误.因为上面的代码没有任何语法错误,所以在编译时不会发生任何错误;但在运行时,由于p为一指向地址零的指针,当向地址零进行写操作时,由于地址零受操作系统保护,所以会发生一个运行时的内存非法访问的错误.在WINDOWS下面,并不是所有的4GB的地址空间我们都可以进行访问.有很多地址是被操作系统保护的.

compile time即为编译时:
解释:
准确的说编译时是指我们写好的源代码在被编译成为目标文件(OBJ)这段时间.但我们可以通俗的看成是我们写好的源代码在被转换成为最终可执行的文件这段时间.
通常提到编译时错误是指编译器在将我们已经写好的源代码,转换成为目标文件时发生的错误,这类错误大多是语法错误,也即是我们没有按照编译器能够认识的格式书写源代码造成的.如下面的代码会发和编译时错误:
int a;
a = NULL
*a = 1000;
其中a=NULL这一句将发生编译时错误,原因是由于这一句少了一个分号;编译器无法理解这一句的意思,所以就会发生编译时错误了.

run time 就是运行时的意思
而 compile time 是编译时的意思。

在C/C++中这个区别是很大的哦。比如一些常量定义,编译器在编译的时候就知道是什么东西,而你在程序里面写的变量什么的一般要到运行的时候才知道是什么东西。
比如:
const int i = 100;

int a =