收藏 分享(赏)

VC6编译与链接过程中常见的出错提示.doc

上传人:scg750829 文档编号:7132660 上传时间:2019-05-06 格式:DOC 页数:19 大小:195KB
下载 相关 举报
VC6编译与链接过程中常见的出错提示.doc_第1页
第1页 / 共19页
VC6编译与链接过程中常见的出错提示.doc_第2页
第2页 / 共19页
VC6编译与链接过程中常见的出错提示.doc_第3页
第3页 / 共19页
VC6编译与链接过程中常见的出错提示.doc_第4页
第4页 / 共19页
VC6编译与链接过程中常见的出错提示.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、Visual C+ 6.0 编程环境的使用目 录4 编译与链接过程中常见的出错提示 14.1 编译、链接问题的解决方法 .1(1)努力读懂 VC报告的错误与警告信息 .1(2)定位问题所在行 1(3)解决问题的方法 1(4)避免被 VC误导 .1(5)编译链接问题的解决不代表程序正确 24.2 常用单词与术语 .24.3 常见编译错误信息 .4(1)error C2001: newline in constant 4(2)error C2017: illegal escape sequence4(3)error C2015: too many characters in constant4(4

2、)error C2137: empty character constant.5(5)error C2018: unknown character 0x#5(6)error C2041: illegal digit # for base 8 .5(7)error C2065: xxxx : undeclared identifier5(8)error C2086: xxxx : redefinition.6(9)error C2374: xxxx : redefinition; multiple initialization6(10)error C2143: syntax error : mi

3、ssing ; before (identifier) xxxx或 before type .6(11)error C4716: xxx : must return a value7(12)error C2006: #include expected a filename, found ( / found identifier / found newline7(13) error C2039: aver : is not a member of STU.7(14)error C2043: illegal break.7(15)error C2046: illegal case / error

4、C2047: illegal default .8(16)error C2050: switch expression not integral .8(17)error C2051: case expression not constant .8(18)error C2079: da uses undefined struct data .8(19)error C2081: num2 : name in formal parameter list illegal 9(20)error C2122: num2 : prototype parameter in name list illegal

5、.9(21)error C2082: redefinition of formal parameter aver .9(22)error C2172: fread : actual parameter is not a pointer : parameter 192(23)error C2198: FindMin : too few actual parameters 9(24)error C2087: : missing subscript10(25)error C2133: num : unknown size10(26)error C2106: = : left operand must

6、 be l-value.10(27)error C2108: subscript is not of integral type .10(28)error C2109: subscript requires array or pointer type10(29)error C2181: illegal else without matching if11(30)error C2296: % : illegal, left operand has type double 11(31)fatal error C1004: unexpected end of file found11(32)fata

7、l error C1021: invalid preprocessor command defint/hinclude.11(33)fatal error C1083: Cannot open include file: sdtio.h: No such file or directory .11(34)error C2220: warning treated as error - no object file generated 114.4 常见编译警告信息 .11(1)warning C4129: m : unrecognized character escape sequence.12(

8、2)warning C4508: main : function should return a value; void return type assumed.12(3)warning C4098: change : void function returning a value 12(4)warning C4700: local variable xxx used without having been initialized .12(5)warning C4013: print undefined; assuming extern returning int 12(6)warning C

9、4047: = : int * differs in levels of indirection from int .13(7)warning C4024: fun : different types for formal and actual parameter 2 .13(8)warning C4133: function : incompatible types - from int 128 to char * .13(9)warning C4022: fread : pointer mismatch for actual parameter 114(10)warning C4018:

10、int main(void)printf(“Hello World!n“);return 0;程序的运行结果不正确,应该是程序的算法本身有问题或算法的实现有问题,数据处理错误所致,应仔细检查源程序的设计问题。4.2 常用单词与术语base 8:以8为基础,八进制。Characters:字符。Comment:注释。Constant:常量,例如整型、浮点型(又分float、double)、字符、字符串常量。Digit:数字。Escape sequence:转义序列。Expression:表达式。Function:函数formal parameter/actual parameter:形式上的参数,

