c常见错误有例子

合集下载

C语言错误大全

C语言错误大全

1、意思是:在 xxx 之前应输入表达式。

2、下面为C语言的错误大全及中文解释:1: Ambiguous operators need parentheses —不明确的运算需要用括号括起2: Ambiguous symbol xxx —不明确的符号3: Argument list syntax error —参数表语法错误4: Array bounds missing —丢失数组界限符5: Array size toolarge —数组尺寸太大6: Bad character in paramenters —参数中有不适当的字符7: Bad file name format in include directive —包含命令中文件名格式不正确8: Bad ifdef directive synatax —编译预处理ifdef有语法错9: Bad undef directive syntax —编译预处理undef有语法错10: Bit field too large —位字段太长11: Call of non-function —调用未定义的函数12: Call to function with no prototype —调用函数时没有函数的说明13: Cannot modify a const object —不允许修改常量对象14: Case outside of switch —漏掉了case 语句15: Case syntax error — Case 语法错误16: Code has no effect —代码不可能执行到17: Compound statement missing{ —分程序漏掉"{"18: Conflicting type modifiers —不明确的类型说明符19: Constant expression required —要求常量表达式20: Constant out of range in comparison —在比较中常量超出范围21: Conversion may lose significant digits —转换时会丢失意义的数字22: Conversion of near pointer not allowed —不允许转换近指针23: Could not find file xxx —找不到XXX文件24: Declaration missing ; —说明缺少";"25: Declaration syntax error —说明中出现语法错误26: Default outside of switch — Default 出现在switch语句之外27: Define directive needs an identifier —定义编译预处理需要标识符28: Division by zero —用零作除数29: Do statement must have while — Do-while语句中缺少while部分30: Enum syntax error —枚举类型语法错误31: Enumeration constant syntax error —枚举常数语法错误32: Error directive :xxx —错误的编译预处理命令33: Error writing output file —写输出文件错误34: Expression syntax error —表达式语法错误35: Extra parameter in call —调用时出现多余错误36: File name too long —文件名太长37: Function call missing ) —函数调用缺少右括号38: Fuction definition out of place —函数定义位置错误39: Fuction should return a value —函数必需返回一个值40: Goto statement missing label —Goto语句没有标号41: Hexadecimal or octal constant too large —16进制或8进制常数太大42: Illegal character x —非法字符x43: Illegal initialization —非法的初始化44: Illegal octal digit —非法的8进制数字 A45: Illegal pointer subtraction —非法的指针相减46: Illegal structure operation —非法的结构体操作47: Illegal use of floating point —非法的浮点运算48: Illegal use of pointer —指针使用非法49: Improper use of a typedefsymbol —类型定义符号使用不恰当50: In-line assembly not allowed —不允许使用行间汇编51: Incompatible storage class —存储类别不相容52: Incompatible type conversion —不相容的类型转换53: Incorrect number format —错误的数据格式54: Incorrect use of default — Default使用不当55: Invalid indirection —无效的间接运算56: Invalid pointer addition —指针相加无效57: Irreducible expression tree —无法执行的表达式运算58: Lvalue required —需要逻辑值0或非0值59: Macro argument syntax error —宏参数语法错误60: Macro expansion too long —宏的扩展以后太长61: Mismatched number of parameters in definition —定义中参数个数不匹配62: Misplaced break —此处不应出现break语句63: Misplaced continue —此处不应出现continue语句64: Misplaced decimal point —此处不应出现小数点65: Misplaced elif directive —不应编译预处理elif66: Misplaced else —此处不应出现else67: Misplaced else directive —此处不应出现编译预处理else68: Misplaced endif directive —此处不应出现编译预处理endif69: Must be addressable —必须是可以编址的70: Must take address of memory location —必须存储定位的地址71: No declaration for function xxx —没有函数xxx的说明72: No stack —缺少堆栈73: No type information —没有类型信息74: Non-portable pointer assignment —不可移动的指针(地址常数)赋值75: Non-portable pointer comparison —不可移动的指针(地址常数)比较76: Non-portable pointer conversion —不可移动的指针(地址常数)转换77: Not a valid expression format type —不合法的表达式格式78: Not an allowed type —不允许使用的类型79: Numeric constant too large —数值常太大80: Out of memory —内存不够用81: Parameter xxx is never used —能数xxx没有用到82: Pointer required on left side of -> —符号->的左边必须是指针83: Possible use of xxx before definition —在定义之前就使用了xxx(警告)84: Possibly incorrect assignment —赋值可能不正确85: Redeclaration of xxx —重复定义了xxx86: Redefinition of xxx is not identical — xxx的两次定义不一致87: Register allocation failure —寄存器定址失败88: Repeat count needs an lvalue —重复计数需要逻辑值89: Size of structure or array not known —结构体或数给大小不确定90: Statement missing ; —语句后缺少";"91: Structure or union syntax error —结构体或联合体语法错误92: Structure size too large —结构体尺寸太大93: Sub scripting missing ] —下标缺少右方括号94: Superfluous & with function or array —函数或数组中有多余的"&" 95: Suspicious pointer conversion —可疑的指针转换96: Symbol limit exceeded —符号超限97: Too few parameters in call —函数调用时的实参少于函数的参数不98: Too many default cases — Default太多(switch语句中一个)99: Too many error or warning messages —错误或警告信息太多100: Too many type in declaration —说明中类型太多101: Too much auto memory in function —函数用到的局部存储太多102: Too much global data defined in file —文件中全局数据太多103: Two consecutive dots —两个连续的句点104: Type mismatch in parameter xxx —参数xxx类型不匹配105: Type mismatch in redeclaration of xxx — xxx重定义的类型不匹配106: Unable to create output file xxx —无法建立输出文件xxx107: Unable to open include file xxx —无法打开被包含的文件xxx108: Unable to open input file xxx —无法打开输入文件xxx109: Undefined label xxx —没有定义的标号xxx110: Undefined structure xxx —没有定义的结构xxx111: Undefined symbol xxx —没有定义的符号xxx112: Unexpected end of file in comment started on line xxx —从xxx行开始的注解尚未结束文件不能结束113: Unexpected end of file in conditional started on line xxx —从xxx 开始的条件语句尚未结束文件不能结束114: Unknown assemble instruction —未知的汇编结构115: Unknown option —未知的操作116: Unknown preprocessor directive: xxx —不认识的预处理命令xxx117: Unreachable code —无路可达的代码118: Unterminated string or character constant —字符串缺少引号119: User break —用户强行中断了程序120: Void functions may not return a value — Void类型的函数不应有返回值121: Wrong number of arguments —调用函数的参数数目错122: xxx not an argument — xxx不是参数123: xxx not part of structure — xxx不是结构体的一部分124: xxx statement missing ( — xxx语句缺少左括号125: xxx statement missing ) — xxx语句缺少右括号126: xxx statement missing ; — xxx缺少分号127: xxx declared but never used —说明了xxx但没有使用128: xxx is assigned a value which is never used —给xxx赋了值但未用过。

