C / C ++中的错误
在C或C++中,我们面临各种错误。这些错误可分为五种类型。这些如下-
语法错误
运行时错误
链接器错误
逻辑错误
语义错误
让我们一一看到这些错误-
语法错误
当它违反C++编写技术或语法规则时,就会发生这种错误。这种错误通常在编译之前由编译器指示。有时这些被称为编译时错误。
在此示例中,如果不将分号放在一行之后,我们将看到如何获得语法错误。
示例
#include<stdio.h>
main() {
printf("Hello World")
}输出结果
Error] expected ';' before '}' token
朗读时间错误
程序执行时会发生这种错误。由于这不是编译错误,因此编译将成功完成。如果尝试将数字除以0,则可以检查此错误。
示例
#include<stdio.h>
main() {
int x = 52;
int y = 0;
printf("Div : %f", x/y);
}输出结果
Program crashes during runtime.
链接器错误
当成功编译程序并尝试将不同的目标文件与主目标文件链接时,会发生此类错误。发生此错误时,不会生成可执行文件,例如某些错误的函数原型,不正确的头文件等。如果将main()编写为Main(),则将生成链接错误。
示例
#include<stdio.h>
main() {
int x = 52;
int y = 0;
printf("Div : %f", x/y);
}输出结果
C:\crossdev\src\mingw-w64-v3-git\mingw-w64-crt\crt\crt0_c.cundefined reference to `WinMain'
逻辑错误
有时,我们可能无法获得所需的输出。如果语法和其他内容正确,那么由于某些逻辑问题,我们可能无法获得正确的输出。这些称为逻辑错误。有时,我们将分号放在循环之后,这在语法上是正确的,但会创建一个空白循环。在这种情况下,它将显示所需的输出。
示例
#include<stdio.h>
main() {
int i;
for(i = 0; i<5; i++); {
printf("Hello World");
}
}输出结果
Here we want the line will be printed five times. But only one time it will be printed for the block of code.
语义错误
当语法上正确但没有意义时,就会发生这种错误。这就像语法错误。如果在赋值运算符的左侧给出了某些表达式,则可能会产生语义错误。
示例
#include<stdio.h>
main() {
int x, y, z;
x = 10;
y = 20;
x + y = z;
}输出结果
[Error] lvalue required as left operand of assignment