11、形参/实际的参数,实参。Identifier:标识符,变量、函数等的名字。Indirection:间接寻址。Macro:宏,#define所定义。Operand/operator:操作数/操作符。Parameter:参数。Pointer:指针。3Preprocessor:预处理,与#define、#include相关Prototype:原型。signed/unsigned:有符号的/无符号的。Symbol:符号。Subscript:下标。Truncation:截断,舍去。Type:(数据)类型。Value:值。Variable,local variable:变量,局部变量。l-value:左值

12、,赋值操作符(=)左边的值,可理解为等号左边的能存储数据的变量。Extern,external:外部,本文件以外的其它模块所定义的变量或函数。Assumed,assuming:假定,假设,默认为。Convert:转换。Differs,different:不同,不一致,有差异的。Fatal:致命的。Illegal:非法,不合法。Incompatible:不相容的,不兼容的。Initialization,initialized:初始化,给变量赋一个确定的值。Integral:完整的,整数的。Invalid:无效的。Matching/mismatch:匹配/不匹配。Missing:缺少。Redefi

13、nition:重定义。Syntax:句法,语法。Declared/undeclared: 已声明的/未声明的。Undefined:未定义;Unexpected/expected:意外,意想不到,不希望的/预期的、希望的。Unknown:未知。Unrecognized:无法识别的。Unresolved:悬而未决,尚未解决,还未落实44.3 常见编译错误信息(1)error C2001: newline in constant直译:在常量中出现了换行。错误分析:字符串常量、字符常量中是否有换行。字符串常量的尾部是否漏掉了双引号。某个字符串常量中是否出现了双引号字符“” ,但是没有使用转义符“” 。

14、某个字符常量的尾部是否漏掉了单引号。是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。导致错误的例句:正确:printf(“Hello World!n“); 在屏幕上显示Hello World!出错:printf(“Hello World!n); 或printf(“Hello World!“);出错:printf(“HelloWorld!n“);正确:printf(“Hello “World!“n“); 在屏幕上显示Hello “World!“出错:printf(“Hello “World!“n“);正确:putchar(A); 或ch = A; 或num = 3;出错:putch

15、ar(A); 或ch = A; 或num = 3; 或num = 3; “(2)error C2017: illegal escape sequence直译:非法的转义序列。错误分析:在字符和字符串常量中,转义字符是以反斜线开头的字符序列,有特定的含义,例如n表示换行,表示一个反斜线,表示单引号, “表示双引号,t表示水平制表,b表示退格。若是字符常量,必须用两个单引号引起来,若是字符串常量,则必须用两个双引号引起来,否则会报本错误。导致错误的例句:正确:putchar(n); 或printf(“Hello World!n“);出错:putchar(n); 或printf(Hello Worl

16、d!n“);(3)error C2015: too many characters in constant直译:字符常量中的字符过多。错误分析:单引号表示字符型常量。一般的,单引号中必须有且只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。5另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如:if (x = x | x = y) 值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASCII码作为一个整数(int,4B)整体看待的数字。(4)error C2137: empty ch

17、aracter constant直译:空字符常量。错误分析:原因是连用了两个单引号,而中间没有任何字符,这是不允许的。导致错误的例句:正确:ch = ;错误:ch = ;(5)error C2018: unknown character 0x#直译:未知字符0x# 。错误分析:0x#是字符ASC码的16进制表示法。这里说的未知字符,通常是指全角符号(包括空格)、字母、数字,或者直接输入了汉字。如果全角字符和汉字用双引号包含起来,则成为字符串常量的一部分,是不会引发这个错误的。导致错误的例句:正确:int num; 或int num; 或int num1, num2; 或num2 = (num1

18、 + 3) / 2;错误:int num; 或int num; 或int num1,num2; 或num2(num1 3)/ 2;注:上行中int num;看似无错,实际上在t和n之间移动光标时就可发现光标一下子走了两个字符的距离,即int和num之间被输入了一个全角的空格,这是较难发现的。(6)error C2041: illegal digit # for base 8直译:在八进制中出现了非法的数字#(这个数字#通常是8或者9)。错误分析:如果某个数字常量以“0”开头(单纯的数字0除外),那么编译器会认为这是一个8进制数字。例如:“089” 、 “078”、 “093”都是非法的,而“0