c语言常见的小错误

c语言常见的小错误

1、用if(!strcmp(s1, s2)) 比较两个字符串等值,是否是个好风格?这并不是个很好的风格,虽然这是个流行的习惯用法。

如果两个字符串相等,这个测试返回为真,但! (“非”) 的使用,容易引起误会,以为测试不等值情况。

另一个选择是用一个宏:#define Streq(s1, s2) (strcmp((s1),(s2)) == 0)2、为什么有的人用if (0 == x) 而不是if (x ==0)?这是用来防护一个通常错误的小技巧:if (x = 0)如果你养成了把常量放在== 前面的习惯,当你意外的把代码写成了:if (0 = x)那编译器就会报怨。

明显的,一些人会觉得记住反换测试比记住输入双=号容易。

当然这个技巧只对和常量比较的情况有用。

3、*p++ 自增p 还是p 所指向的变量?后缀++ 和--操作符本质上比前缀一目操作的优先级高,即++与p结合优先级高于*与p的结合优先级,因此*p++ 和*(p++) 等价,它自增p 并返回p自增之前所指向的值(也即先去内容,然后指针p才自加)。

要自增p 指向的值,使用(*p)++, 如果副作用的顺序无关紧要也可以使用++*p.4、我有一个char * 型指针正巧指向一些int 型变量,我想跳过它们。

为什么如下的代码((int *)p)++; 不行?在C 语言中,类型转换意味着“把这些二进制位看作另一种类型,并作相应的对待”; 这是一个转换操作符,根据定义它只能生成一个右值(rvalue)。

而右值既不能赋值,也不能用++ 自增。

(如果编译器支持这样的扩展,那要么是一个错误,要么是有意作出的非标准扩展。

) 要达到你的目的可以用:p = (char *)((int *)p + 1);或者,因为p是char * 型,直接用p += sizeof(int);但是,在可能的情况下,你还是应该首先选择适当的指针类型,而不是一味地试图李代桃僵。

5、C 有“按引用传递” 吗?真的没有。

C语言常见错误分析

C语言常见错误分析

C语言常见错误分析C语言是一门非常强大和灵活的编程语言。

然而,由于人为的错误或者语法错误,程序在编译或者运行的过程中常常会出现错误。

下面是常见的C语言错误以及它们的分析。

1.语法错误:语法错误是最常见的错误类型,也是最容易修复的错误。

它们包括缺少分号、括号不匹配、使用未定义的变量等。

这些错误通常会导致编译器的语法错误提示。

2.类型错误:类型错误是由于变量类型不匹配或者操作符错误而引起的。

例如,使用一个整数变量来存储浮点数值,或者将一个指针赋值给一个非指针类型的变量。

这些错误可能导致错误的计算结果或者报错。

3.逻辑错误:逻辑错误是程序的逻辑结构有误,导致程序无法正确执行。

这种错误通常不能通过编译器检测出来,而需要开发人员通过调试来找到并修复。

例如,程序的循环条件错误导致无限循环,或者条件判断错误导致程序走入错误的分支。

4.数组越界错误:数组越界错误是指访问数组时超出了数组的有效范围。

这种错误通常导致程序崩溃或者产生不可预测的结果。

例如,访问数组元素时使用了一个超过数组长度的下标。

为了避免这种错误,开发人员应该始终确保数组下标在有效范围内。

5.空指针错误:空指针错误是指使用了一个未初始化或者已经释放的指针。

这种错误通常导致程序崩溃或者产生不可预测的结果。

为了避免空指针错误,开发人员应该在使用指针之前初始化,并且在使用完毕后及时释放。

6.内存泄漏:内存泄漏是指程序在分配内存之后没有释放,导致系统中的可用内存越来越少。

如果内存泄漏严重,最终可能会导致程序崩溃或者系统变慢。

为了避免内存泄漏,开发人员应该始终确保在不再需要内存时及时释放。

7.死循环:死循环是指程序中的循环条件永远为真,导致程序陷入无限循环。

这种情况可能导致程序无法继续执行后续代码或者崩溃。

为了避免死循环,开发人员应该在循环中始终更新循环条件。

8.未处理的异常:异常是程序运行过程中可能发生的错误,它可能导致程序崩溃或者产生不可预测的结果。

为了避免未处理的异常,开发人员应该使用异常处理机制来捕获和处理异常。

C语言程序设计中的常见错误和解决

C语言程序设计中的常见错误和解决

C语言程序设计中的常见错误和解决在C语言程序设计中,很多初学者经常会遇到一些常见的错误。

这些错误可能是语法错误、逻辑错误或者是其他一些常见问题导致的。

本文将介绍一些经常出现的C语言程序设计错误,并提供相应的解决方法,帮助读者更好地理解和掌握C语言编程。

一、语法错误1. 括号未匹配括号未匹配是C语言中常见的语法错误之一。

在编写代码时,经常会使用到括号,如if语句、for循环等。

如果不小心忘记关闭某个括号,就会导致括号未匹配的错误。

