当前位置: 首页>>技术教程>>正文


编译时错误和运行时错误之间的区别,2个例子弄懂!

编译时(Compile-Time)错误:当发生的错误是违反语言规则语法的编写,称为Compile-Time错误。此编译器错误表明在编译代码之前必须先修复一些问题。所有这些错误都由编译器检测到,因此被称为compile-time错误。
最常见的Compile-Time错误是:

  • 缺少括号(})
  • 在不声明变量的情况下打印变量的值
  • 缺少分号(终止符)

以下是演示Compile-Time错误的示例:

// C program to illustrate 
// syntax error 
  
#include 
  
void main() 
{ 
    int x = 10; 
    int y = 15;  
      
// semicolon missed 
    printf("%d", (x, y))  
} 

错误:

error: expected ';' before '}' token

运行时(Run-Time)错误:成功编译后在程序执行期间发生的错误(run-time)被称为run-time错误。最常见的run-time错误之一是被零除,即除法错误。这些类型的错误很难找到,因为编译器没有指向发生错误的行。

为了更好地理解,请运行以下示例。

// C program to illustrate 
// run-time error 
  
#include 
  
void main() 
{ 
    int n = 9, div = 0; 
    
    // wrong logic 
    // number is divided by 0, 
    // so this program abnormally terminates 
    div = n/0; 
      
    printf("resut = %d", div); 
} 

错误:

warning: division by zero [-Wdiv-by-zero]
     div = n/0;

在给定的示例中,存在除以零的误差。这是run-time错误的示例,即在运行程序时发生错误。

编译时(Compile-Time)和运行时(Run-Time)错误之间的差异是:

Compile-Time错误 Runtime-Errors
这些是编译器检测到的语法错误。 这些是编译器未检测到并产生错误结果的错误。
它们在检测到某些语法错误时阻止代码运行。 它们阻止代码执行完成,即执行非正常中止。
它包括语法错误,例如缺少分号(;),关键字和标识符的拼写错误等。 它包含错误,例如将数字除以零,寻找负数的平方根等。

图解
如果打个比方的话:编译时错误如左图所示,运行时错误如右图所示!:)

参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/4196.html,未经允许,请勿转载。