等级考复习资料:C语言出错中英文对照表.doc
在C语言编程中,错误是常见的挑战,尤其是在准备等级考试时理解并解决这些错误至关重要。以下是一些常见的C语言编译错误及其详细解释: 1. **Ambiguous operators need parentheses** - 当运算符的优先级不明确时,需要使用括号来确保计算顺序。 2. **Ambiguous symbol 'xxx'** - 符号'xxx'未被定义或存在命名冲突,需要检查变量、函数或宏定义。 3. **Argument list syntax error** - 参数列表的语法错误,可能是参数数量不对或者参数类型不匹配。 4. **Array bounds missing** - 定义数组时忘记指定大小,如`int arr[];`,应为`int arr[5];`。 5. **Array size too large** - 数组尺寸超过内存限制,需减小数组大小或优化数据结构。 6. **Bad character in parameters** - 参数中包含非法字符,例如非字母数字字符。 7. **Bad file name format in include directive** - `#include`指令中的文件路径格式错误,应检查文件路径是否正确。 8. **Bad ifdef directive syntax** - `#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** - 常量对象不能被修改,确保不要试图改变const变量的值。 14. **Case outside of switch** - `case`语句不在`switch`结构内,检查`switch`块的完整性。 15. **Case syntax error** - `case`关键字后的语法错误,可能是值、冒号或两者都缺失。 16. **Code has no effect** - 代码无法被执行,可能是因为条件语句或循环导致的死代码。 17. **Compound statement missing "{"** - 分支或循环结构缺少左花括号`{`,导致代码结构不完整。 18. **Conflicting type modifiers** - 类型修饰符冲突,如同时使用`const`和`volatile`。 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"** - 找不到指定的文件,检查文件路径和名称。 24. **Declaration missing ";"** - 说明语句缺少分号,记得在每个声明后面加分号。 25. **Declaration syntax error** - 说明语句的语法错误,可能是类型、变量名或修饰符的问题。 26. **Default outside of switch** - `default`语句不应出现在`switch`语句之外。 27. **Define directive needs an identifier** - `#define`指令需要一个标识符来定义宏。 28. **Division by zero** - 零除错误,确保除数不为零。 29. **Do statement must have while** - `do-while`循环缺少`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. **Function definition out of place** - 函数定义的位置不正确,如在全局作用域外定义函数。 39. **Function should return a value** - 返回类型不是void的函数未返回值,确保每个可能的路径都有return语句。 40. **Goto statement missing label** - `goto`语句缺少目标标签,如`goto end;`需要先定义`end:`。 41. **Hexadecimal or octal constant too large** - 16进制或8进制常数超过类型的最大值,需使用适当的数据类型。 42. **Illegal character 'x'** - 使用了非法字符'x',C语言只允许特定的字符作为标识符的一部分。 43. **Illegal initialization** - 变量初始化不合法,可能是类型不匹配或初始化值超出范围。 44. **Identifier expected** - 预期找到一个标识符,但没有找到,检查变量名、函数名等是否遗漏。 45. **Improper use of cast operator** - 强制类型转换使用不当,可能导致数据丢失或未定义行为。 46. **Indirection on incomplete type** - 对不完整的类型进行间接访问,例如未完全定义的结构体指针。 47. **Invalid character constant** - 非法的字符常量,可能包含了不允许的字符。 48. **Label not found** - 标签未找到,检查`goto`或`break`、`continue`的目标。 49. **Left-hand side of assignment is not lvalue** - 左侧赋值操作符不是一个可存储的值(lvalue),如函数调用或常量。 50. **Memory allocation error** - 动态内存分配失败,可能内存不足或分配方式错误。 理解并解决这些错误是掌握C语言编程的关键,特别是在准备等级考试时,深入理解这些错误的含义能帮助我们编写更健壮、更符合规范的代码。