Ⅰ 关于C语言在编译时常出现的错误有哪些
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")
2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory
不能打开包含文件“R…….h”:没有这样的文件或目录。
3、error C2011: 'C……': 'class' type redefinition
类“C……”重定义。
4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。(一般是汉字或中文标点符号)
5、error C2057: expected constant expression
希望是常量表达式。(一般出现在switch语句的case分支中)
6、error C2065: 'IDD_MYDIALOG' : undeclared identifier
“IDD_MYDIALOG”:未声明过的标识符。
7、error C2082: redefinition of formal parameter 'bReset'
函数参数“bReset”在函数体中重定义。
8、error C2143: syntax error: missing ':' before '{'
句法错误:“{”前缺少“;”。
9、error C2146: syntax error : missing ';' before identifier 'dc'
句法错误:在“dc”前丢了“;”。
10、error C2196: case value '69' already used
值69已经用过。(一般出现在switch语句的case分支中)
11、error C2509: 'OnTimer' : member function not declared in 'CHelloView'
成员函数“OnTimer”没有在“CHelloView”中声明。
12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。
13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention
类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。
14、error C2660: 'SetTimer' : function does not take 2 parameters
“SetTimer”函数不传递2个参数。
15、warning C4035: 'f……': no return value
“f……”的return语句没有返回值。
16、warning C4553: '= =' : operator has no effect; did you intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having been initialized
局部变量“bReset”没有初始化就使用。
18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。
19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing
连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还在运行,未关闭)
20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)"
连接时发现没有实现的外部符号(变量、函数等)。
function call missing argument list 调用函数的时候没有给参数。
member function definition looks like a ctor, but name does not match enclosing class 成员函数声明了但没有使用
unexpected end of file while looking for precompiled header directive 在寻找预编译头文件时文件意外结束,编译不正常终止可能造成这种情况
Ⅱ 10. VB程序中可能出现的三类错误是 10 。 ① 编译错误 ② 语法错误
我说下。首先,题目本身是错误的。应该说:VB程序中可能出现两类错误:语法错误和逻辑错误。
所谓逻辑错误,就是在编辑,编译和运行时都正常,但得不出正确结果。这样的错误通常是逻辑错误。
语法错误分为三种:1。编辑时的语法错误:主要是书写错误,如关键字拼写错误,使用了圆角标点符号等。这类错误在编辑时就可以自动查出。2。编译时语法错误:是程序在进入编译阶段时才被发现的错误。通常是使用了未定义的方法或数据成员,缺少配对的关键字等。3。运行时语法错误。在程序运行才能被发现的错误,如数据类型不匹配,试图打开一个并不存在的文件等。
回答如上。希望对你有所帮助。朋友。
Ⅲ C++,编译过程中,编译和连接时分别检查的是什么错误(如语法……)
编译的时候检查语言错误,包括关键字对应的语义逻辑,括号匹配,变量和函数存在定义或声明等
链接的时候,就要真正把需要调用的各种变量和函数的二进制代码匹配起来,比如你使用了某个变量,你使用之前声明为外部定义,而实际上你没有给出过实际定义,这是就会报错了。这是所有可执行代码检测的过程。之前编译是每个文件单独变量,生成obj文件。
Ⅳ 编译的时候能发现哪些错误
词法分析阶段能够检测出输入中不能形成源语言任何记号的错误字符串。语法分析阶段可以确定记号流中违反源语言结构(语法)规则的错误。语义分析阶段试图检测出具有正确语法结构但对操作无意义的部分。例如,我们试图将两个标识符相加,其中一个标识符是数组名,而另一个标识符却是过程名。(编译原理-龙书原话)。其他错误例如算法错误编译程序检测不出。
Ⅳ 你的程序编译后报错为“标识符未定义”,这是编译程序哪个阶段的
“标识符未定义”通常是编译器在编译程序的链接阶段报出的错误。在编译程序时,编译器会将程序源代码转换为目标代码,然后将目标代码链接成可执行文件。在链接阶段橡羡,编译器会检查程序中使用的函数、变量等标识符是否已经胡镇定义,如果没有定义,就会报出“标识符未定义”的错误。这通常是因为程序中使用了未声明或未定义的函数、变量等标识符,或者是因为程序中的某个模块没有被正确链接导致的。要解决这个问题,需要检查程序中使用的所有标识符是否已经声明或定义,裤如粗并确保所有模块都被正确链接。
Ⅵ C语言预处理编译链接各个阶段错误,分阶段的说一下
预处理阶段主要是处理宏指令,像什么#include指令、#define指令还有条件编译指令等。
编译阶段主要是检查C语言程序的语法错误,即编写的代码是否符合C语言规则,编译是以.c源文件为单位编译成.obj文件(或者是.o文件)。
链接阶段,就是把相关的.obj文件、所需的库文件等组合成一个可执行的文件。如果缺少相关所需文件,就会链接报错。
指针异常,数组下标越界这些错误属于语义错误,这个只能在执行的时候才能发现问题,这些也叫运行时错误。
Ⅶ 对负数开平方是错的,请问报错将发生在编译什么阶段
出现在编译阶段和运行阶段
C语言是一门编译型桐蔽的语言,所以它在运行前需要进行编译,那么它报错也就可能出现在编译阶段和运行阶段。编译阶段的错误是语法错误,悄宏比如少写分号,括号不配对等,而运行时的错误则是一种异常,比如内存溢出、除数为0等情况。希望以上局运州回答可以帮助到您。
Ⅷ 在使用高级语言编程时,首先可通过编译程序发现源程序的什么错误
语法错误。
编译过程 是对本文件操作。发现的就是本文件的语法错误。
Ⅸ 编译程序可发现源程序全部的什麽错误和部分的什麽错误
编译程序可发现源程序全部的“语法”错误和部分的“语义”错误。
特意找了详细解释帮你理解:用户编写的源程序不可避免的会有一些错误,这些错误大致可以分为静态错误和动态错误。动态错误也称动态语义错误,它们发生在程序运行时,例如除数为0、引用数组元素下标错误等。静态错误是之编译阶段发现的程序错误,可分为语法错误和静态语义错误,如单词拼写错误、标点符号错误、表达式缺少操作数、括号不匹配等有关语言结构上的错误称为语法错误,而语义分析时发现的运算符与运算对象不合法等错误属于静态语义错误。语义分析阶段主要检查源程序是否包含静态语义错误,而一般的编译器很难检查出动态语义错误。
Ⅹ 编译stdio.h时,会出现错误,搞不懂什么原因
1 编译阶段,执行的是对单个文件的转换,茄铅从源代顷纳冲码转换成二进制文件。
2 链接阶段,将每个源雀歼文件转成的二进制文件,及相关的系统库文件共同打包生成可执行文件。
3 从定义上可以看出,链接阶段,出现错误有两种可能:
1) 函数中引用了不存在的函数。
2) 编译环境有问题,导致ld出错。