一、声明和定义的不一致
#include<stdio.h> int main() { int a; a = 10; printf("a的值是%d", a); return 0; } float a; // 这里定义了一个叫做a的浮点型变量
在上述的代码中,我们想要定义一个整型变量a,但是在后面却定义了一个浮点型变量a,这就出现了声明和定义不一致的错误。这个错误在编译时会报错:前面的变量已经被定义了,无法再重新定义相同的变量。
解决这个问题的方式很简单,只需要将浮点型变量a的名称修改一下即可,如下所示:
#include<stdio.h> int main() { int a; a = 10; printf("a的值是%d", a); return 0; } float b; // 修改为b的浮点型变量
二、括号调用的不匹配
#include<stdio.h> int main() { int sum = add(1, 2); printf("1加2的和是%d", sum); return 0; } int add(int a, int b) { return a + b; }
在上述的代码中,我们在main函数中调用了一个add函数,但是add函数的定义在main函数后面。这个问题可以通过加上函数声明来解决:
#include<stdio.h> int add(int a, int b); // 添加函数声明 int main() { int sum = add(1, 2); printf("1加2的和是%d", sum); return 0; } int add(int a, int b) { return a + b; }
三、语法错误
#include<stdio.h> int main(); { printf("hello world\n"); return 0; }
在上述的代码中,我们在main函数后面多了一个分号,这个分号使得编译器认为main函数的定义结束了,后面的代码就成了单独的代码块。
解决这个问题只需要将分号删除即可:
#include<stdio.h> int main() { printf("hello world\n"); return 0; }
四、符号未定义
#include<stdio.h> int main() { printf("a的值是%d\n", a); // a未定义 return 0; }
在上述的代码中,我们调用了一个未定义的变量a,这样的操作会导致符号未定义的错误。
解决这个问题的方法是定义一个变量a,或者将调用a的代码删除。
五、使用了未声明的函数
#include<stdio.h> int main() { int sum = add(1, 2); // add函数没有声明 printf("1加2的和是%d", sum); return 0; } int add(int a, int b) { return a + b; }
在上述的代码中,我们调用了一个未声明的函数add,这个函数的定义在main函数的后面。由于编译器不知道这个函数的存在,就会报错。
解决这个问题的方法是在调用add函数之前添加一个函数声明。
六、未定义的变量
#include<stdio.h> int main() { int a; printf("a的值是%d", b); // b未定义 return 0; }
在上述的代码中,我们调用了一个未定义的变量b,这个变量在程序中没有被定义过,所以会导致未定义的变量错误。
解决这个问题的方法是定义一个变量b。
原创文章,作者:DRFQX,如若转载,请注明出处:https://www.506064.com/n/333114.html