解决方法:仔细检查代码中的括号是否匹配,并确保每个左括号都有相应的右括号。

2. 分号丢失分号丢失是C语言中另一个常见的语法错误。

在C语言中,分号用于分隔语句,如果遗漏了分号,编译器就无法识别出语句的结束。

解决方法:检查每一行语句的末尾,确保每个语句都以分号结尾。

3. 变量未声明在使用变量之前,必须先声明该变量。

如果没有先声明变量就直接使用,编译器将无法识别该变量,从而报错。

解决方法:在使用变量之前,先进行变量声明。

二、逻辑错误1. 循环控制条件错误在编写循环语句时,控制条件的错误是常见的逻辑错误。

如果循环的控制条件错误,循环可能无法正常结束或者根本无法执行。

解决方法:仔细检查循环的控制条件,确保条件符合预期,并在循环体内更新循环变量。

2. 数组越界访问在C语言中,数组的索引从0开始,通过索引访问数组元素时,如果索引超出了数组的范围,就会导致数组越界访问的错误。

解决方法:确保数组索引在正确的范围内,避免越界访问。

如果需要遍历数组,可以使用循环来控制数组的访问范围。

三、其他常见问题及解决方法1. 变量类型不匹配在赋值操作或者表达式计算时,如果不同类型的变量之间进行操作,则会导致变量类型不匹配的错误。

解决方法:确保操作的变量类型相同或者进行强制类型转换,以保证变量类型的匹配。

2. 内存泄漏在C语言中,手动分配内存的操作是常见的。

如果分配了内存空间,但在使用完毕后未及时释放,就会导致内存泄漏。

C语言编程中常见的五种错误及对应解决方案

C语言编程中常见的五种错误及对应解决方案

C语⾔编程中常见的五种错误及对应解决⽅案⽬录1. 未初始化的变量2. 数组越界3. 字符串溢出4. 重复释放内存5. 使⽤⽆效的⽂件指针前⾔:C 语⾔有时名声不太好,因为它不像近期的编程语⾔(⽐如 Rust)那样具有内存安全性。

但是通过额外的代码,⼀些最常见和严重的 C 语⾔错误是可以避免的。

即使是最好的程序员也⽆法完全避免错误。

这些错误可能会引⼊安全漏洞、导致程序崩溃或产⽣意外操作,具体影响要取决于程序的运⾏逻辑。

下⽂讲解了可能影响应⽤程序的五个错误以及避免它们的⽅法:1. 未初始化的变量程序启动时,系统会为其分配⼀块内存以供存储数据。

这意味着程序启动时,变量将获得内存中的⼀个随机值。

有些编程环境会在程序启动时特意将内存“清零”,因此每个变量都得以有初始的零值。

程序中的变量都以零值作为初始值,听上去是很不错的。

但是在 C 编程规范中,系统并不会初始化变量。

看⼀下这个使⽤了若⼲变量和两个数组的⽰例程序:#include <stdio.h>#include <stdlib.h>intmain(){int i, j, k;int numbers[5];int *array;puts("These variables are not initialized:");printf(" i = %d\n", i);printf(" j = %d\n", j);printf(" k = %d\n", k);puts("This array is not initialized:");for (i = 0; i < 5; i++) {printf(" numbers[%d] = %d\n", i, numbers[i]);}puts("malloc an array ...");array = malloc(sizeof(int) * 5);if (array) {puts("This malloc'ed array is not initialized:");for (i = 0; i < 5; i++) {printf(" array[%d] = %d\n", i, array[i]);}free(array);}/* done */puts("Ok");return 0;}这个程序不会初始化变量,所以变量以系统内存中的随机值作为初始值。

C语言技术中的常见代码错误解析

C语言技术中的常见代码错误解析

C语言技术中的常见代码错误解析在学习和使用C语言时,我们经常会遇到各种各样的代码错误。

这些错误可能会导致程序无法正常运行,甚至崩溃。

本文将对C语言技术中的一些常见代码错误进行解析,帮助读者更好地理解和避免这些错误。

1. 语法错误语法错误是最常见的错误之一,它们通常是由于拼写错误、缺少分号或括号不匹配等问题引起的。

例如,下面的代码中缺少了一个分号:```cint a = 10```这个错误可以通过简单地在行尾添加一个分号来修复。

2. 数组越界错误数组越界错误是指访问数组时超出了数组的边界。

例如,如果一个数组有10个元素,但是我们试图访问第11个元素,就会发生数组越界错误。

这种错误可能导致程序崩溃或产生不可预测的结果。

为了避免数组越界错误,我们应该始终确保我们的数组索引在合法的范围内。

可以使用条件语句或循环来检查数组索引是否越界。

3. 空指针错误空指针错误是指试图访问空指针所引用的内存位置。

当我们声明一个指针变量但没有为其分配内存时,它的值将为NULL。

如果我们试图通过一个空指针来访问内存,就会发生空指针错误。

为了避免空指针错误,我们应该始终在使用指针之前为其分配内存,并在使用指针之后及时释放内存。

4. 逻辑错误逻辑错误是指程序中的错误逻辑或错误的算法。

这种错误可能导致程序的输出不正确或产生意外的结果。

例如,如果我们在一个循环中使用错误的条件,循环可能永远不会结束,或者我们可能会得到错误的结果。

为了避免逻辑错误,我们应该仔细检查我们的代码逻辑,并确保它符合我们的预期。

5. 内存泄漏内存泄漏是指在程序中分配了内存但没有及时释放。

如果我们反复分配内存而没有释放,最终会导致内存耗尽,从而使程序崩溃。

为了避免内存泄漏,我们应该始终在使用完内存后及时释放它。

可以使用free()函数来释放动态分配的内存。

6. 类型错误类型错误是指将一个变量赋给错误的数据类型,或者试图对不兼容的数据类型进行操作。

例如,将一个整数赋给一个字符变量,或者试图对一个字符串进行算术运算。

C语言编写常见错误

C语言编写常见错误

