Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่างข้อผิดพลาดในการคอมไพล์เวลาและข้อผิดพลาดรันไทม์ในโปรแกรม C


ข้อผิดพลาดหรือข้อยกเว้นคือสิ่งที่อ้างถึงการหยุดชะงักของการดำเนินการโค้ดเนื่องจากผู้ใช้ปลายทางไม่สามารถบรรลุผลลัพธ์ที่คาดหวังได้ บนพื้นฐานของเหตุการณ์เมื่อมีการสร้างหรือระบุข้อผิดพลาดเราสามารถจัดประเภทเป็นข้อผิดพลาดในการคอมไพล์ และรันไทม์ผิดพลาด

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างข้อผิดพลาดในการคอมไพล์เวลาและข้อผิดพลาดรันไทม์

ซีเนียร์ เลขที่ คีย์ ข้อผิดพลาดในการคอมไพล์เวลา ข้อผิดพลาดรันไทม์
1 อ้างอิง ข้อผิดพลาดเวลาคอมไพล์โดยทั่วไปจะอ้างถึงข้อผิดพลาดที่สอดคล้องกับไวยากรณ์หรือความหมาย ข้อผิดพลาดรันไทม์ในอีกทางหนึ่งหมายถึงข้อผิดพลาดที่พบในระหว่างรันโค้ดขณะรันไทม์
2 การตรวจจับ คอมไพเลอร์ตรวจพบข้อผิดพลาดในเวลาคอมไพล์ในขณะที่พัฒนาโค้ด คอมไพเลอร์จะตรวจไม่พบข้อผิดพลาดรันไทม์และดังนั้นจึงระบุได้ในขณะที่เรียกใช้โค้ด
3 การตรึง ข้อผิดพลาดในการคอมไพล์เวลาตามที่กล่าวไปแล้วสามารถแก้ไขได้ในขณะที่พัฒนาโค้ด ข้อผิดพลาดรันไทม์กำลังเข้าสู่สถานะแก้ไขหลังจากรันโค้ดและระบุข้อผิดพลาดแล้ว

ตัวอย่างข้อผิดพลาดเวลาคอมไพล์เทียบกับข้อผิดพลาดรันไทม์

CompileDemo.c

#include<stdio.h>
public class CompileDemo{
   void main(){
      int x = 100;
      int y = 155;
      // semicolon missed
      printf("%d", (x, y))
   }
}

ผลลัพธ์

error: expected ';' before '}' token

ตัวอย่าง

RuntimeDemo.c

include<stdio.h>
public class RuntimeDemo{
   void main(){
      int n = 9;
      div = 0;
      div = n/0;
      printf("resut = %d", div);
   }
}

ผลลัพธ์

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