概述
转载标明出处!
常见错误与语言规范
常见错误
变量名错误
- 变量名不能使用关键字
int double; // 编译失败
- 变量名不能和函数名同名
int printf;
- 变量没定义,就直接使用
parm = 20;
- 变量的输入与使用顺序不当
int age;
int sum;
sum = age + 16;
scanf("%d", &age);
printf("%dn", sum);
- 变量严格区分大小写
int c = 5;
printf("%d", C);
- 忘了加分号 ( ; ) (;) (;)
int c = 5
标准输入与输出
- 变量计算,忘了加占位符。
int c = 5;
int d = 5;
// 计算相加之和
printf("sum = c + d");
- 输入字符的格式与要求不一致
scanf("%d%d%d", &c1, &c2);
忘了加取址符,隐藏错误。
int c;
scanf("%d", c);
语法规范
- switch…case 由于粗心漏写 break 语句。
swich(num)
{
case 0: printf("A -Bn");
case 1: printf("C -Dn");
case 2: printf("E -Fn");
case 3: printf("G -Hn");
default:printf(" ");
}
应写成:
swich(num)
{
case 0: {printf("A -Bn"); break;}
case 1: {printf("C -Dn"); break;}
case 2: {printf("E -Fn"); break;}}
case 3: {printf("G -Hn"); break;}
default: {printf(" ");}
}
常见错误提示信息
常见错误
error: array subscript is not an integer(数组下标不是整数)
错误写法:
int arr[100];
double i = 3.0;
arr[i];
报错信息:
推荐修改成:
int arr[100];
int i = 3.0;
arr[i];
error: expected declaration or statement at end of input(花括号不匹配)
错误写法:
int param_1 = 1;
if(param_1 == 1) {
if(param > 0) {
}
报错信息:
推荐修改成:
int param_1 = 1;
if(param_1 == 1) {
if(param > 0) {
// 请输入
}
}
error: redefinition of ‘fun_a’(函数重复定义)
错误写法:
void fun_a(void)
{
}
void fun_a(void)
{
}
报错信息:
推荐修改成:
void fun_a(void)
{
}
error: ‘a’ undeclared (first use in this function)(a 变量未声明)
错误写法:
a = 1;
报错信息:
推荐修改成:
int a = 1;
error: expected ‘)’ before ‘{’ token(缺少园括号)
错误写法:
int sum = 0;
if(((sum * 100 + 10) == 100) {}
报错信息:
推荐修改成:
int sum = 0;
if(((sum * 100) + 10) == 100) {}
段错误
段错误是计算机软件运行过程中出现一段特殊的错误。当程序试图访问一段不允许访问(只读)的内存区域会发生段错误。
使用未经初始化或已释放的地址
#include <stdio.h>
int main(int argc, const char* argv[])
{
int param = 100;
int *str = ¶m;
str = NULL;
printf("str = %dn", *str);
system("pause");
return 0;
}
访问受系统保护的内存地址
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *str = (int *)0X20000000;
*str = 1000;
system("pause");
return 0;
}
访问只读的内存
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str = "hello";
*str = "hello kkb";
printf("%sn", str);
system("pause");
return 0;
}
数组越界
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[10] = {0};
for(int i = 0; i < 100; i++) {
arr[i] = 100;
}
system("pause");
return 0;
}
堆栈溢出
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[100000000] = {0};
system("pause");
return 0;
}
常见警告
warning: implicit declaration of function ‘printf’
错误写法:
int main()
{
printf("Hello!n");
return 0;
}
报错信息:
推荐修改成:
#include <stdio.h>
int main()
{
printf("Hello!n");
return 0;
}
warning: implicit declaration of function ‘fun_a’ [-Wimplicit-function-declaration]
错误写法:
#include <stdio.h>
int main()
{
fun_a();
return 0;
}
void fun_a(void) {}
报错信息:
推荐修改成:
#include <stdio.h>
void fun_a(void);
int main()
{
fun_a();
return 0;
}
void fun_a(void) {}
最后
以上就是无私奇迹为你收集整理的C语言---常见错误与语言规范常见错误与语言规范的全部内容,希望文章能够帮你解决C语言---常见错误与语言规范常见错误与语言规范所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复