C51语言编写常见错误一、循环1)、在进行while,do...while循环时要对while括号里面的变量赋初值,否则可能出现的不是自己想要的结果。

2)、在写for循环语句中,特别要注意括号里面的变量要一致(例如:for(i=0;i<8;j++)。

)错误。

这个错误不好改,写程序时一定要注意这一点。

3)、在写for循环时,如果想让变量的值一次性增加不是一而是大于一,这时要注意最后变量的变化要写成表达式例如:i=i+10;不要写成i+10,这个不起作用。

4)、在写循环时,对某些变量赋初值时,注意赋初值所放的位置,是放在循环里面还是外面。

不同的地方可能得到的结果不同。

要注意二、结构体、链表1)、在创建链表时,最好对首个结点赋值,否则在编译时可能会出现错误。

(如:后面会显示屯屯屯屯屯屯?)。

三、条件语句1)、在运用if条件语句时,括号里面的等于不要写成赋值号(例如:if(a==1)不要写成if(a=1))。

也就是说在if语句的条件中不要出现赋值号。

四、函数1)、在函数进行参数传递时类型要一致,且只能是实参传递到形参,不能反过来传递。

传递的实参必须是常量(在使用的时候)。

2)、在写主函数时,定义一些变量、数组或指针时,最好在主函数的最前面就定义,否则可能会出现错误。

3)、在写输入函数scanf时,后面的变量前面要加取地址符(例如:scanf(“%d”,&a),不要省略&)。

4)、在写字符串复制函数(strcpy)时切忌写错,把strcpy写成stycpy。

5)、不能直接把字符串赋给一个变量,如果要把一个字符串赋给一个变量,需要用到字符串复制函数strcpy,这个函数包含在“string.h”头文件里面,用时需要将此头文件写在程序的开头。

Strcpy(char *a,char b ),将字符串b复制到字符串a里面,注意字符串a的长度要大于等于字符串b,返回值为字符串a。

五、运算1)、在计算两个数的成积时,不要省略乘号*,例如:s=-b/(2*a)正确;s=-b/2a 错误;2)、在进行除法运算时,要注意除法与取整的区别。

C语言中常见错误

C语言中常见错误

C语⾔中常见错误关于C语⾔在编译时常出现的错误有哪些?1、fatal error C1010: unexpected end of file while looking for precompiledheader directive。

寻找预编译头⽂件路径时遇到了不该遇到的⽂件尾。

(⼀般是没有#include "stdafx.h")2、fatal error C1083: Cannot open include file: 'R…….h': No such fileor 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”前丢了“;”。

C语言编程最常见的14个错误

C语言编程最常见的14个错误

C语言编程最常见的14个错误——谁错谁是小狗1.书写标识符时,忽略了大小写字母的区别。

main(){ int a=5;printf("%d",A); }编译程序把a和A认为是两个不同的变量名,而显示出错信息。

C认为大写字母和小写字母是两个不同的字符。

习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2.忽略了变量的类型,进行了不合法的运算。

main(){ float a,b;printf("%d",a%b); }%是求余运算,得到a/b的整余数。

整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。

3.将字符常量与字符串常量混淆。

char c;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。

C规定以“\0”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\0',而把它赋给一个字符变量是不行的。

4.忽略了“=”与“==”的区别。

在许多高级语言中,用“=”符号作为关系运算符“等于”。

如在BASIC程序中可以写if (a=3) then …但C语言中,“=”是赋值运算符,“==”是关系运算符。

如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。

由于习惯问题,初学者往往会犯这样的错误。

5.忘记加分号。

分号是C语句中不可缺少的一部分,语句末尾必须有分号。

a=1b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。

改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。

{ z=x+y;t=z/100;printf("%f",t);}对于复合语句来说,最后一个语句中最后的分号不能忽略不写。

C 语言初学者有哪些常见的基本错误?

C 语言初学者有哪些常见的基本错误?

C语言是一门广泛使用的编程语言,但对于初学者来说,学习过程中会遇到一些常见的基本错误。

这些错误可能会导致程序出错或者无法正常运行,因此了解和避免这些错误是非常重要的。

1.拼写错误拼写错误是初学者经常犯的错误。

在C语言中,拼写错误可能会导致程序无法编译或者运行错误。

例如,将“printf”拼写为“prinf”或者将“main”拼写为“mian”都会导致程序无法编译。

为了避免这种错误,建议初学者在编写代码时仔细检查拼写,或者使用IDE(集成开发环境),它可以自动检查拼写错误并提供纠正建议。

2.语法错误语法错误是初学者常见的错误之一。

在C语言中,语法错误可能会导致程序无法编译或者运行错误。

例如,忘记添加分号或者花括号不匹配都会导致程序无法编译。

为了避免这种错误,建议初学者仔细阅读代码,并确保所有语法都是正确的。

使用IDE可以帮助初学者检测语法错误。

3.数组越界数组越界是初学者常见的错误之一。

在C语言中,数组越界可能会导致程序崩溃或者出现未定义的行为。

例如,访问数组中不存在的元素或者访问超出数组范围的元素都会导致数组越界。

为了避免这种错误,建议初学者确保数组索引在数组范围内,并使用循环结构来遍历数组。

使用IDE可以帮助初学者检测数组越界错误。

4.变量未初始化变量未初始化是初学者常见的错误之一。

在C语言中,未初始化的变量可能会导致程序出现未定义的行为。

例如,未初始化的变量可能包含随机值或者空值。

为了避免这种错误,建议初学者在使用变量之前初始化它们。

使用IDE可以帮助初学者检测未初始化的变量。

5.内存泄漏内存泄漏是初学者常见的错误之一。

在C语言中,内存泄漏可能会导致程序消耗大量内存并最终崩溃。

例如,未释放动态分配的内存或者重复释放内存都会导致内存泄漏。

为了避免这种错误,建议初学者在使用动态内存分配时,确保释放所有分配的内存。

使用IDE可以帮助初学者检测内存泄漏。

C语言初学者常见的基本错误包括拼写错误、语法错误、数组越界、变量未初始化和内存泄漏。

C语言编译中的常见错误

C语言编译中的常见错误

C语言编译中的常见错误1、警告类错误?‘XXX’declare but never used变量XXX已定义但从未用过。

?‘XXX’is assigned a value which is never used变量XXX已赋值但从未用过。

?Code has no effect 程序中含有没有实际作用的代码。

?Non-portable pointer conversion不适当的指针转换,可能是在应该使用指针的地方用了一个非0的数值。

?Possib le use of ‘XXX’before definition表达式中使用了未赋值的变量?Possibly incorrect assignment这样的赋值可能不正确?Redeclaration of ‘main’一个程序文件中主函数main不止一个。

?Suspicious pointer conversion可疑的指针转换。

通常是使用了基本类型不匹配的指针。

?Unreachable code程序含有不能执行到的代码。

2、错误或致命错误?Compound statement missing } in function main程序结尾缺少括号}。

