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