19、71”是合法的,等同于是进制中的“57” 。(7)error C2065: xxxx : undeclared identifier直译:标识符“xxxx”未定义。错误分析:首先,解释一下什么是标识符。标志符是程序中出现的除关键字之外的词,通常由字母、数字和下划线组成,不能以数字开头,不能与关键字重复,并且区分大小写。变量名、函数名、类名、常量名等等,都是标志符。所有的标志符都必须先定义,后使用。标志符有很多种用途,所以错误也有很多种原因。如果“xxxx”是一个变量名,那么通常是程序员忘记了定义这个变量,或者拼写错误、大小写错误所引起的,所以,首先检查变量名是否正确。6如果“xxxx”是一个函

20、数名,那就怀疑函数名是否没有定义。可能是拼写错误或大小写错误,当然,也有可能是你所调用的函数根本不存在。还有一种可能,你写的函数在你调用所在的函数之后,而你有没有在调用之前对函数原形进行申明。将C语言的保留关键字写错,例如将else写else也会导致本错误的出现。如果“xxxx”是一个库函数的函数名,比如“sqrt” 、 “fabs”,那么看看你在cpp文件已开始是否包含了这些库函数所在的头文件(.h文件)。例如,使用“sqrt”函数需要头文件math.h。如果“xxxx”就是“cin”或“cout” ,那么一般是没有包含“iostream.h” 。如果“xxxx”是一个类名,那么表示这个类没

21、有定义,可能性依然是:根本没有定义这个类,或者拼写错误,或者大小写错误,或者缺少头文件,或者类的使用在申明之前。标志符遵循先申明后使用原则。所以,无论是变量、函数名、类名,都必须先定义,后使用。如使用在前,申明在后,就会引发这个错误。C+的作用域也会成为引发这个错误的陷阱。在花括号之内变量,是不能在这个花括号之外使用的。类、函数、if、do(while)、for所引起的花括号都遵循这个规则。前面某句语句的错误也可能导致编译器误认为这一句有错。如果你前面的变量定义语句有错误,编译器在后面的编译中会认为该变量从来没有定义过,以致后面所有使用这个变量的语句都报这个错误。如果函数申明语句有错误,那么将

22、会引发同样的问题。(8)error C2086: xxxx : redefinition直译:“xxxx”重复定义。错误分析:变量“xxxx”在同一作用域中定义了多次。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。(9)error C2374: xxxx : redefinition; multiple initialization直译:“xxxx”重复申明,多次初始化。错误分析:变量“xxxx”在同一作用域中定义了多次,并且进行了多次初始化。检查“xxxx”的每一次定义,只保留一个,或者更改变量名。(10)error C2143: syntax error : missing ;

23、 before (identifier) xxxx或before type直译:语法错误:在(标志符)“xxxx”或“类型”前缺少分号。错误分析:这是VC6的编译期最常见的误报,当出现这个错误时,往往所指的语句并没有错误,而是它的上一句语句发生了错误。其实,更合适的做法是编译器报告在上一句语句的尾部缺少分号。上一句语句的很多种错误都会导致编译器报出这个错误:上一句语句的末尾真的缺少分号。那么补上就可以了。上一句语句不完整,或者有明显的语法错误,或者根本不能算上一条语句(有时候是无意中按到键盘所致)。变量应在一个程序块的开始处定义,但程序中却违反了此规则,例如以下代码将导致7本错误(error

24、C2143: syntax error : missing ; before type)的出现:int num1;printf(“Hello World!n“);int num2;将以上代码调整如下即可消除本错误:int num1;int num2;printf(“Hello World!n“);如果发现发生错误的语句是cpp文件的第一行语句,在本文件中检查没有错误,但其使用双引号包含了某个头文件,那么检查这个头文件,在这个头文件的尾部可能有错误。(11)error C4716: xxx : must return a value直译:“xxx”必须返回一个值。错误分析:函数声明了有返回值(不

25、为void),但函数实现中忘记了return 返回值。要么函数确实没有返回值,则修改其返回值类型为void,要么在函数结束前返回合适的值。(12)error C2006: #include expected a filename, found ( / found identifier / found newline直译:#include后需跟上一个文件名,却出现了( / 标识符 / 换行。错误分析:正确的#include举例为#include 或#include “user.h“,但若错写为以下之一,则编译器将报告本错误:#include (user.h) 或#include user.h 或

