run time error 与compile time error区别

run time即运行时.
解释:
程序"运行时"即是程序被编译了之后,打开程序并运行它直到程序关闭退出这段时间.经常说到的"运行时错误",即是指程序在打开并执行里面的代码时发生的错误.
造成运行时错误的原因有很多,不过大多数是因为程序在最初设计时的代码没有写正确而留下的隐患.比如说下面的代码,能通过编译(编译时),但在运行时会出现错误.
int * p;
p=NULL;
*p = 123;
上面的*p = 123;这一句会发生运行时错误,但编译时却不会发生错误.因为上面的代码没有任何语法错误,所以在编译时不会发生任何错误;但在运行时,由于p为一指向地址零的指针,当向地址零进行写操作时,由于地址零受操作系统保护,所以会发生一个运行时的内存非法访问的错误.在WINDOWS下面,并不是所有的4GB的地址空间我们都可以进行访问.有很多地址是被操作系统保护的.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值