导航:首页 > 源码编译 > 编译时能发现注释中的错误吗

编译时能发现注释中的错误吗

发布时间:2022-11-27 18:23:48

❶ 程序编译错误不知道是什么原因

不能通编译过的程序实际上还不是合法的程序,因为它不满足C语言对于程序的基本要求。

检查语法错误的第一要义:集中力量检查系统发现的第一个错误,弄清并改正它。

在编译过程中系统发现的错误主要有两类:基本语法错误和上下文关系错误。这些错误都在表面上,可以直接看得见。也是比较容易弄清,比较容易解决的。关键是需要熟悉C语言的语法规定和有关上下文关系的规定,按照这些规定检查程序正文,看看存在什么问题。

编译中系统发现错误都能指出错误的位置。不同系统在这方面的能力有差异,在错误定位的准确性方面有所不同。有的系统只能指明发现错误的行,有的系统还能够指明行内位置。

一般说,系统指明的位置未必是真实错误出现的位置。通常情况是错误出现在前,而系统发现错误在后,因为它检查到实际错误之后的某个地方,才能确认出了问题,因此报出错误信息。要确认第一个错误的原因,应该从系统指明的位置开始,在那里检查,并从那里开始向前检查。

系统的错误信息中都包含一段文字,说明它所认定的错误原因。应该仔细阅读这段文字,通常它提供了有关错误的重要线索。但也应该理解,错误信息未必准确,有时错误确实存在,但系统对错误的解释也可能不对。也就是说,在查找错误时,既要重视系统提供的错误信息,又不应为系统的错误信息所束缚。

发现了问题,要想清楚错误的真正原因,然后再修改。不要蛮干。在这时的最大诱惑就是想赶快改,看看错误会不会消失。但是蛮干的结果常常是原来的错误没有弄好,又搞出了新的错误。

另一个值得注意的地方:程序中的一个语法错误常常导致编译系统产生许多错误信息。如果你改正了程序中一个或几个错误,下面的弄不清楚了,那么就应该重新编译。改正一处常常能消去许多错误信息行。

解决语法错误

常见语法错误:

1)缺少语句、声明、定义结束的分号。

2)某种括号不配对。C语言中括号性质的东西很多,列举如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括号不配对可能引起许多不同的错误信息。

3)关键字拼写错误。

较难认定的典型错误:

1)宏定义造成的错误。这种东西不能在源程序文件中直接看到,是在宏替换之后出现的。常见的能引起语法错误的宏定义错误:宏定义中有不配对的括号,宏定义最后加了不该有的分号,……

解决上下文关系错误

1)变量没有定义。产生这个问题的原因除了变量确实没有大意外,还可能是变量的拼写错误,变量的作用域问题(在不能使用某个变量的地方想去用那个变量)。

2)变量重复定义。例如在同一个作用域里用同样名字定义了两个变量,函数的局部变量与参数重名等。

3)函数的重复定义。可能是用同一个名字定义了两个不同的函数。或者是写出的函数原型在类型上与该函数的定义不相符。有时没有原型而直接写函数调用也可能导致这种错误信息,因为编译程序在遇到函数调用而没有看到函数原型或函数定义时,将给函数假定一个默认原型。如果后来见到的函数定义与假定不符,就会报告函数重复定义错误。

4)变量类型与有关运算对运算对象或者函数对参数的要求不符。例如有些运算(如 %)要求整数参数,而你用的是某种浮点数。

5)有些类型之间不能互相转换。例如你定义了一个结构变量,而后要用它给整数赋值。系统容许的转换包括:数值类型之间的转换,整数和指针之间的转换,指针之间的转换。其余转换(无论是隐含的,还是写出强制)都不允许。参见《C语言程序设计》(K&R)197-199页。

如何看待编译警告

当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。

注意:经验表明,警告常常意味着严重的隐含错误。

常见警告:

1)(局部自动)变量没有初始化就使用。如果对局部指针变量出现这种情况,后果不堪设想。对于一般局部自动变量,没有初始化就使用它的值也不会是有意义的。

2)在条件语句或循环语句的条件中写了赋值。大部分情况是误将 == (等于判断)写成 = 了。这是很常见的程序错误,有些编译程序对这种情况提出警告。

❷ C++中的注释,如//和/* */的注释内容,会参与编译吗即反编译时会被看到吗

