有以下几种错误码:
1. 语法错误(Syntax Error):编译器在解析源代码时,发现语法错误,无法继续编译。例如,缺少分号、括号不匹配等。
错误示例:
```c
#include <stdio.h>
int main() {
printf("Hello, World!
}
```
在这个例子中,缺少了一个右大括号,导致语法错误。
2. 声明错误(Declaration Error):编译器在解析源代码时,发现变量或函数未声明就使用,或者声明与实际使用不符。
错误示例:
```c
#include <stdio.h>
int main() {
int a = 10;
printf("%d
}
```
在这个例子中,变量a已经声明,但在printf函数中使用了未声明的变量b,导致声明错误。
3. 类型错误(Type Error):编译器在解析源代码时,发现变量或函数的类型与声明或实际使用不符。
错误示例:
```c
#include <stdio.h>
int main() {
int a = 10;
printf("%f
}
```
在这个例子中,printf函数的格式说明符应为%d,但使用了%f,导致类型错误。
4. 名称错误(Name Error):编译器在解析源代码时,发现使用了未定义的标识符。
错误示例:
```c
#include <stdio.h>
int main() {
printf("Hello, World!
}
```
在这个例子中,printf是一个标准库函数,但在代码中使用了自定义的标识符printf,导致名称错误。
5. 地址错误(Address Error):编译器在解析源代码时,发现访问了未分配内存的地址。
错误示例:
```c
#include <stdio.h>
int main() {
int *p = NULL;
*p = 10;
return 0;
}
```
在这个例子中,指针p被初始化为NULL,然后试图通过该指针访问内存,导致地址错误。
6. 连接错误(Linkage Error):编译器在解析源代码时,发现多个源文件之间存在未解决的符号引用。
错误示例:
```c
// file1.c
#include <stdio.h>
int main() {
printf("Hello, World!
}
// file2.c
extern int printf; // 这里是错误的,应该使用#include <stdio.h>
int main() {
printf("Hello, World!
}
```
在这个例子中,file2.c试图引用file1.c中的printf函数,但没有包含<stdio.h>头文件,导致连接错误。