DEV-C++编译程序和汇编程序报错,求大佬

前言:最近使用opencv,需要把c++复习下,发现改了好多这几年,随记录下这些概念和使用方法

作用:将可以被多个.cpp文件使用的函数或方法统一封装在一个文件中,当其他.cpp文件需要使用这个变量或函数时,通过#include将其包含进来就可以。

原因:这里涉及到c++的编译模式,头文件是不被编译的,只有源文件(.CPP)文件才会被编译,当然也可以说头文件和包含他的源文件一起编译,所以为了方便这些函数的多次复用和契合c++的分别编译,就可以将这些变量和函数放在.h文件中,谁需要用谁就#include下就可以了。

使用:头文件中写些变量声明了,函数声明了,类的定义了之类的,具体的可以查看文末引用的文献,那里面讲的详细。

引用:系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。用户自定义的头文件用双引号括起来,编译器首先会在用户目录下查找,然后再到c++安装目录下查找,最后在系统文件中查找。

.CPP文件,c语言中是.c文件,称为c++源文件,里面放的都是c++的源代码。.cpp文件里面的东西都是相对独立的,在编译(compile)时不需要与其他文件互通,只需要在编译成目标文件后在与其他的目标文件做一次链接(link)就行。比如,在文件a.cpp中定义一个全局函数“void a(){}”,而在文件b.cpp中需要调用这个函数。即使这样,文件a.cpp和文件b.cpp并不需要互相知道对方的存在,而是可以分别的对他们进行编译,编译成目标文件之后再链接,整个程序就可以运行了。

关于头文件和源文件,这里有两个名词,

声明:一般指头文件中的一些变量、方法、类的声明,即变量不赋值,函数不写方法体。

定义(实现):一般在说源文件中经常会出现这个词,就是对引入的头文件中的变量、方法、类等进行初始化,即给他们赋值,写上方法体。

源文件中引入头文件后,可以不用全部定义(实现)头文件中的所有成员(变量、函数、类),用到什么用什么就可以。

在写头文件时需要注意,有固定的样式,即如下方式

… … // 声明、定义语句(你的代码写在这里)

Complex.h,里面声明了一个类,类中声明了一些变量和方法 

#pragma once是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。#pragma once是相关的,有的编译器支持,有的编译器不支持,具体情况可以查看编译器API文档,不过现在大部分编译器都有这个杂注了。

#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。

这里笔者没有将Complex.h中类的所有函数都实现,然后有个比较有意思的事情,去Complex.h文件中看下

有些函数有些绿色波浪线,鼠标靠上去后显示,这个函数没有定义,就是我们没有在引用它的源文件中实现它。

我们点击最下面的显示可能的修补程序,然后点击第一个创建“函数名”的定义(在Complex.cpp中),这时候,编译器就帮我们在引用该头文件的源文件(本文中指Complex.cpp)中将其实现了,然后就没有绿色波浪线了。

源文件中实现引用的头文件中类大体就是这样的,对于函数:返回类型 类名::函数名 

5.1、使用没有被源文件实现的函数

如果,我们在main函数中使用complex类,然后Complex.cpp源文件中有个函数并没有被实现,这就会导致错误,比如,笔者最开始并没有在Complex.cpp中实现show()函数,然后直接就在main函数中,如上图,F5一运行就报下面的错误

在Complex.cpp文件中实现show()方法后再运行,就没啥事了。

5.2 源文件中包含了头文件,就一定要将头文件中声明的函数实现吗?

并不需要,笔者并没有在Complex.cpp实现所有Complex.h中complex类的所有函数,一样可以正常运行。

5.3 我们看到,complex类是写在Complex.h中,这很容易导致误解,以为这个头文件名和这个类名要一样,其实不是,比如写一个util.h头文件,里面可以包含word类,excel类,ppt类等。

}

该经验图片、文字中可能存在外站链接或电话号码等,请注意识别,谨防上当受骗!

Dev-C++是新手很喜欢的c++编辑器,由版本年代久远,界面丑的无法忍受,下面教大家如何美化得像换了款软件

  1. 点开dev这个软件,在顶上的菜单中找到TOOLS(工具);

  2. 再单击 前景,选择 Silver,在单击下面的 背景 选第一个,然后出来这个界面让你选颜色:

  3. 单击规定自定义颜色;把颜色数据改成以下,再点击确定即可

  4. 点击 int  ,前景 选择第一个;出来的界面中选第八列第三行的颜色,确定

  5. 单击 20  ;前景 选第一个,出来的界面选 规定自定义颜色,然后把色调改成这样,点确定

  6. 单击代码 中括号;前景改 silver

  7. 到这里大致上可以了,保存现在的设定。单击  预设,出来的界面 随便你起名 , 点击OK   装逼教程到此结束

  • 这里只是教程 颜色随你设置其他的

  • 第一篇文章,也是新手,任何不足请多指教

  • 谢谢 观看的各位大佬,非常感谢

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

}

C语言常见错误有三种:

  1. 语法错误:指程序中含有不符合语法规定的语句
  2. 逻辑错误:指程序中没有语法错误,可以通过编译、连接生成可执行程序,但程序运行的结果与预期不相符的错误。
  3. 运行时错误:一种是由于考虑不周或输入错误导致程序异常(Exception),比如数组越界访问,除数为零,堆栈溢出等等。另一种是由于程序设计思路的错误导致程序异常或难以得到预期的效果。

对于语法错误,编译器可以帮助我们解决;对于逻辑错误和运行时错误,编译器可以通过,但是在实际使用过程中得不到预期的结果或者运行崩溃,我们就需要通过调试来解决。

二、调试的概念以及调试器的选择

所谓调试(Dubug),就是跟踪程序的运行过程,从而发现程序的逻辑错误(思路错误),或者隐藏的缺陷(Bug)。

在调试的过程中,我们可以监控程序的每一个细节,包括变量的值、函数的调用过程、内存中数据、线程的调度等,从而发现隐藏的错误或者低效的代码。

我敢保证,每个人都会遇到逻辑错误,而且会经常遇到,初学者更是错的离谱,所以,必须掌握调试技能,没有选择的余地,没有学会调试就是没有学会编程!

在编写代码的过程中,相信大家肯定遇到过这样的情况:代码能够编译通过,没有语法错误,但是运行结果却不对,反复检查了很多遍,依然不知道哪里出了问题。这个时候,就需要调试程序了。

所谓调试(Debug),就是让代码一步一步慢慢执行,跟踪程序的运行过程。比如,可以让程序停在某个地方,查看当前所有变量的值,或者内存中的数据;也可以让程序一次只执行一条或者几条语句,看看程序到底执行了哪些代码。

在调试的过程中,我们可以监控程序的每一个细节,包括变量的值、函数的调用过程、内存中数据、线程的调度等,从而发现隐藏的错误或者低效的代码。

编译器可以发现程序的语法错误,调试可以发现程序的逻辑错误。所谓逻辑错误,是指代码思路或者设计上的缺陷。

对于初学者来说,学习调试也可以增加编程的功力,它能让我们更加了解自己自己的程序,比如变量是什么时候赋值的、内存是什么时候分配的,从而弥补学习的纰漏。

调试是每个程序员必须掌握的技能,没有选择的余地!

调试需要借助专业的辅助软件——调试器(Debugger)。现在主流C/C++调试器有下面几种:

Remote Debugger 是 VC/VS 自带的调试器,与整个IDE无缝衔接,使用非常方便,初学者建议使用该调试器,本教程也以 VS2010 为例讲解调试技巧。

}

我要回帖

更多关于 编译程序和汇编程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信