当编译错误时

写给新手看的文章,希望能够帮到您

BB in start

相信很多程序员在一开始学习时总会遇到这种问题——CE(编译错误)

我每次看到我的群里有人问“求助大神,这个怎么错了??”而且错误原因是CE我就心烦——你能够细心一点吗?

CE——编译错误,也叫语法错误。通常是因为粗心造成的。我们看一看百度的解释:

如果编译过程中发现源程序有语法错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。

需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。

编译错误有时候可以“并发”很多其他的错误。

那么,我们以 C \color{red}\texttt{C} 语言为例,介绍在不同编译器下的各种编译错误:


expected ‘;’ before ‘}’ token

这是新手比较常见的问题。我们放出一个带有这个错误的代码:

#include <stdio.h>
int main()
{
    return 0
}

很显然:你忘记了打分号

解决方案:在错误出现处的行末尾加上分号。


expected ‘)’ before ‘变量名

这个问题跟上面一个问题类似,我们还是来看一看这个问题产生的代码例子:

#include <stdio.h>
int main()
{
	int a=0printf("%d"a);
}

我们用上面一个错误来看,我们就会发现,我们在输出时,引号和变量名之间忘记了写逗号,

解决方案:在输出语句的引号和变量名中间加上,


头文件名:No such file or directory

这个就是比较常见的了,我们继续来放代码:

#include <std>
int main()
{
	return 0;
}

只要出现了这个错误,你就一定要想想:“你是不是拼写错了?”
如果没有,那么请检查您的配置,具体检查方式这里就不再多说了。


变量/常量/宏/函数 ” was not declared in this scope

关于这个的问题会有很多种代码,我们这里放3种不同的情况

//1
#include <stdio.h>
int main()
{
	int a;
	b(a);
}
//2
#include <stdio.h>
int main()
{
	printf("%d",a);
}
//3
#include <windows.h>
int main()
{
	printf("L_T_F_");
}

以上三种错误我们一一解决:

1.这个错误的原因是因为 “没有b这个函数” 或者 “使用位置不是b的作用域”
解决方案:如果是 “没有b这个函数” ,请创建一个函数b(),如果是 “使用位置不是b的作用域” 请加上函数声明

2.很显然,这个错误是因为 “没有变量a”
解决方案:加上变量a

3.这个也是比较常见的,printf并不是windows.h中带有的,而是stdio.h
解决方案:加上头文件


invalid conversion from ‘类型名称’ to ‘类型名称’

放代码:

#include <stdio.h>
int main()
{
	int a;
	printf(a);
}

我们知道,printf这个函数接受的第一个参数是const char*,但是我们却把第一个参数写成了int类型,所以就会有这个警告

解决方案:请检查您的类型是否符合要求


Cannot open include file: ‘路径’: No such file or directory

额这个就需要你看看你的路径对不对了

解决方案:检查路径是否正确


stray ‘\数字’ in program

这是一个经典的字符问题,还是上代码:

#include <stdio.h>
int main()
{
	()‘’“”;::+-×/=&|! ?
	// () ''"";::+-*/=&|!
}

因为我这个代码里用了中文字符/全角字符导致编译器无法运行

解决方案:修改中文、全角符号


BB in last:

关于错误还有很多,这里只是举出了一些常见的错误
如果你还有其他错误没找到,请看这个帖子

猜你喜欢

转载自blog.csdn.net/qq_42040281/article/details/84582776