26、#include(13) error C2039: aver : is not a member of STU直译:aver不是结构体STU的成员。错误分析:程序中定义了结构体类型STU,但其中并没有定义一个名字叫aver的成员,估计是忘了定义或成员名称拼写错误、前后不一致(例如定义结构体成员aver时错写为avre或Aver)。(14)error C2043: illegal break直译: 非法/无效的break。错误分析:break的作用是跳出循环(for,while)或switch,但程序中break的位置却并非如此,例如以下代码将导致本错误的出现:while (num1 6) ;b

27、reak;8(15)error C2046: illegal case / error C2047: illegal default直译: 非法的case / 非法的default。错误分析:case和default应处于switch语句里,但程序中其位置可能并非如此,例如以下代码将导致本错误的出现:switch (num1) ;case 1:default:num2+;(16)error C2050: switch expression not integral直译: switch所依据的表达式不是整数。错误分析:语句“switch (表达式)”里的表达式的值必须是整数(char也可),例如

28、以下代码将导致本错误的出现:float num1;switch ( num1/10 )将以上代码调整如下即可消除本错误:switch ( (int)num1/10 )(17)error C2051: case expression not constant直译: case表达式不是常量。错误分析:语句“case 表达式”里的表达式的值必须是常量,不能使用变量,例如以下代码将导致本错误的出现:switch ()case A:注:以上代码出错的原因可能是本应为“case A:”,改为“case “A“:”也将导致本错误的出现。(18)error C2079: da uses undefined s

29、truct data直译: 定义变量da时使用了未定义的结构体data错误分析:可能是结构体类型名data前后不一致引起,例如以下代码即会导致本错误:struct Data int num;char name10;9struct data da;(19)error C2081: num2 : name in formal parameter list illegal直译: 名字num2在函数的形参列表中不合法。错误分析:以下代码将导致本错误的出现:int getMax(int num1, num2)将第一行代码改为“int getMax(int num1, int num2)”即完成修正。(2

30、0)error C2122: num2 : prototype parameter in name list illegal直译: 名字num2在函数的原型参数在名字列表中不合法。错误分析:以下代码将导致本错误的出现:int getMax(num1, int num2)将第一行代码改为“int getMax(int num1, int num2)”即完成修正。(21)error C2082: redefinition of formal parameter aver直译: 重定义形参aver。错误分析:在函数的形参里已有了变量aver的定义,在函数体中却又再次定义了变量aver,如以下代码:i

31、nt getNum(int num1, int num2, int aver)int sum, aver;修改方案为:若aver不需要作为函数的必须参数,则从形参表的将其去掉;若必作参数,则在函数体中将其定义去掉。(22)error C2172: fread : actual parameter is not a pointer : parameter 1直译: 调用函数fread时,参数1的实参不是指针。错误分析:函数fread要求其第一参数为一指针,以下代码将导致本错误:FILE *fp;float num;fread(num, sizeof(num), 1, fp);修改方案为:将fre

32、ad所在行代码改为:fread(23)error C2198: FindMin : too few actual parameters直译:调用函数FindMin时,实参个数太少。错误分析:例如,函数FindMin被定义为有3个参数,但使用FindMin时却只给了2个10参数,就会导致本错误的出现。(24)error C2087: : missing subscript直译: : 缺少下标。错误分析:二维数组作为函数的形参时,容易出现本错误,如以下代码即出错:int fun(int num, int n);修改方案为指明行的大小,若传递的二维数组实际为int array58,则上行改为“int

33、 fun(int num8, int n);”即解决问题。(25)error C2133: num : unknown size直译: 定义数组num时,未知数组的大小。错误分析:定义数组时(不是定义函数的形参),若未提供初始化数据,则必须指明数组的大小,如以下代码即出错:int num;(26)error C2106: = : left operand must be l-value直译: 对于赋值操作=,其左操作数必须是左值(即可以存储数据的,一般是变量)。错误分析:这种错误一般发生在if语句中,例如将if (3 = num)写成了if (3 = num)。注意,在比较一个变量之值和一个常

