编译器构建中的错误(词法、语法和语义错误)
创始人
2024-12-08 13:30:03
0
  1. 词法错误:发生在编译器分析源代码的过程中,识别出无法识别的字符或不符合规范的字符序列。例如,在C语言中,关键字必须全部是小写,如果大写关键字,则会出现词法错误。

示例代码:

#include 

int main()
{
   int x = 0;
   If (x == 0) {    // ‘If’应该是小写的‘if’
      printf("x is equal to zero\n");
   }
   return 0;
}

〔小写所有关键字。

  1. 语法错误:发生在编译器分析源代码的过程中,识别出语法不正确的代码。例如,在C语言中,if语句必须包含在括号中,否则会出现语法错误。

示例代码:

#include 

int main()
{
   int x = 0;
   if x == 0 {    // 缺少括号
      printf("x is equal to zero\n");
   }
   return 0;
}

〔添加缺少的括号。

  1. 语义错误:发生在编译器分析源代码的过程中,识别出代码在逻辑上不正确或不符合预期的情况。例如,在C语言中,如果将一个整数变量的值赋给一个字符变量,会出现语义错误。

示例代码:

#include 

int main()
{
   int x = 65;
   char c = x;    // 整数类型不能赋值给字符类型
   printf("c = %c", c);
   return 0;
}

〔将变量c的类型更改为int。小写所有关键字。

  1. 语法错误:发生在编译器分析源代码的过程中,识别出语法不正确的代码。例如,在C语言中,if语句必须包含在括号中,否则会出现语法错误。

示例代码:

#include 

int main()
{
   int x = 0;
   if x == 0 {    // 缺少括号
      printf("x is equal to zero\n");
   }
   return 0;
}

〔添加缺少的括号。

  1. 语义错误:发生在编译器分析源代码的过程中,识别出代码在逻辑上不正确或不符合预期的情况。例如,在C语言中,如果将一个整数变量的值赋给一个字符变量,会出现语义错误。

示例代码:

#include 

int main()
{
   int x = 65;
   char c = x;    // 整数类型不能赋值给字符类型
   printf("c = %c", c);
   return 0;
}

〔将变量c的类型更改为int。

相关内容

热门资讯

最新研发(天天爱麻将胡牌器)起... 最新研发(天天爱麻将胡牌器)起初真的有挂(辅助挂)靠谱教程(2022已更新)(哔哩哔哩);天天爱麻将...
一分钟了解(爱摩罗保定麻将胡牌... 一分钟了解(爱摩罗保定麻将胡牌神器)先前存在有挂(辅助挂)解说技巧(2021已更新)(哔哩哔哩);爱...
推荐一款(丽水跑得快麻将有挂)... 推荐一款(丽水跑得快麻将有挂)其实是真的有挂(辅助挂)力荐教程(2021已更新)(哔哩哔哩);是一款...
总算了解(一起宁德麻将钓蟹插件... 总算了解(一起宁德麻将钓蟹插件)切实是真的有挂(辅助挂)玩家教程(2020已更新)(哔哩哔哩);大家...
玩家必看教程(福建十三水外挂可... 玩家必看教程(福建十三水外挂可靠)一直是真的有挂(辅助挂)2025新版技巧(2024已更新)(哔哩哔...
揭秘几款(功夫川麻小程序可以开... 揭秘几款(功夫川麻小程序可以开挂)切实有挂(辅助挂)插件教程(2026已更新)(哔哩哔哩);功夫川麻...
总算清楚(哈哈长沙麻将有挂)好... 总算清楚(哈哈长沙麻将有挂)好像是有挂(辅助挂)透牌教程(2024已更新)(哔哩哔哩);哈哈长沙麻将...
重大通报(越乡游绍兴麻将有挂)... 重大通报(越乡游绍兴麻将有挂)竟然真的有挂(辅助挂)新2025教程(2026已更新)(哔哩哔哩);一...
一起来讨论(山西大唐麻将可以调... 一起来讨论(山西大唐麻将可以调胜率)固有有挂(辅助挂)安装教程(2021已更新)(哔哩哔哩);是一款...
技术分享(浙江游戏大厅辅助器有... 技术分享(浙江游戏大厅辅助器有用)原来是真的有挂(辅助挂)2025新版(2022已更新)(哔哩哔哩)...