?“}”expected;“(”expected等复合语句或数组初始化的结尾缺少“)”;“(”。

?Case outside of switch case不属于Switch结构,多由于switch结构中的花括号不配对所致。

?Case statement missing ‘:’switch结构中的某个case之后缺少冒号。

?Constant expression required定义数组时指定的数组长度不是常量表达式。

?Declaration syntax error 结构体或联合类型的定义后缺少分号。

?Declaration was expected 缺少说明,通常是因为缺少分界符如逗号、分号、右圆括号等所引起的。

C语言常见错误分析汇总

C语言常见错误分析汇总

C语言常见错误分析汇总C语言是一种广泛应用的编程语言,但由于语法相对复杂,初学者容易犯一些常见的错误。

下面将汇总一些常见的C语言错误,以便帮助初学者更好地理解和避免这些问题。

1.语法错误:C语言对语法要求非常严格,一些错误的语法表达会导致编译错误。

例如,缺少分号、括号不成对等。

2.逻辑错误:这类错误通常是代码逻辑错误,导致程序运行结果与预期不同。

例如,条件判断错误、循环错误等。

3.变量未初始化:在使用变量之前,未对其进行初始化操作会导致不确定的结果。

这种错误可能会导致程序崩溃或产生意外结果。

4.数组越界:在C语言中,数组的下标从0开始,如果使用了超出数组范围的下标,会导致越界错误。

这可能会修改其他内存空间的值,导致程序错误。

5.内存泄漏:动态分配内存后没有正确释放会导致内存泄漏。

这在长时间运行的程序中可能导致内存耗尽。

6.不匹配的数据类型:数据类型不匹配会导致计算错误或编译错误。

例如,对整型变量使用浮点数运算符,或使用未定义的数据类型。

7.空指针解引用:解引用空指针会导致程序崩溃。

在使用指针之前,一定要确保其指向有效的内存空间。

8.死循环:循环条件错误或循环体内没有正确的终止条件会导致死循环,程序无法正常退出。

9.多次释放同一块内存:多次释放同一块动态分配的内存会导致程序错误或崩溃。

10.缺少返回语句:在函数中缺少返回语句或返回语句在多个分支中没有覆盖所有情况,会导致未定义的行为。

11.使用未定义的变量:在使用变量之前,必须先定义该变量。

否则会导致编译错误。

12.逻辑短路错误:逻辑运算符中,逻辑短路原则是如果已经可以确定逻辑表达式的结果,后续的表达式不会被执行。

如果依赖于后续表达式的计算结果,会导致逻辑错误。

13.误解优先级和结合性:C语言中运算符有优先级和结合性,如果不理解运算符的优先级和结合性,会导致计算错误。

14.使用未声明的函数:在调用函数之前,必须先声明函数。

否则会导致编译错误。

15. 不正确的格式化字符串:在使用printf等函数进行格式化输出时,必须提供与格式字符串匹配的参数,否则会导致未定义的行为。

C语言常见错误提示及解决办法

C语言常见错误提示及解决办法

C语言常见错误及解决1. error: invalid use of void expression,是因为有void型的变量或者函数返回值被使用了。

例如:printf("%d\n", sum(1,2));void sum(int a, int b){int s = a+b;}这里printf的第二个参数就是void,无法打印就会出现这样的错误。

2. error C2001: newline in constant直译:在常量中出现了换行。

错误分析:1.①字符串常量、字符常量中是否有换行。

2.②在这句语句中,某个字符串常量的尾部是否漏掉了双引号。

3.③在这语句中,某个字符创常量中是否出现了双引号字符“"〞,但是没有使用转义符“\"〞。

4.④在这句语句中,某个字符常量的尾部是否漏掉了单引号。

5.⑤是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。

3. error C2021: too many characters in constant编号:C2021直译:字符常量中的字符太多了。

错误分析:单引号表示字符型常量。

一般的,单引号中必须有且只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。

另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如:if (x == 'x || x == 'y') { … }值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。

4. error C2137: empty character constant编号:C2137直译:空的字符定义。

错误分析:原因是连用了两个单引号,而中间没有任何字符,这是不允许的。

5. error C2021: unknown character '0x##'编号:C2021直译:未知字符‘0x##'。

C语言常见错误及提示

C语言常见错误及提示

C语言常见错误分析注意:本文中所列举的错误,给出的只是错误的名称和类型以及错误提示,没有给出对应的改正方法,请有兴趣的同学们根据具体情况自行修改、编译、执行,如果在编程中出现类似错误,能够快速定位错误并解决。

一、错误分类语法错逻辑错运行错二、常见错误及提示1. 变量未定义,C语言的变量一定要先定义才能使用;#include <stdio.h>void main(){x=3; y=6;printf(“%d\n”,x+y);}错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : error C2065: 'x' : undeclared identifierD:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : error C2065: 'y' : undeclared identifier2. 输入输出的数据的类型与所用格式说明符不一致int a=3;float b=4.5;printf(“%f%d\n”,a,b);错误类型:逻辑错它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节的数据按%d,作为整数输出)错误提示:无3. 未注意int型数据的数值范围short int型数据的数值范围(-32768~32768)short int num=89101;printf(“%d”,num);会将超过低16位的数截去从而得到23563错误类型:逻辑错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : warning C4305: 'initializing' : truncation from 'const int' to 'short'D:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : warning C4309: 'initializing' : truncation of constant value注意:定义了long型,而在输出时仍用”%d”说明符,仍会出现以上错误4. 输入变量时忘记使用地址符&scanf(“%d%d”,a,b);错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(5) : warning C4700: local variable 'b' used without having been initializedD:\WorkSpace\C++WorkSpace\测试\test.cpp(5) : warning C4700: local variable 'a' used without having been initialized5. 输入时数据的组织与要求不符对scanf函数中格式字符串中除了格式说明符外,对其他字符必须按原样输入scanf(“%d, %d”, &a, &b);应当输入:5, 6 否则程序不能正常读入数据错误类型:运行错错误提示:无6. 误把”=“作为”等于”比较符“=“为附值运算符“==“为比较运算符错误类型:逻辑错错误提示:无7. 语句后面漏分号{t=a;a=b;b=t}它是pascal的语法错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(9) : error C2143: syntax error : missing ';' before '}'8. 不该加分号的地方加了分号if(a>b);printf(“a is larger than b\n”);for(i=0;i<10;i++);{scanf(“%d”,&x);printf(“%d\n”,x*x);}错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(6) : warning C4390: ';' : empty controlled statement found; is this the intent?9. 对应该有花括弧的复合语句,忘记加花括弧sum=0;i=1;while(i<=100)sum=sum+1;i++;由于i始终为1,while循环无法正常退出。

C语言常见错误及提示

C语言常见错误及提示

C语言常见错误及提示C语言常见错误分析注意:本文中所列举的错误,给出的只是错误的名称和类型以及错误提示,没有给出对应的改正方法,请有兴趣的同学们根据具体情况自行修改、编译、执行,如果在编程中出现类似错误,能够快速定位错误并解决。

一、错误分类语法错逻辑错运行错二、常见错误及提示1. 变量未定义,C语言的变量一定要先定义才能使用;#includevoid main(){x=3; y=6;printf(“%d\n”,x+y);}错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : error C2065: 'x' : undeclared identifierD:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : error C2065: 'y' : undeclared identifier2. 输入输出的数据的类型与所用格式说明符不一致int a=3;float b=4.5;printf(“%f%d\n”,a,b);错误类型:逻辑错它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节的数据按%d,作为整数输出)错误提示:无3. 未注意int型数据的数值范围short int型数据的数值范围(-32768~32768)short int num=89101;printf(“%d”,num);会将超过低16位的数截去从而得到23563错误类型:逻辑错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : warning C4305: 'initializing' : truncation from 'const int' to 'short' D:\WorkSpace\C++WorkSpace\测试\test.cpp(4) : warning C4309: 'initializing' : truncation of constant value注意:定义了long型,而在输出时仍用”%d”说明符,仍会出现以上错误4. 输入变量时忘记使用地址符&scanf(“%d%d”,a,b);错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(5) : warning C4700: local variable 'b' used without having been initialized D:\WorkSpace\C++WorkSpace\测试\test.cpp(5) : warning C4700: local variable 'a' used without having been initialized5. 输入时数据的组织与要求不符对scanf函数中格式字符串中除了格式说明符外,对其他字符必须按原样输入scanf(“%d, %d”, &a, &b);应当输入:5, 6 否则程序不能正常读入数据错误类型:运行错错误提示:无6. 误把”=“作为”等于”比较符“=“为附值运算符“==“为比较运算符错误类型:逻辑错错误提示:无7. 语句后面漏分号{t=a;a=b;b=t}它是pascal的语法错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(9) : error C2143: syntax error : missing ';' before '}'8. 不该加分号的地方加了分号if(a>b);printf(“a is larger than b\n”);for(i=0;i<10;i++);{scanf(“%d”,&x);printf(“%d\n”,x*x);}错误类型:语法错错误提示:D:\WorkSpace\C++WorkSpace\测试\test.cpp(6) : warning C4390: ';' : empty controlled statement found; is this the intent?9. 对应该有花括弧的复合语句,忘记加花括弧sum=0;i=1;while(i<=100)sum=sum+1;i++;由于i始终为1,while循环无法正常退出。

C语言中的常见错误及解决方法

C语言中的常见错误及解决方法

C语言中的常见错误及解决方法C语言是一门广泛应用于计算机编程领域的高级编程语言。

它的简洁性和高效性使得它成为了许多程序员的首选。

然而,即使对于有经验的程序员来说,C语言中也存在一些常见的错误。

本文将探讨一些常见的C语言错误,并提供相应的解决方法。

1. 内存泄漏内存泄漏是C语言中最常见的错误之一。

它发生在程序分配了内存空间,但在使用完毕后未正确释放。

这导致内存空间被占用,最终可能导致程序崩溃或者系统变慢。

解决方法:- 使用malloc函数分配内存后,一定要使用free函数释放内存。

- 为了避免出现遗漏的情况,可以在每次使用完内存后立即释放。

2. 数组越界在C语言中,数组越界是一个常见的错误。

当程序试图访问数组中超出其边界的元素时,会导致未定义的行为,可能引发程序崩溃或产生错误的结果。

解决方法:- 在使用数组时,一定要确保索引值不会超出数组的边界。

- 可以使用循环结构和条件语句来检查数组索引的合法性。

3. 未初始化变量在C语言中,未初始化变量的使用是一个常见的错误。

当程序试图使用未初始化的变量时,它的值是不确定的,可能导致程序产生错误的结果。

解决方法:- 在使用变量之前,一定要确保它已经被正确地初始化。

- 可以使用赋值语句或者初始化函数来初始化变量。

4. 类型不匹配类型不匹配是C语言中另一个常见的错误。

它发生在程序试图将一个类型的值赋给另一个类型的变量,或者将不同类型的变量进行运算。

解决方法:- 在进行类型转换时,可以使用强制类型转换运算符来确保类型匹配。

- 在进行运算时,要确保参与运算的变量类型一致。

5. 逻辑错误逻辑错误是指程序中的逻辑错误或算法错误。

这种错误不会导致程序崩溃,但会导致程序产生错误的结果。

解决方法:- 仔细检查程序中的逻辑,确保算法的正确性。

- 使用调试工具来跟踪程序的执行过程,找出错误所在。

总结:C语言中的常见错误包括内存泄漏、数组越界、未初始化变量、类型不匹配和逻辑错误。

为了避免这些错误,程序员应该养成良好的编程习惯,如及时释放内存、检查数组索引的合法性、正确初始化变量、确保类型匹配和仔细检查程序逻辑。

C语言中的常见错误及解决方法

C语言中的常见错误及解决方法

C语言中的常见错误及解决方法C语言作为一种广泛应用于软件开发领域的编程语言,常常出现一些让初学者或经验不足的程序员困惑的错误。

本文将介绍C语言中常见的错误,并提供解决这些错误的方法。

一、语法错误语法错误是编程过程中最常见的错误之一。

它们通常由于代码中存在语法错误或书写错误而导致。

以下是一些常见的语法错误和解决方法:1.1 缺少分号分号是C语言中语句结束的标志,如果未在语句末尾添加分号,编译器会报错。

解决方法是仔细检查代码,确保每个语句的末尾都有分号。

1.2 括号不匹配在C语言中,括号必须成对出现。

如果括号未正确匹配,编译器会报错。

解决方法是仔细检查代码,确保每个左括号都有对应的右括号。

1.3 大小写错误C语言对大小写敏感,因此函数和变量的命名必须与其声明中的大小写完全匹配。

解决方法是检查代码中的命名,并确保其大小写匹配。

1.4 未定义的变量使用未定义的变量会导致编译器报错。

解决方法是确保在使用变量之前先进行声明或定义。

二、逻辑错误逻辑错误在语法上没有问题,但程序的逻辑流程存在缺陷,导致程序运行不符合预期。

以下是一些常见的逻辑错误和解决方法:2.1 数组越界访问在C语言中,数组的索引从0开始。

如果超出数组的索引范围进行访问,会导致程序崩溃或产生意想不到的结果。

解决方法是检查数组索引,并确保它们在合法范围内。

2.2 逻辑运算错误逻辑运算符(如&&、||和!)在C语言中用于组合表达式。

但是,如果这些运算符的使用不当,可能会导致逻辑错误。

解决方法是仔细检查逻辑运算表达式,并确保其符合预期的逻辑规则。

2.3 循环错误循环是C语言中常用的结构之一,但循环中的错误可能导致程序无限循环或不执行循环体。

解决方法是检查循环条件和循环变量,确保它们能正确地控制循环的执行。

三、内存错误内存错误是C语言中常见的错误类型之一。

以下是一些常见的内存错误和解决方法:3.1 内存泄漏内存泄漏指的是在程序中未正确释放分配的内存空间。

C语言常见错误及解决方法

C语言常见错误及解决方法

C语言常见错误及解决方法C语言是一门非常重要的编程语言,但是在学习和使用过程中,常常会遇到一些错误。

这些错误可能会导致程序无法正常运行或产生错误的结果。

在这篇文章中,我将介绍一些C语言常见错误及解决方法,希望对你在学习和使用C语言时能有所帮助。

1.语法错误语法错误是最常见的错误之一,它通常是由错别字、缺少分号、括号不匹配等导致的。

解决这类错误的方法是仔细检查代码,并根据编译器的错误提示进行修改。

2.类型错误类型错误指的是错误地使用了不匹配的数据类型。

比如将整数型赋值给浮点型变量,或者将字符型变量赋值给整型变量等。

解决这类错误的方法是确保变量的数据类型匹配,并进行必要的类型转换。

3.空指针错误空指针错误是指使用了未初始化或已被释放的指针变量。

当你尝试使用这些指针变量时,会导致程序崩溃或产生不可预测的结果。

解决这类错误的方法是在使用指针之前,为其分配内存空间并进行初始化。

4.内存泄漏内存泄漏是指在程序运行过程中,分配的内存空间没有被正确释放。

这会导致内存占用越来越多,最终导致程序崩溃或系统资源不足。

解决这类错误的方法是在不再需要使用一些内存空间时,使用free(函数释放它。

5.数组越界数组越界是指访问数组时超过了其允许的范围。

这会导致程序崩溃或产生不可预测的结果。

解决这类错误的方法是确保数组的索引在有效范围内,并正确使用循环等控制结构。

6.逻辑错误逻辑错误是指程序的逻辑顺序有误,导致程序无法达到预期的目标。

解决这类错误的方法是仔细分析程序的逻辑流程,并进行必要的修改和调试。

7.死循环死循环是指程序进入一个无法正常退出的循环。

这可能是由于循环条件错误或循环体内没有设置循环终止条件所导致的。

解决这类错误的方法是确保循环条件正确,同时在必要的情况下添加循环终止条件。

8.文件操作错误在进行文件操作时,可能会发生文件打开失败、读写错误等问题。

解决这类错误的方法是检查文件路径是否正确、文件是否存在以及对文件的读写权限等,并根据具体情况进行调整。

c常见错误有例子

c常见错误有例子
错误信息:
error C2065: 'A' : undeclared identifier
‘A’没有定义而直接使用
error C3861: 'printf': identifier not found
没有找到‘printf’的定义。Printf是一个输出函数,定义在stdio.h中。在源程序的开始需要添加#include”stdio.h”
}
这样做是不合法的,输入数据时不能规定精度。
1
例如:根据考试成绩的等级打印出百分制数段。
switch ( grade )
{
case 'A':
printf( "85~100\n" );
case 'B':
printf( "70~84\n" );
case 'C':
printf( "60~69\n" );
case 'D':
{
int a = 0, i;
scanf( "%d", &i );
do
{
a += i;
++i;
} while ( i <= 10 );
printf( "%d", a );
}
可以看到,当输入i的值小于或等于10时,二者得到的结果相同。而当i>10时,二者结果就不同了。因为while循环是先判断后执行,而do-while循环是先执行后判断。对于大于10的数while循环的循环体一次也不执行,而do-while语句则要执行一次。
printf( "%d", a[10] );
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
但C语言中,“=”是赋值运算符,“==”才是关系运算符。如:
if (a == 3)
a = b;
a == 3是比较a是否等于3;而a = b;表示把b的值赋给a。初学者往往会把a == 3错写成a = 3,这样写是符合语法的,但是不符合我们的期望。如果错写成了a = 3,有些编译器会给出警告。
9
分号是C语句中不可缺少的一部分,语句末尾必须有分号。
Case syntax error Case 语法错误
Code has no effect代码不可述不可能执行到
Compound statement missing{分程序漏掉"{"
Conflicting type modifiers不明确的类型说明符
Constant expression required要求常量表达式
printf( "%d", a[10] );
return 0;
}
C语言规定:定义时如果用a[10],则表示数组a有10个元素,其下标值范围为0到9。a[10]不属于上面定义的数组中。对a[10]进行赋值可能导致程序崩溃!
错误信息:
warning C4700: uninitialized local variable 'a' used
错误信息:
error C2440: '=' : cannot convert from 'const char [2]' to 'char'
‘=’的左边是字符类型,右边是常量char[2],不能完成赋值操作
8
许多高级语言都使用“=”符号作为关系运算符的“等于”。如BASIC程序中可以写:
if ( a = 3 ) then…
printf( "<60\n" );
default:
printf( "error\n" );
}
由于漏写了break语句,当grade值为A时,printf函数在执行完第一个语句后会接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。例如:
case 'A':
printf( "85~100\n" );
scanf( "%d,%d", &a, &b );
此时不用逗号而用空格或其它字符是不对的。例如:3:4。又如:
scanf("a=%d,b=%d",&a,&b);
输入应如以下形式:
a=3,b=4
13
例如,a定义为整型,b定义为浮点型
#include <stdio.h>
void main()
{
int a = 3;
voidmain ()
{
char x;
x=300;
}
300的二进制为0b100101100,赋值给x时,将赋值最后的8位,高位截去,因此x的值实际上为0b101100(即整数44)。如果将500赋给一个有符号的字符型变量时,变量内存储的值还会变成负数,由读者自行分析原因。
错误信息:
warning C4309: '=' : truncation of constant value
4
例如:
#include <stdio.h>
void main()
{
inti =0;
int sum=0;
while(i<10)
i++;
sum=sum+i;
}
本程序的目的是计算0到90的累加,但是在循环while的后面少加了花括号,累加的操作并没有在循环中执行。应该修改成这样:
while(i<10)
{
Constant out of range in comparison 在比较中常量超出范围
使用没有初始化的变量。这里指a[10]。
1
#include <stdio.h>
void main()
{
char s[100];
scanf( "%99s", &s );
}
C语言中,数组名代表该数组的起始地址。因此上面的代码中,s本身就已经是一个地址了,我们不需要再对它进行取址运算。正确的写法应该是:scanf( "%99s", s );
i++;
sum = sum + i;
}
5
voidmain()
{
int a = 5;
printf( "%d", A );
}
编译器认为a和A是两个不同的变量名,而显示出错信息。C语言规定大写字母和小写字母是不同的字符;而有些编程语言是不分大小写的。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
Bit field too large 位字段太长
Call of non-function 调用未定义的函数
Call to function with no prototype 调用函数时没有函数的说明
Cannot modify a const object 不允许修改常量对象
Case outside of switch 漏掉了case 语句
float b = 4.5;
printf( "%f%d\n", a, b );
}
编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。应该改成:
printf( "%d%f\n", a, b );
1
#include<stdio.h>
void main()
{
scanf( "%7.2f", &a );
{
int a = 0, i;
scanf( "%d", &i );
do
{
a += i;
++i;
} while ( i <= 10 );
printf( "%d", a );
}
可以看到,当输入i的值小于或等于10时,二者得到的结果相同。而当i>10时,二者结果就不同了。因为while循环是先判断后执行,而do-while循环是先执行后判断。对于大于10的数while循环的循环体一次也不执行,而do-while语句则要执行一次。
void main( )
{
int a, b;
a = 1
b = 2;
}
编译时,编译器发现“a =1”后面没有分号,就会报错。改错时,如果在编译器所说的有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。
错误信息:
error C2146: syntax error : missing ';' before identifier 'b'
y没有定义
2
例如:
#include <stdio.h>
voidmain()
{
int i;
int sum;
i = 5;
Sum = sum+i;
}
错误信息
warning C4700: uninitialized local variable 'sum' used
‘sum’在使用前没有初始化
3
例如:
#include <stdio.h>
错误信息:
error C2065: 'A' : undeclared identifier
‘A’没有定义而直接使用
error C3861: 'printf': identifier not found
没有找到‘printf’的定义。Printf是一个输出函数,定义在stdio.h中。在源程序的开始需要添加#include”stdio.h”
在’b’前面缺少’;’
10
#include <stdio.h>
void main()
{
printf( "Hello world.\n");
};
上面代码中,大括号}后面的分号(;)是毫无必要的!因为单独一个;也是合法的C语言语句,所以}后面写了;也是合法的,但是毫无必要!又如:
#include <stdio.h>
Bad character in paramenters 参数中有不适当的字符
Bad file name format in include directive 包含命令中文件名格式不正确
Bad ifdef directive synatax 编译预处理ifdef有语法错
Bad undef directive syntax编译预处理undef有语法错
break;
1
(1)
#include <stdio.h>
voidmain()
{
int a = 0, i;
scanf( "%d", &i );
while ( i <= 10 )
{
a += i;
++i;
}
printf( "%d", a );
}
(2)
#include <stdio.h>
voidmain()
6
#include <stdio.h>
voidmain()
{
float a, b;
printf( "%d", a % b );
相关文档
最新文档