34、量是否相等时,大多数的企业都要求将常量写在左边,以防止出现将=误写为=若将变量写在左边,则是合法的表达式,编译器因此将无法发现该错误而留下事故隐患。(27)error C2108: subscript is not of integral type直译: 数组下标不是整数类型。错误分析:数组的下标必须是整数,如下代码将导致本错误的出现:int num10;float i=1;numi = 3;(28)error C2109: subscript requires array or pointer type直译: 下标引用需要数组或指针类型。错误分析:对于数组或指针,可以使用下标的方式来访问相对

35、于数组或指针起始地址若干位置的存储单元的数据,以下代码是正确的:int num10, *pArr;pArr = num;num3 = 100;pArr4 = 120;其中num3表示以数组num首地址为起点的往后第3个单元,pArr4表示以指针pArr所指位置(此例中实际上是数组num的首地址)为起点的往后第4个单元(等价于num4)。若将其中的“int num10, *pArr;”改为“int num10, pArr;”或“int num, *pArr;”,均将11出现本错误。(29)error C2181: illegal else without matching if直译: 没有与之相

36、匹配的if, else是不合法的。错误分析:有if才可能有else,else总是和if紧紧相对应。有可能是过多的if/else嵌套导致缺少if而没有配对,但以下代码可能更普遍(if所在行尾多了;,导致if在该处结束):if (num 3) ;else;(30)error C2296: % : illegal, left operand has type double 直译:运算%(模运算、求余运算)不合法,因为其左操作数的类型是double 。错误分析:运算%要求参加运行的左右两个数的数据类型为整型。(31)fatal error C1004: unexpected end of file f

37、ound直译:意外的文件结束。错误分析:程序代码还没有结束,但却发现文件已结束,原因一般是少了右花括号所致通常是花括号多时,没有严格配对造成,此时只要调整缩进格式,将花括号成对对齐,细心并耐心一点,便能发现问题所在。(32)fatal error C1021: invalid preprocessor command defint/hinclude直译: 无效的预处理命令defint或hinclude错误分析:应该是将#define写成了#defint、将#include写成了#hinclude所致。(33)fatal error C1083: Cannot open include file

38、: sdtio.h: No such file or directory直译: 无法打开包含文件sdtio.h: 原因是没有这样的文件或目录。错误分析:文件名拼写错误,此处本应是写stdio.h。(34)error C2220: warning treated as error - no object file generated直译:对程序的警告视为出错处理,没有目标文件生成。错误分析:系统使用了严格的编译选项,不允许程序中出现编译警告提示。为解决此问题,请修改程序,以消除相应的警告信息。4.4 常见编译警告信息warning类型的信息为警告性质,其意思是并不一定有错,程序仍可以被成功编译、

39、链12接,但可能有问题、有风险,特别是在实际工作中,应该认真对待,消除所有的警告提示,因为这往往会埋下工程事故隐患。在计算中心的的C语言考试系统中,为了锻炼培养学生的严谨作风和素质,不允许程序中出现警告提示且检查的警告内容比默认值更多,若有警告则直接做零分处理,请注意考试评分系统给出的提示。(1)warning C4129: m : unrecognized character escape sequence直译:无法识别的字符转义序列m。错误分析:在字符和字符串常量中,转义字符是以反斜线开头的字符序列,有特定的含义,例如n表示换行,表示一个反斜线,表示单引号, “表示双引号,t表示水平制表,

40、b表示退格,这些均是合法的转义字符。但若程序中出现了未定义的、编译器不知其含义的转义序列,则会出现本警告。导致错误的例句:正确:printf(“Hello World!n“); 在屏幕上显示Hello World!出错:printf(“Hello World!m“);(2)warning C4508: main : function should return a value; void return type assumed直译:main函数应该返回一个值;void返回值类型被假定。错误分析:函数应该有返回值,声明函数时应指明返回值的类型,确实无返回值的,应将函数返回值声明为void。若未声

41、明函数返回值的类型,则系统默认为整型int。此处的错误估计是在main函数中没有return返回值语句,而main函数要么没有声明其返回值的类型,要么声明了。(3)warning C4098: change : void function returning a value直译: 函数change的类型是void,但却返回了值。错误分析:函数change的类型被定义成了void,就不应该返回值。要么是函数类型定义有误,要么是返回语句不该带值返回。 (4)warning C4700: local variable xxx used without having been initialized直