这个建议在CSDN技术专区里面找到答案。

(2)编译时能发现注释中的错误吗扩展阅读:由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。计算机发明者约翰·冯·诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域。

❸ 编译程序可发现源程序全部的什麽错误和部分的什麽错误

编译程序可发现源程序全部的“语法”错误和部分的“语义”错误。
特意找了详细解释帮你理解:用户编写的源程序不可避免的会有一些错误,这些错误大致可以分为静态错误和动态错误。动态错误也称动态语义错误,它们发生在程序运行时,例如除数为0、引用数组元素下标错误等。静态错误是之编译阶段发现的程序错误,可分为语法错误和静态语义错误,如单词拼写错误、标点符号错误、表达式缺少操作数、括号不匹配等有关语言结构上的错误称为语法错误,而语义分析时发现的运算符与运算对象不合法等错误属于静态语义错误。语义分析阶段主要检查源程序是否包含静态语义错误,而一般的编译器很难检查出动态语义错误。

❹ c语言在编译过程中会发现拼写错误吗

也可以说会吧。如果前面定义了一个变量,后面你用这个变量时,打错了字母,编译程序会提醒你“未定义的符号.......”,这时,你就知道,哪个变量名打错了。如果是普通的英语,许多输入法会发现拼写错误,一些文档编辑程序也能发现拼写错误。副作用是,可能会把你自己定义的标志符也视作拼写错误。

❺ "在对一个C程序进行编译的过程中,可发现注释中的拼写错误"这句话对不

纯属扯淡,注释是给人看的,又不是给机器看的,只要人感觉没问题就行,根本就没有对错之分,编译器在编译代码的时候,直接就跳过去了,去哪里检查正误啊

❻ 编译的时候能发现哪些错误

词法分析阶段能够检测出输入中不能形成源语言任何记号的错误字符串。语法分析阶段可以确定记号流中违反源语言结构(语法)规则的错误。语义分析阶段试图检测出具有正确语法结构但对操作无意义的部分。例如,我们试图将两个标识符相加,其中一个标识符是数组名,而另一个标识符却是过程名。(编译原理-龙书原话)。其他错误例如算法错误编译程序检测不出。

❼ c语言程序编译时,注释部分会参加编译吗,会出现在目标程序中吗

不会的,因为注释被忽略了。

C语言的原型ALGOL60语言(也称为A语言)。

1963年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言。

1967年,剑桥大学的MatinRichards对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的KenThompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

❽ “ 编译时可以发现注释中的错误” “C程序的执行总是从程序的第一句开始” 请问这两句话对吗

错误 注释是不被编译的、不被执行的 怎么会产生错误呢

❾ 程序编好后计算机能查出语法错误吗

当然可以,编译就不会通过的,会在编译程序下方显示错误,你点击错误报告会直接跳至你语法错误的行。

❿ c语言的注释中存在错误会被编译器检查出来

不会。
所谓注释,便是用自然语言对源代码中某些语句或方法进行说明。并且注释的内容不会被编译器编译。可以在源代码中添加任何想要添加的说明。
注释可以出现在代码中的任何位置,用来向用户提示或解释代码的含义。程序编译时,会忽略注释,不做任何处理,就好像它不存在一样。

阅读全文

与编译时能发现注释中的错误吗相关的资料

热点内容
服务器无响应是什么原因呀 浏览:978
wd文档里的app怎么制作 浏览:509
电脑里的文件夹没有了一般能恢复吗 浏览:410
哪里有配加密钥匙的 浏览:208
服务器开不了机怎么把数据弄出来 浏览:958
gif动态图片怎么压缩 浏览:519
黑猴子棒球压缩文件解压密码 浏览:631
如何让app适应不同的手机屏幕大小 浏览:8
苹果手机如何给安卓手机分享软件 浏览:759
苹果电脑怎么运行腾讯云服务器 浏览:59
明日之后沙石堡命令助手 浏览:261
蛋糕店用什么样的app 浏览:877
长安银行信用卡app怎么取现 浏览:635
dos命令cmd命令的 浏览:226
阿里云存档视频文件的服务器 浏览:194
ftp修改文件权限命令 浏览:491
周易八卦梅花算法 浏览:676
java组织机构 浏览:953
h5大转盘游戏源码 浏览:592
学校服务器地址查询 浏览:109