42、译:警告局部变量“xxx”在使用前没有被初始化。错误分析:这是初学者常见的错误,例如以下程序段就会造成这样的警告,而且程序的确有问题,应加以修改,尽管编译、链接可以成功若不修改,x的值到底是多少无法确定,是随机的,判断其是否与3相同没有意义,在运气不好的情况下,可能在调试程序的机器上运行时,结果看起来是对的,但更换计算机后再运行,结果就不对,初学者往往感到迷惑。int x;if (x=3) printf(“hello“);13(5)warning C4013: print undefined; assuming extern returning int直译:“print”未定义,编译时假设其是

43、一个外部定义的函数并且返回值类型为int。错误分析:一般有三种原因会导致此警告:函数的拼写不正确,少写了字母、字母大小写不同或字母顺序错误(如main与mian),如此处实际上应为printf。拼写正确且为库函数的名称,但未#include该函数的头文件。拼写正确但函数为用户自定义函数,没有为其在使用前做函数原型的声明(一般应将函数原型声明放在所有函数之前)。将带括号的保留关键字,如if、while、for、switch等拼写错误(大小写不同也算),编译器误认为是函数调用。(6)warning C4047: = : int * differs in levels of indirection

44、from int 直译:“赋值”时,int *与int 在间接寻址级别、引用层次上是不一致的,即二者的数据类型含义与使用是有差别的,可能导致问题。错误分析:将一个整型变量直接赋值(变量前未加fun(3, num1);(8)warning C4133: function : incompatible types - from int 128 to char *直译: 调用函数时,参数的数据类型不兼容从int 128 到 char *。错误分析:调用函数时,参数的数据类型应当一致,造成本错误的原因可能是实际的类型定义有误,或者有多个参数时,参数的顺序错误或忘了某个参数以致参数错位例如“fscanf

45、(fp, “%d“, ”误写为“fscanf(“%d“, ”将导致类似的错误。以下代码将导致本错误,原因是函数gets的参数类型在头文件stdio.h中被定义为char *,但使用时使用的是int 128,导到参数的数据类型从int 128 到 char *,存在不兼容,可能引起程序出故障。int str128;14gets(str);(9)warning C4022: fread : pointer mismatch for actual parameter 1直译: 调用函数fread时,参数1的实参与指针不匹配。错误分析:函数fread要求其第一参数为一指针,以下代码将导致本错误:FIL

46、E *fp;int num;fread(num, sizeof(num), 1, fp);修改方案为:将fread所在行代码改为:fread(10)warning C4018: 1)return 0;else if (n 1)return 0;elsereturn 1;或int fun(int n)if (n 1)return 0;return 1;4.5 常见链接错误(1)error LNK2001: unresolved external symbol _main直译:未解决的外部符号:_main。错误分析:缺少main函数。看看main的拼写或大小写是否正确。(2)error LNK20

47、05: _main already defined in xxxx.obj直译:_main已经存在于xxxx.obj中了。错误分析:直接的原因是该程序中有多个(不止一个)main函数。这是初学C+的低年级同学在初次编程时经常犯的错误。这个错误通常不是你在同一个文件中包含有两个main函数,而是在一个project(项目)中包含了多个cpp文件,而每个cpp文件中都有一个main函数。引发这个错误的过程一般是这样的:你写完成了一个C+程序的调试,接着你准备写第二个C+文件,于是你可能通过右上角的关闭按钮关闭了当前的cpp文件字窗口(或者没有关闭,这一操作不影响最后的结果),然后通过菜单或工具栏创

48、建了一个新的cpp文件,在这个新窗口中,程序编写完成,编译,然后就发生了以上的错误。原因是这样的:你在创建第二个cpp文件时,没有关闭原来的项目,所以你无意中新的cpp文件加入你上一个程序所在的项目。切换到“File View”视图,展开“Source Files”节点,你就会发现有两个文件。在编写C+程序时,一定要理解什么是Workspace、什么是Project。每一个程序都是一个Project(项目),一个Project可以编译为一个应用程序(*.exe),或者一个动态链接库(*.dll)。通常,每个Project下面可以包含多个.cpp文件,.h文件,以及其他资源文件。在这些文件中,只能有一个main函数。初学者在写简单程序时,一个Project中往往只会有一个cpp文件。Workspace(工作区)是Proj

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报